現在の設定を確認
——————————————–
# sysctl vm.panic_on_oom kernel.panic
vm.panic_on_oom = 0
kernel.panic = 0
——————————————–
vm.panic_on_oom
OOM Killer が実行される際に、カーネルパニックを起こさせるかを制御するパラメータ
0 → カーネルパニックしない
1 → カーネルパニックする。但し cgroup 制限により物理メモリがまだ残っている場合にはカーネルパニックしない。
2 → 必ずカーネルパニックする
カーネルパニックとは、オペレーティングシステム(OS)のカーネル部分において、何らかの理由で致命的なエラーが発生し、安全に復旧することができなくなった状態。
kernel.panic = 0 → なにもしない
kernel.panic = 30 → 30秒後にリブート
——————————————–
sysctl -a | grep vm.over
——————————————–
現状
——————————————–
vm.overcommit_memory=1
vm.panic_on_oom=1
kernel.panic=10
——————————————–
vm.overcommit_memory:オーバーコミットするかどうかの設定
vm.overcommit_memory = 0 → オーバーコミット有効。実メモリの大きさまで割り当てる。
vm.overcommit_memory = 1 → オーバーコミット有効。実メモリ以上に割り当てる。
sysctl.conf を下記のように変更
#oom になったらカーネルパニックにさせてサーバーを再起動
——————————–
vm.overcommit_memory=1
vm.panic_on_oom=1
#15秒後に再起動
kernel.panic=15
——————————–
設定を反映
——————————–
sysctl -p
——————————–