13.04 – rsyslogd 占用了所有 CPU

13.04 – rsyslogd 占用了所有 CPU

我在 ramnode.com 上的 VPS 上,使用 OpenVZ 进行虚拟化,安装的操作系统是 Ubuntu 12.10,但我运行do-release-upgrade将其升级到 13.04。

rsyslogd消耗了~150% 的 CPU,我对 Linux 确实不太了解,但是我按照某人的建议运行了strace -c -p `pidof rsyslogd`它,结果如下:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00   37.912236     9478059         4           select
  0.00    0.001000         500         2           write
  0.00    0.000000           0        14           gettimeofday
  0.00    0.000000           0         4           futex
------ ----------- ----------- --------- --------- ----------------
100.00   37.913236                    24           total

因此看起来它把时间花在了那个选择系统调用上,但我不知道这意味着什么:(

运行strace -p `pidof rsyslogd`只会给出一行,直到我中断它:

select(1, NULL, NULL, NULL, {22, 56702}^C <unfinished ...>

这可能是什么原因造成的?我该怎么做才能修复它?

编辑: tail /var/log/kern.log给了我这个:

Jun  7 21:42:26 camilo kernel: last message repeated 14010362 times
Jun  7 21:43:26 camilo kernel: last message repeated 13755525 times
Jun  7 21:44:26 camilo kernel: last message repeated 13745228 times
Jun  7 22:03:44 camilo kernel: imklog 5.8.11, log source = /proc/kmsg started.
Jun  7 22:03:44 camilo kernel: Cannot read proc file system: 1 - Operation not permitted.
Jun  7 22:04:14 camilo kernel: last message repeated 6927277 times
Jun  7 22:05:14 camilo kernel: last message repeated 13931106 times
Jun  7 22:06:14 camilo kernel: last message repeated 13864233 times
Jun  7 22:09:46 camilo kernel: imklog 5.8.11, log source = /proc/kmsg started.
Jun  7 22:09:46 camilo kernel: Cannot read proc file system: 1 - Operation not permitted.

这听起来不太好 :( 内核是这样的2.6.32-042stab076.8,我不认为我可以摆弄它。

答案1

这是一个例子https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/523610。最近的发行版内核修复了该错误,但这对运行主机选择内核的虚拟机的用户没有帮助。抱歉,我没有修复方法。

相关内容