Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
OOM-Killer が発動したら自動でリブートさせるやつを設定するやつ(コピペ実行で摘要できます)
#!/bin/bash
(
echo '# OOM-Killer が発動したら自動でリブートさせるやつを設定するやつ'
echo '# https://gist.github.com/kawaz/1605bec92acac16d0638591e4bbfd5b1'
echo vm.overcommit_memory = 1
echo vm.panic_on_oom = 1
echo kernel.panic = 1
) > /etc/sysctl.d/99-custom-autoreboot-on-oom-killer
sysctl -p /etc/sysctl.d/99-custom-autoreboot-on-oom-killer
# SWAP止めちゃう
swapoff -a
@kawaz
Copy link
Author

kawaz commented Jan 20, 2020

vm.overcommit_memory

OOM Killer をいつ頃発生させるかの判定方法

  • 0:(kernel > 2.4 の default) 最近のLinuxのデフォルト。きっちり裏取りはしないが、今までの経験から、メモリが確保出来そうか否かを判断する。つまり、そこそこ賢く、そこそこ早い、OOM Killerは出る。パフォーマンス: 中、堅牢性: 中
  • 1:(kernel < 2.0 の default) 何にもovercommitを制御しない、最もアホなモード。アホ故に早い。OOM Killerは一番でる。パフォーマンス: 高、堅牢性: 低
  • 2:(kernel > 2.6 の default) overcommitをシビアに管理する。overcommit_ratioで制御する。swap = 0 なら ratio=100 にしとけばいいらしい。Linuxのメモリ管理の性質上、 SWAPを大量に積んでおく必要がある。一番賢いが、一番遅い、OOM Killerは理論上は一応出るが基本でない。パフォーマンス: 低、堅牢性: 高

vm.panic_on_oom

OOM killer発生時のpanic有無

  • 0:panicしない(デフォルト)
  • 1:panicする。ただし、cgroupの制限に引っかかった場合はpanicしない。
  • 2:panicする。cgroup制限も含め問答無用でpanicする。

kernel.panic

panic時の挙動設定。kdump利用時は、このパラメータが使われている処理ロジックの前に、kdumpのセカンドカーネル起動が走るため、パラメータが使われることはない。

  • kernel.panic > 0:n秒後まって再起動
  • kernel.panic = 0: ハング(デフォルト)
  • kernel.panic < 0:即時再起動

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment