所有进程的 CPU 占用率为 0%,但平均负载 > 1

所有进程的 CPU 占用率为 0%,但平均负载 > 1

在两台不同的服务器(使用 Ubuntu 12.04LTS AMD64)上我看到了以下行为:

op - 10:50:05 up 305 days, 21:17,  1 user,  load average: 1.94, 2.52, 2.97
Tasks: 141 total,   2 running, 139 sleeping,   0 stopped,   0 zombie
Cpu(s): 41.5%us,  6.5%sy,  0.0%ni, 51.8%id,  0.0%wa,  0.2%hi,  0.1%si,  0.0%st
Mem:   8178432k total,  5753740k used,  2424692k free,   159480k buffers
Swap: 15625208k total,        0k used, 15625208k free,  4905292k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                               
    1 root      20   0 23928 2072 1216 S    0  0.0   0:56.42 init                                                                                  
    2 root      20   0     0    0    0 S    0  0.0   0:00.01 kthreadd                                                                              
    3 root      RT   0     0    0    0 S    0  0.0   0:01.23 migration/0                                                                           
    4 root      20   0     0    0    0 S    0  0.0   2:39.82 ksoftirqd/0                                                                           
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0                                                                            
    6 root      RT   0     0    0    0 S    0  0.0   0:02.99 migration/1                                                                           
    7 root      20   0     0    0    0 S    0  0.0   2:32.15 ksoftirqd/1                                                                           
    8 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1                                                                            
    9 root      RT   0     0    0    0 S    0  0.0   0:11.67 migration/2                                                                           
   10 root      20   0     0    0    0 S    0  0.0  29:00.34 ksoftirqd/2  

服务器运行正常,但 top 显示所有进程的 CPU 使用率为 0%。在之前的机器上重启后这个问题解决了,但我还没有在这台机器上试过。

我尝试了top几次,所以确信我没有意外按下“<”或“>”来按不同的列排序。按所有可用列对进程列表进行排序,仍然显示所有显示的进程的 CPU 为 0%。

发生了什么事?这是内核错误吗?

更新:如果我使用top -p <PID>一个已知的、繁忙的进程,top 仍然显示该进程的 CPU 为 0%。

更新2:我的观点是全部进程报告 CPU 使用率为 0%全部的时间。

答案1

看看这篇文章。http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

通常,几乎没有 CPU 使用率的负载表示磁盘/网络的 I/O。负载不是坏事,但密切关注 1、5 和 15 分钟指标的趋势将有助于您根据趋势判断真正的问题。

也许可以通过“iostat”检查一下你的磁盘在做什么。

答案2

负载不是 CPU 使用率。负载是“可运行进程的数量”。负载接近 2 但没有 CPU 使用率意味着某些进程可能正在执行很多IO 或甚至卡住。例如,使用 PS 检查是否有处于 D 状态的进程。

(上周我的邮件服务器负载为 2200,它的存储出现故障。但是其他一切都正常运行:))

相关内容