【问题标题】:Comprehending 'top' CPU usage [closed]理解“顶级”CPU使用率[关闭]
【发布时间】:2009-06-23 12:48:09
【问题描述】:

在 a 4-CPU盒子?该进程是一个“mysqld”,目前正在 被模拟的 OLTP 场景“轰炸”。

任何指针表示赞赏。

【问题讨论】:

  • 不应该移到ServerFault吗?

标签: linux unix top-command


【解决方案1】:

在 *NIX 领域,100% 的 cpu 使用率是单个 cpu 的 100%。

这适用于多核处理器,就像真正的多处理器计算机一样。

因此,您在 mysql 上使用了总 CPU 周期的 7/8。

【讨论】:

  • 除非他有多线程内核,因为它们显示为单独的内核。我在一台具有双 6 核 Xeon 处理器的服务器上工作,它显示为 24 核,而实际上它实际上有 12 个。
【解决方案2】:

在顶部运行时,按“1”。这将切换视图,以便您可以查看每个内核/cpu 的负载。

【讨论】:

    【解决方案3】:

    我昨天刚刚阅读了一篇关于这个主题的有趣文章:Unix load average。它将解释您需要了解的所有内容以及更多信息。

    提取:

    平均负载是运行队列长度和当前在 CPU 上运行的作业数的总和。在 Solaris 2.0 和 2.2 中,平均负载不包括正在运行的作业,但此错误已在 Solaris 2.3 中修复。

    考虑显示负载的两种基本模式:“IRIX 模式”和“Solaris 模式”。在 IRIX 模式(Linux 默认)中,平均负载为 1 表示一个 CPU 已满载(或 4 CPU 系统上每个 CPU 的 25% 等)。在 Solaris 模式下,平均负载 1 意味着 所有 CPU 已满载(因此它实际上相当于 “IRIX 模式”负载除以 CPU 计数 em>)。

    【讨论】:

    • 这是一个非常酷且内容丰富的链接!谢谢!
    【解决方案4】:

    平均负载显示有多少进程在队列中等待(根据 CPU 数量进行了调整)。对于一个 CPU,平均负载为 1.0 意味着该 CPU 能够以最佳方式完全处理队列上的所有请求——没有进程在等待 CPU,也没有 CPU 周期被浪费(即空闲)。平均负载为 2.0(在单核系统上(意味着一半的进程将等待在 CPU 上运行的机会:-(平均负载为 0.33 意味着系统上的负载非常小2/3 的时间 CPU 基本上什么都不做,只是在等待更多进程运行。

    top 显示的 CPU 百分比衡量的是内核加载单个进程以在 CPU 上运行的频率,是一段时间内的平均值。所以 4 核系统上的 350% 意味着,在一段时间内,mysqld 将占用三个完整的 CPU 和第四个 CPU 的一半时间——也就是说,它有太多线程要运行,几乎淹没了 4带有请求的核心。 CPU 百分比并没有真正考虑等待队列(而平均负载考虑):它是对特定时间范围内发生的事情的事后统计。但它肯定会显示最近哪些进程一直在使用 CPU。

    另一篇关于同一主题的详尽文章:http://www.linuxjournal.com/article/9001

    【讨论】:

      【解决方案5】:

      有 4 x 100%,所以“顶部”在 4 CPU 机器上显示总共 400%。

      【讨论】:

        【解决方案6】:

        每个 cpu 进程都被视为 100% 。所以完全是 4 cpu 的 400%。

        【讨论】:

          猜你喜欢
          • 2010-11-19
          • 2014-03-04
          • 1970-01-01
          • 1970-01-01
          • 2016-06-11
          • 2011-07-01
          • 2023-01-12
          • 2020-03-31
          相关资源
          最近更新 更多