- 论坛徽章:
- 0
|
本帖最后由 xxfihm_cu 于 2012-07-27 10:08 编辑
根据我的猜测,自己写了个小程序,8核,开5个线程,每个线程都让他死循环,也就是都让他们占用cpu到100%,测试结果如下:
----------------for avg cpu--------------------------------------------------
top - 09:53:44 up 8 days, 21:25, 4 users, load average: 2.15, 2.00, 2.19
Tasks: 187 total, 1 running, 186 sleeping, 0 stopped, 0 zombie
Cpu(s): 66.1%us, 2.1%sy, 0.0%ni, 30.5%id, 0.5%wa, 0.0%hi, 0.7%si, 0.0%st
Mem: 8162200k total, 7354864k used, 807336k free, 192804k buffers
Swap: 10223608k total, 16k used, 10223592k free, 4813316k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6644 xiaoxuef 17 0 64976 1012 844 S 499.5 0.0 2:00.49 t
----------------for every cpu--------------------------------------------------
top - 09:53:55 up 8 days, 21:25, 4 users, load average: 3.23, 2.24, 2.27
Tasks: 190 total, 2 running, 188 sleeping, 0 stopped, 0 zombie
Cpu0 : 91.7%us, 0.0%sy, 0.0%ni, 8.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 99.2%us, 0.0%sy, 0.0%ni, 0.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 92.2%us, 0.9%sy, 0.0%ni, 4.0%id, 2.8%wa, 0.0%hi, 0.2%si, 0.0%st
Cpu3 : 33.6%us, 4.8%sy, 0.0%ni, 61.2%id, 0.2%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu4 : 89.1%us, 0.1%sy, 0.0%ni, 10.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 25.7%us, 4.6%sy, 0.0%ni, 67.2%id, 1.9%wa, 0.0%hi, 0.6%si, 0.0%st
Cpu6 : 20.4%us, 8.8%sy, 0.0%ni, 69.1%id, 1.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 90.7%us, 0.2%sy, 0.0%ni, 5.6%id, 0.0%wa, 0.2%hi, 3.4%si, 0.0%st
Mem: 8162200k total, 7479036k used, 683164k free, 193148k buffers
Swap: 10223608k total, 16k used, 10223592k free, 4927844k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6644 xiaoxuef 17 0 64976 1012 844 S 498.5 0.0 2:56.10 t
说明:
1、summary里的cpu,如果只是显示一行,则是所有cpu的平均数,而实际us占用的百分比为这个平均数*核数,
2、具体某个进程里的%cpu则是他在所有cpu中占用us的总和,并不是平均数。
此例中,for avg cpu可以看出:t这进程占用了cpu的499.5%, 而总共的us占用cpu为66.1*8=528.8, 在加上一些在wa,等的占用时间,
可以大致估计出t这进程占用cpu是较高的。
如此也就合理的解释了为什么某个进程的cpu占用率超过100%,而summary里的永远不到100%。 |
|