おのたく日記 YouTubeも始めました→
2006-06-08(Thu) [長年日記]
■ [Linux] KernelがOut Of Memoryでプロセスを殺すのをブロックする
Linuxカーネルは、メモリーが足りなくなってどうしようもない時にプロセスを適当に選んで殺すのは有名な話。(oom-killer)
SunOS 4.1の用に、ちゃんとスワップするメモリーが無いとプロセスを立ち上げないUNIXになれていた身としては、「ぐわー PC用のUNIXだからってそこまで割り切るのか!」と十年以上前のことだけど、Linuxを使い始めた時にびっくりしたものだ。(なにしろswapが無くても動くんだから…)
で、最近のカーネルだと
そんな事態を少しでも避けたいというシステム管理者の思いが通じたのか、oom-killerによってkillされる対象から特定のプロセスを除外することができるようになりました。
[路地裏 ソース解読研究所より引用]
ということで、
~# ls /proc/1/oom_adj
/proc/1/oom_adj
~# cat /proc/1/oom_adj
0
~# echo -17 >/proc/1/oom_adj
~# cat /proc/1/oom_adj
-17
とかしておくと、oom_killerから保護できるそうだ。長い間「linuxはメモリ足りなくなったおしまい」っていうのが身に付いていて、メモリーやスワップを十分積んでいるから、足りなくなることなんてないけどね〜
|