当我在远程服务器上运行 TOP 时,我看到系统利用率非常小(3.8%us)。但是,对于实际进程,我看到 CPU 占用率为 29.6%。
由于该服务器有 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
我已经检查过以下来源http://www.kernelhardware.org/linux-top-command/,但没有一个人区分%us
和%CPU
。
只有一些模糊的信息例如:%CPU – Percentage of CPU used
答案1
显示的 CPU 百分比top
是所有 CPU 的总和。要查看每个 CPU 的统计信息,请在运行1时按。top
另一方面,进程列表中的百分比是单个 CPU 核心的百分比,因此可能会超过 100%。