Out-of-Memory

在 unix 中從 OOM 殺手中排除使用者

  • June 15, 2015

有沒有辦法將一些使用者排除在 Unix 中的記憶體不足殺手之外?另一方面,我可以為使用者設置優先級嗎?

沒有辦法指示 OOM 忽略特定的使用者程序。儘管您可以指示它忽略特定程序,並在此基礎上建構一個循環,該循環將檢查特定使用者的所有程序並通過 cron 或任何您喜歡的方式更新它。循環本身看起來像這樣:

while read r_pid ; do 
   echo -16 | sudo tee /proc/$r_pid/oom_adj ; 
done < <(pgrep -U Yoki)

您可以將其包裝在腳本中並安排每分鐘或您喜歡的任何間隔執行一次。

或者您可以完全禁用 OOM

sysctl vm.overcommit_memory=2
echo "vm.overcommit_memory=2" >> /etc/sysctl.conf

儘管根本不推薦這種方式,因為它可能會導致意外行為,例如核心恐慌或系統掛起。

引用自:https://unix.stackexchange.com/questions/209880