OOM killer
メモリ逼迫時にLinuxが最後に取る手段。システム全体を止めるくらいなら、プロセスを一つ選んで殺す。
背景にあるのは、Linuxがオーバーコミットを許していることだ。プログラムは実際に使う量より多くのメモリを要求するのが普通なので、カーネルは持っている以上のメモリを約束する。たいていはこれで問題ないが、破綻したときには渡せるメモリが残っていない。かといって確保を拒否すれば、プログラムが予測不能な場所で落ちる。
そこで犠牲者が選ばれる。oom_scoreはメモリ消費量を稼働時間や優先度と比べて算出するが、実際には一番守りたかったデータベースが選ばれがちである。値はプロセスごとにoom_score_adjで調整できる。dmesgに残るOut of memory: Killed processの一行が、サービスが「ただ消えた」ことの唯一の痕跡になることも多い。