测量负载 - 顶部的 %CPU 与 %us 不同

Men*_*aos 4 tomcat central-processing-unit top

当我在远程服务器上运行 TOP 时,我看到系统利用率非常低 (3.8%us)。但是,对于实际过程,我看到了 29.6% 的 CPU。

由于这台服务器有8个CPU核心,%CPU是不是只有1个CPU的利用率,而us上面却超过了8个CPU?

当我将 29.6 除以 8 时,我得到 3.7,这似乎验证了我的猜测。所以问题:

  • 我看到的低利用率实际上是超过 8 个 CPU,而 %CPU 用于进程正在使用的 CPU?
  • 使用多个 CPU 的进程会发生什么情况?
  • 如果需要,tomcat 是否使用多个 CPU?或者如果负载增加,tomcat会崩溃但我们永远不会被告知高负载

最高输出

    top - 12:17:40 up 9 days, 21:51,  2 users,  load average: 0.32, 0.28, 0.27
    Tasks: 201 total,   2 running, 199 sleeping,   0 stopped,   0 zombie
    Cpu(s):  3.8%us,  0.1%sy,  0.0%ni, 96.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:  16229072k total,  5617572k used, 10611500k free,   156480k buffers
    Swap:  8388588k total,        0k used,  8388588k free,  2632452k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    32676 tomcat    20   0 12.4g 2.3g  10m S 29.6 14.6   2530:56 java
Run Code Online (Sandbox Code Playgroud)

我检查了诸如http://www.kernelhardware.org/linux-top-command/ 之类的来源,但没有一个在%us和之间做出区分%CPU

只有一些模棱两可的信息,例如: %CPU – Percentage of CPU used

Mic*_*ton 5

中显示的 CPU 百分比top是所有 CPU 的总和。要查看每个 CPU 的统计信息,请1top运行时按。

另一方面,进程列表中的百分比是单个 CPU 内核的百分比,因此可能会超过 100%。