由于landscape-sysinfo CPU过度消耗,Ubuntu 11.04服务器挂起

我在Amazon EC2微型实例上运行一些基于Ubuntu 11.04的裸机服务器,其目的仅仅是协调一些networking服务器的活动。 这台机器运行了好几个星期,但现在经常挂着100%的CPU红线。

我通过SSHlogin到了机器上,运行了一个top ,它显示了landscape-sysinfo进程是执行者占用了所有的系统资源。 一个pstree透露它在哪里:

 init─┬─atd
      ├─cron
      ├─dhclient3
      ├─dovecot─┬─2* [达夫科特-AUTH]
      │├─3* [imap-login]
      │└─3* [pop3-login]
      ├─6* [格蒂]
      ├─master─┬─pickup
      │└─qmgr
      ├─mountall
      ├─mysqld───11* [{的mysqld}]
      ├─rsyslogd───3* [{rsyslogd}]
      ├─sshd─┬─sshd───sshd───bash
      │├─sshd─────────────────────────────────
      │├─sshd──────────────────────────────
      │└─sshd───sh───run-parts───────────────────────────────────────────────────────────────────────────</s>─
      ├─udevd───2* [的udevd]
      ├─upstart-孔型
      ├─upstart-的udev-BR
      └─vsftpd

违规程序在这里被列为sshd的最后一个孩子。 如果我手动杀死了landscape-sysinfo ,机器恢复正常 – 直到进程自发地重新生成,通常在一会儿之后。 (我可以“保证”上述树中的其他sshd进程,它们是合法的。)

我不知道为什么landscape-sysinfo是随机产生的。 我不知道为什么这是sshd的孩子。

对于在我的机器上运行的SSH进程,我无能为力。 最初我担心chkrootkit /木马/后门,所以我运行chkrootkitrkhunter ,但他们都干净。

有谁知道什么可能导致这个过程疯狂? 任何关于如何阻止重生的想法?

我早就知道这个问题的实际原因,并且认为我应该把这个文件logging下来,以供其他可能有类似问题的人使用。 根本原因比我最初的预料更加棘手和复杂。

总之, run-parts一直工作得很好。 它的干扰只是一个不同的问题的症状。 失败链看起来像这样:

1) 在完全不同的机器上lsyncd (基于rsync的文件同步实用程序)出于无法理解的原因而无法运行。 然而,我们担心的是, lsyncd试图通过SSH同步这个微型实例(显示问题)的文件。

2)因为lsyncd通过SSH进行了数十个同时连接,所以每个连接似乎都被默认情况下Ubuntu提供的SSHlogin横幅迎面而来。 因此,似乎run-parts是罪魁祸首,实际上问题是机器被SSH连接轰炸。

3)问题更加严重的是,这是EC2上的一个微观实例, 我发现亚马逊严重扼杀了CPU消耗稳步超过一定门槛的微型实例。 (对于细节的一个很好的解释,请看格雷格的Ramblings 。非常感谢格雷格那篇文章!)

因此,机器在被SSH连接轰炸的时候缓慢地运行了一会儿,然后在节stream开始后变得不能用了。

谜团已揭开!

这是一个定期计划的cron工作,收集性能数据。

在这里寻找(清除)指示。 如果您不关心数据收集,只需将其完全删除即可删除软件包(如果它允许的话)或只是find它的crontab项并注释掉。