Ubuntu

由於 Landscape-sysinfo CPU 過度消耗,Ubuntu 11.04 伺服器掛起

  • August 12, 2018

我在一個 Amazon EC2 微型實例上執行了一個簡單的伺服器(基於 Ubuntu 11.04),其目的只是為了協調一些網路伺服器的活動。這台機器執行了幾個星期,但現在經常掛起,其 CPU 已紅線為 100%。

我通過 SSH 登錄到機器並執行了一個top,它顯示該landscape-sysinfo程序是消耗所有系統資源的肇事者。Apstree透露了它的位置:

init─┬─atd
├─cron
├─dhclient3
├─dovecot─┬─2*[dovecot-auth]
│ ├─3*[imap-login]
│ └─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]
├─upstart-socket-
新貴-udev-br
└─vsftpd

有問題的程序在此處列為 的最後一個子程序sshd。如果我手動 kill landscape-sysinfo,機器會恢復正常 - 直到程序自發重生,通常是幾分鐘後。(我可以“擔保”sshd上述樹中的其他程序。它們是合法的。)

我不知道為什麼landscape-sysinfo會隨機生成自己。我完全不知道為什麼它是sshd.

我顯然對在我的機器上執行一個我無法解釋的 SSH 程序感到非常興奮。最初我擔心入侵/特洛伊木馬/後門,所以我執行chkrootkitand rkhunter,但它們都乾淨了。

有誰知道是什麼導致這個過程瘋狂?關於如何阻止它重生的任何想法?

不久前我弄清楚了問題的實際原因,並認為我應該在這裡記錄它,以便其他可能遇到類似問題的人。事實證明,根本原因比我最初預期的要棘手和復雜。

簡而言之,run-parts一直工作正常。它的失控只是另一個問題的徵兆。失敗鏈看起來像這樣:

1)在一台完全不同的機器上lsyncd(一個基於 的文件同步實用程序rsync)執行失控,原因超出了我們在此關注的範圍。不過,我們擔心的是,lsyncd它試圖通過 SSH 與這個微實例(這表明問題)同步文件。

  1. 因為通過 SSH 建立了幾十個同時連接,每個似乎都受到 Ubuntu 預設提供lsyncd的 SSH 登錄橫幅的歡迎。landscape-sysinfo這解釋了什麼landscape-sysinfo是 SSH 以及為什麼它是 SSH 的子級。看起來這run-parts是罪魁禍首,但實際上問題是機器正被 SSH 連接轟炸。

  2. 使問題更加嚴重的是,這是 EC2 上的一個微實例,我後來發現亞馬遜嚴重限制了 CPU 消耗穩定超過某個門檻值的微實例。(有關詳細資訊的出色解釋,請參閱Greg’s Ramblings。非常感謝 Greg 的那篇文章!)

因此,機器在被 SSH 連接轟炸時執行緩慢,然後在節流啟動後變得無法使用。

謎團已揭開!

引用自:https://serverfault.com/questions/304252