在两台不同的服务器(使用 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,它的存储出现故障。但是其他一切都正常运行:))