init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_score_adj instead.
/proc/1/oom_adjは推奨してない、代わりに/proc/1/oom_score_adjを使いたまえ、ということだ。
しかしそもそもoomとは何だろう?
どうもout of memoryのことらしい。
OOM Killerという言葉で説明があった。
メモリが足りないので殺してしまえ、という対象から除きたいときにoom_adjへ書き込んでおくらしい。
init.rcでは、このように書いていた。
# Set init its forked children's oom_adj.
write /proc/1/oom_adj -16
リンク先では「-17」だったのだが、ここでは「-16」になっている。
数字の意味は何だろう?
ここに、-17はOOM_DISABLEですよ、という説明があった。
grepすると、include/linux/oom.hにあった。
/*
* /proc/
* Documentation/feature-removal-schedule.txt.
*
* /proc/
*/
#define OOM_DISABLE (-17)
/* inclusive */
#define OOM_ADJUST_MIN (-16)
#define OOM_ADJUST_MAX 15
feature-removal-schedule.txtは、今後削除するものリストだった(oom_adjは2012年8月)。
-17は、確かにoom-killerから保護するためのものらしい。
で、-16。これは一番小さい値らしい。
これは、殺される優先度を最後に持ってこようとしているのかな?
そうらしい。
そんなわけで、ここは動かないこととは関係がないことが分かった。
こうやって1つ1つ潰していくしかないな。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。