我的一台服务器上有一个名为 klogd 的进程正在运行,根据 top 显示,该进程的 CPU 使用率为 99.9%(下面是 top 的输出)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3932 klog 25 0 5932 2220 16 R 99.7 0.1 162333:28 klogd
1 root 15 0 4100 584 300 S 0.0 0.0 6:10.66 init
2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.33 ksoftirqd/0
4 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:03.63 events/0
6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
7 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
29 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0
30 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
31 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify
我使用过 Google,这似乎是处理日志的标准流程。日志文件似乎都不是很大,服务器上也没有发生太多其他事情。
操作系统是Ubuntu 9.04
答案1
strace -p
pidof klogd`` 向您显示了什么?
答案2
我在 2.6.32 版本中多次看到这种情况
运行/etc/init.d/klogd restart
以修复 99% 的 CPU。
真正的解决方法是更新你的内核。
读取 /proc/kmsg 伪文件时出现错误。希望这个错误现在已经修复。这里是Linus 对此问题的看法(相当有趣)