Chr*_*ane 3 ubuntu landscape cpu-usage
我正在 Amazon EC2 微型实例上运行一些基本服务器(基于 Ubuntu 11.04),其目的只是为了协调几个网络服务器的活动。这台机器运行了几个星期,但现在经常挂起,其 CPU 红线为 100%。
我通过 SSH 登录到机器并运行了一个top
,这表明该landscape-sysinfo
过程是消耗所有系统资源的肇事者。一pstree
发现它是位于:
init???atd ??cron ??dhclient3 ??dovecot???2*[dovecot-auth] ? ??3*[imap-登录] ? ??3*[pop3-login] ??6*[盖蒂] ??master???pickup ? ??qmgr ??mountall ??mysqld???11*[{mysqld}] ??rsyslogd???3*[{rsyslogd}] ??sshd???sshd???sshd???bash ? ??sshd???sshd???bash???top ? ??sshd???sshd???bash???pstree ? ??sshd???sh???run-parts???50-landscape-sy???landscape-sys+ ??udevd???2*[udevd] ??新贵插座- ??新贵-udev-br ??vsftpd
违规进程在此处列为 的最后一个子进程sshd
。如果我手动 kill landscape-sysinfo
,机器将恢复正常 - 直到该过程自发重新生成,通常是几分钟后。(我可以“担保”sshd
上面树中的其他进程。它们是合法的。)
我不知道为什么landscape-sysinfo
会随机产卵。我加倍不知道为什么它是sshd
.
显然,我对在我的机器上运行一个我无法解释的 SSH 进程感到非常兴奋。最初我担心漏洞/特洛伊木马/后门,所以我跑了chkrootkit
和rkhunter
,但它们都干净利落。
有没有人知道是什么导致这个过程疯狂?关于如何阻止它重生的任何想法?
不久前我找出了问题的实际原因,并认为我应该在这里记录它,以供其他可能有类似问题的人使用。结果证明,根本原因比我最初预期的要棘手和复杂。
简而言之,run-parts
一直工作得很好。它的失控只是另一个问题的征兆。故障链看起来像这样:
1)在一台完全不同的机器上,lsyncd
(一个基于 的文件同步实用程序rsync
)由于我们不关心的原因而运行失控。不过,我们担心的是,lsyncd
它试图通过 SSH 将文件同步到这个微实例(这表明了问题)。
2) 因为lsyncd
通过 SSH 建立了数十个同时连接,每个连接似乎都受到landscape-sysinfo
Ubuntu 默认提供的 SSH 登录横幅的欢迎。这解释了什么landscape-sysinfo
是 SSH 以及为什么它是 SSH 的子代。看起来这run-parts
是罪魁祸首,但实际上问题在于机器被 SSH 连接轰炸。
3) 加剧问题的是,这是 EC2 上的一个微实例,此后我发现 Amazon 严重限制了 CPU 消耗稳定超过某个阈值的微实例。(有关详细信息的出色解释,请参阅Greg's Ramblings。非常感谢 Greg 的那篇文章!)
因此,这台机器在受到 SSH 连接轰炸时运行缓慢,然后在节流开始后变得无法使用。
谜团已揭开!
归档时间: |
|
查看次数: |
2972 次 |
最近记录: |