Apache-2.2

乘客 - “自動殺死”流氓程序?

  • June 15, 2011

我正在使用Passenger + Apache 執行Ruby on Rails 應用程序。還有一個使用 mod_perl 執行的 perl 郵件列表伺服器 (Sympa)。

我對伺服器(Ubuntu 機器)有 root 和 sh 訪問權限。

大多數時候它執行得很好。伺服器有足夠的記憶體和磁碟空間來處理工作負載。

但是時不時地(可能每 3 個月左右一次)一些 Apache 程序似乎“變得流氓”並開始瘋狂地消耗記憶體和 cpu。結果,網站出現故障(有時我不得不進行冷重啟;僅僅重啟 Apache 是不夠的)。我做了一些測試,似乎掛出的程序是 Ruby 程序,這讓我懷疑Passenger 行為不端。

這是上一次“中斷”(剛剛發生)的一些 Munin 圖

我對紅寶石工藝(Passenguer)持懷疑態度。但是,我無法確定觸發“狂野程序”的條件(我只託管應用程序,我沒有開發它)。雖然會很好,但“殺死掛起的過程”可能更簡單。

我想知道是否有辦法“自動殺死”佔用過多記憶體或 CPU 的程序。是否有任何處理此問題的 Apache 模組或配置標誌?

編輯:到目前為止,我已經嘗試過 Apache 的 RLimitCPU、RLimitMEM 和 RLimitNPROC 無濟於事——Passenger 似乎不受這些設置的影響。我很確定問題現在出在乘客身上,所以我正在重新標記和重寫這個問題的部分內容。

ulimits(通過 /etc/security/limits.conf 配置,或者只是在執行可能有問題的二進製文件之前執行 ulimit)可能是解決此問題的方法。

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