Ubuntu

有什麼辦法可以自動防止記憶體不足?

  • July 13, 2011

我經常在我的 VPS ubuntu 伺服器上耗盡記憶體。我希望有一種方法可以在 apache2 開始記憶體不足時簡單地重新啟動它,因為這似乎可以解決問題。還是我懶得解決問題?我的伺服器記憶體有限…

好的,更多資訊:

我正在執行 apache2 prefork,這是我的記憶體設置(我一直在調整它們……):

StartServers         3
MinSpareServers      1
MaxSpareServers      5
MaxClients           150
MaxRequestsPerChild  1000

VPS 有 1 GB 的記憶體,執行 ubuntu 11.04 32 位。

至於腳本,我有一個包含 5 個部落格的 wordpress 網路、一個安裝 AskBot(python/django stackexchange 複製)和一個未真正使用的 MediaWiki 安裝。還有一個自製的 mp3 腳本,它訪問 getid3 庫以顯示播客列表的資訊,它似乎拋出了一些 php 錯誤,不確定這是否是罪魁禍首……

蒙尼特可以做到這一點。

您可以使用配置行,例如:

check process apache 
   with pidfile "/var/lock/apache/httpd.pid"
   start program = "/etc/init.d/httpd start" with timeout 60 seconds
   stop program = "/etc/init.d/httpd stop"
   if 2 restarts within 3 cycles then timeout
   if totalmem > 100 Mb for 5 cycles then restart
   if children > 255 for 5 cycles then stop
   if cpu usage > 95% for 3 cycles then restart
   if failed port 80 protocol http then restart
   group server
   depends on httpd.conf, httpd.bin

(從monit.com 上的這個配置範例修改

這也可以影響前面提到的 ulimit 選項。

重新啟動服務是一個創可貼。相反,您應該嘗試找出它洩漏記憶體的原因。

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