Ubuntu
有什麼辦法可以自動防止記憶體不足?
我經常在我的 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
這也可以影響前面提到的 ulimit 選項。
重新啟動服務是一個創可貼。相反,您應該嘗試找出它洩漏記憶體的原因。