%CPU例如所示top
是瞬时的,即当时正在使用什么,而load显示者uptime
是平均值:
它通常以三个数字的形式出现,分别代表
最后一分钟、五分钟和十五分钟的系统负载
期间。
from 维基百科 https://en.wikipedia.org/wiki/Load_%28computing%29.
随着时间的推移,这些应该会收敛,但是虽然 %CPU 为 100% 最大值,但当有进程等待时,负载可能会高于 1。例如:
例如,可以将负载平均值解释为“1.73 0.50 7.98”
单CPU系统为:
最后一分钟,CPU 过载了 73%(1 个 CPU 有 1.73 个可运行进程,因此有 0.73 个进程需要等待轮流)
在最后 5 分钟内,CPU 负载不足 50%(没有进程必须等待轮流)
在最后 15 分钟内,CPU 过载 698%(1 个 CPU 有 7.98 个可运行进程,因此 6.98 个进程必须等待
转动)
Update:
我现在才注意到你的进程使用了 28% 的 CPU,而top
报告两个 CPU 的空闲率都超过 99%。我无法在我的 Linux 系统(Ubuntu 12.04、Intel i7-3770K 四核 HT)上重现此问题,请参阅下面的屏幕截图。
正常设置,无负载,显示所有核心的平均 CPU 使用率:
top - 18:10:04 up 7:50, 2 users, load average: 0.00, 0.05, 0.15
Tasks: 157 total, 1 running, 156 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16528224k total, 1124956k used, 15403268k free, 148772k buffers
Swap: 15624188k total, 0k used, 15624188k free, 670460k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7022 root 20 0 0 0 0 S 0 0.0 0:00.14 kworker/0:1
1 root 20 0 3640 2060 1324 S 0 0.0 0:01.23 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.14 ksoftirqd/0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
一个核心满载(运行yes > /dev/null
),显示所有核心的平均 CPU 使用率:
top - 18:11:58 up 7:52, 2 users, load average: 0.11, 0.07, 0.15
Tasks: 157 total, 2 running, 155 sleeping, 0 stopped, 0 zombie
Cpu(s): 12.5%us, 0.0%sy, 0.0%ni, 87.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16528224k total, 1124880k used, 15403344k free, 148824k buffers
Swap: 15624188k total, 0k used, 15624188k free, 670472k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8254 tim 20 0 4188 280 228 R 100 0.0 0:04.88 yes
1 root 20 0 3640 2060 1324 S 0 0.0 0:01.23 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.15 ksoftirqd/0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
与 2) 相同,但显示每个核心的 CPU 使用情况:
top - 18:13:47 up 7:54, 2 users, load average: 0.86, 0.36, 0.24
Tasks: 157 total, 2 running, 155 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16528224k total, 1124756k used, 15403468k free, 148840k buffers
Swap: 15624188k total, 0k used, 15624188k free, 670472k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8254 tim 20 0 4188 280 228 R 100 0.0 1:53.98 yes
1 root 20 0 3640 2060 1324 S 0 0.0 0:01.23 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.15 ksoftirqd/0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
N.B.:我确实注意到第一个统计数据top
显示不显示 100% 的 cpu 使用率yes
,与您所拥有的类似。也许这就是问题所在?