Unix Out of Memory Killerから特定のユーザーを除外する方法はありますか?一方、ユーザーの優先順位を設定できますか?
答え1
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
このアプローチは、カーネルパニックやシステム停止などの予期しない動作を引き起こす可能性があるため、まったくお勧めできません。