我參與維護運行我們的 django 網站 (nginx/apache/mod_wsgi) 的 Ubuntu VPS,並且我們遇到了一些內存峰值,這些峰值要么導致數據庫死機,要么在內存管理系統無法運行時引發內核恐慌。可殺死的進程。我正在努力修復記憶體峰值,但我想知道如果問題再次發生,我是否可以做些什麼來更好地處理該問題。
是否有任何工具可以用來檢測記憶體峰值,然後殺死有問題的進程並向伺服器管理員發送電子郵件以修復它?關閉一個網站以使伺服器能夠繼續運行當然比整個網站崩潰更好。
此外,我們也被指控600 美元用於非工作時間服務,因為我們必須讓託管公司重新啟動伺服器 - 這是託管公司之間的標準做法嗎?與我合作的另一家提供者提供了一個面板,我可以透過該面板自行停止和啟動伺服器,並且考慮到只需重新啟動即可,600 美元似乎太高了。 (這是紐西蘭元,約 445 美元)
答案1
對於非工作時間重新啟動來說 600 美元絕對是昂貴的。我建議尋找另一位房東。作為比較,您可以從提供自動重新啟動服務的地方獲得幾個月的託管時間。
查看 monit 以自動終止進程。您可以將其配置為監視 CPU/記憶體甚至伺服器的狀態,並在出現任何異常情況時讓它採取行動。
答案2
您可以將系統配置為不過度使用記憶體。用於sysctl
設定vm.overcommit
為 0。
445 美元看起來很多,但是:你讀過細則嗎前你有問題嗎?如果需要重新啟動,您是否有計劃該怎麼辦?回想起來,這是顯而易見的事情之一,但是應該提前計劃。老實說,445 美元可能有點貴,但對於這堂課來說這個價格並不可怕。