任何命令的“bash:fork:無法分配記憶體” - 如何在作業系統層級防止這種情況?

任何命令的“bash:fork:無法分配記憶體” - 如何在作業系統層級防止這種情況?

我正在測試 Ubuntu 16.04 機器如何處理記憶體不足的情況,並且有幾個掛起的作業幾乎耗盡了伺服器上的所有 RAM。昨晚下班時我仍然能夠運行正常的 bash 命令。早上(沒有人對伺服器做任何事)所有指令(psfreels等)都會出現以下錯誤:

-bash: fork: Cannot allocate memory

我最終能夠運行jobskill %1恢復機器。幸運的是,我保持 SSH 會話打開,因為進一步的 SSH 連線失敗(客戶端在身份驗證後根本沒有顯示命令提示字元)。

事實上,常規用戶態程式可以有效地使整個伺服器癱瘓,如果沒有現有的 SSH 會話,則必須硬重新啟動伺服器。高度關於!我的理解是,Linux(或任何作業系統,實際上)應該在整個系統達到無法使用的狀態之前終止進程以釋放 RAM。我怎麼才能讓它做到這一點?

相關內容