我的 CPU 使用率如何?

我的 CPU 使用率如何?

我的 Ubuntu 10.04 Lucid 虚拟机显示 CPU 使用率为 100%...但我只运行 Thunderbird。根据top,CPU 使用率应为 ~25.9%...我该如何解释 top 中这个相互矛盾的输出?

top - 13:55:26 up  3:35,  4 users,  load average: 3.03, 2.59, 2.48
Tasks: 178 total,   1 running, 177 sleeping,   0 stopped,   0 zombie
Cpu(s): 16.0%us, 79.7%sy,  0.0%ni,  0.0%id,  0.0%wa,  1.3%hi,  3.0%si,  0.0%st
Mem:    509364k total,   479108k used,    30256k free,     3092k buffers
Swap:  2096440k total,    58380k used,  2038060k free,   225116k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                    
 7708 jnet      20   0  480m 109m  17m S 18.4 22.1  21:59.14 thunderbird-bin                                                                                                                            
 4615 jnet      20   0  5488 1268 1040 S  2.3  0.2   5:00.03 nx-rootless-ses                                                                                                                            
 7124 jnet      20   0 56688  27m 4812 S  2.0  5.5   6:35.09 nxagent                                                                                                                                    
 6724 nx        20   0  9628 1400  636 S  1.6  0.3   3:26.59 sshd                                                                                                                                       
30106 root      20   0  2544 1236  908 R  0.7  0.2   0:00.33 top                                                                                                                                        
   19 root      20   0     0    0    0 S  0.3  0.0   0:22.45 ata/0                                                                                                                                      
   38 root      20   0     0    0    0 S  0.3  0.0   0:05.53 scsi_eh_1                                                                                                                                  
  345 root      20   0     0    0    0 S  0.3  0.0   0:04.72 kjournald                                                                                                                                  
 1719 root      20   0  3260 1192  944 S  0.3  0.2   0:17.36 vmware-guestd                                                                                                                              
    1 root      20   0  2804 1356  940 S  0.0  0.3   0:01.99 init                                                                                                                                       
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd                                                                                                                                   
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                                                
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.15 ksoftirqd/0                                                                                                                                
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
...

具体来说,我指的是 CPU 使用率总计显示 0% 空闲时间:

Cpu(s): 16.0%us, 79.7%sy,  0.0%ni,  0.0%id,  0.0%wa,  1.3%hi,  3.0%si,  0.0%st

然而,当我将列中的百分比相加时,%CPU我得到的结果是 25.9%,而不是 100%!

编辑top:下面是主机上的输出,显示我的虚拟机消耗了 92.1% 的 CPU 时间:

top - 14:19:40 up 6 days, 23:17,  2 users,  load average: 5.48, 4.62, 4.25
Tasks: 149 total,   1 running, 148 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.0%us, 89.4%sy,  0.0%ni,  0.0%id,  4.3%wa,  0.7%hi,  3.7%si,  0.0%st
Mem:   1286008k total,  1256240k used,    29768k free,      812k buffers
Swap:  1048568k total,    35908k used,  1012660k free,  1026048k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                    
21057 jnet      10 -10 1048m 417m 389m S 92.1 33.2 259:15.70 vmware-vmx                                                                                                                                 
20218 jnet      20   0 27264 4188 3032 S  0.7  0.3   3:19.37 multiload-apple                                                                                                                            
   23 root      15  -5     0    0    0 S  0.3  0.0   7:39.02 kswapd0                                                                                                                                    
   59 root      15  -5     0    0    0 D  0.3  0.0   3:04.76 kjournald2                                                                                                                                 
 1156 root      15  -5     0    0    0 S  0.3  0.0   2:22.05 kondemand/0                                                                                                                                
18619 jnet      20   0  2544  956  712 R  0.3  0.1   5:56.40 top                                                                                                                                        
19780 root      20   0  215m  22m 6760 S  0.3  1.8   2:23.78 Xorg                                                                                                                                       
20039 jnet      20   0 56512  10m 4452 S  0.3  0.8   2:13.21 compiz                                                                                                                                     
20285 jnet      20   0 93900  23m 5324 S  0.3  1.9   3:37.65 vmware                                                                                                                                     
21016 jnet      20   0 63304 6644 3620 S  0.3  0.5   0:21.08 vmware-unity-he                                                                                                                            
    1 root      20   0  2008  340  284 S  0.0  0.0   0:01.05 init                

编辑2:一定是驱动程序出了问题,因为重启后就解决了。真奇怪……

答案1

我并不是 100% 确定,但看起来内核驱动程序或内核本身正在消耗其余部分。

在 CPU 行中您会看到“79.7%sy”。

也许其中一个虚拟机驱动程序正在疯狂运行?您可以在主机系统上检查这些值。如果有更多的空闲时间,也许这是预期的行为(虚拟机永远不会有空闲时间,因为只有主机显示它)。

答案2

si = 软件中断 sy = 系统/内核 us = 用户空间

奇怪的是,您的系统/内核似乎占用了大部分 CPU 功率。如果 IDLE 显示占用了大量 CPU 功率,那也没什么奇怪的,但这是系统问题。我最好的猜测是,这可能与虚拟机 CPU 的工作方式有关,也许它以不同的方式报告状态。如果您手边有另一台 ubuntu 虚拟机,请尝试在其上运行 top,看看是否得到相同的结果。
如果这不是问题,那么我能想到的唯一原因就是 rootkit。如果编码不当,rootkit 可能会导致大量内核活动以隐藏自身。祝你好运。

相关内容