嘿,我遇到了一个奇怪的问题,诊断起来有些困难。今天我的虚拟机由于 CPU 使用率过高而宕机。这台虚拟机上的网站流量非常低,所以我知道有些异常。我运行了几个基本的诊断命令,确定用户进程占用了过多的 CPU。然后我运行了 top,发现了一些异常。虽然我的用户进程的 CPU 使用率报告很高,但 top 进程占用的 CPU 却出奇地少。如果没有明确的重点,我很难确定问题所在。
以下是顶部输出的前几行:
Tasks: 117 total, 2 running, 115 sleeping, 0 stopped, 0 zombie
Cpu0 : 73.1%us, 10.0%sy, 0.0%ni, 16.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 84.7%us, 10.3%sy, 0.0%ni, 4.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.3%st
Mem: 2054472k total, 622260k used, 1432212k free, 59960k buffers
Swap: 0k total, 0k used, 0k free, 237724k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5926 bay 20 0 161m 18m 5384 R 2.7 0.9 0:00.08 php
1482 mysql 20 0 932m 42m 5996 S 2.3 2.1 0:04.79 mysqld
3197 nobody 20 0 71824 3788 1628 S 0.3 0.2 0:00.09 httpd
1 root 20 0 19232 1488 1220 S 0.0 0.1 0:00.59 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 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.01 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
如您所见,列出的进程的 CPU 使用率远低于 73/84%。关于如何查看这些缺失的进程或如何更好地找出问题,您有什么想法吗?非常感谢大家!