For Want Of A Better Word

oom-killerについて

      2015/04/18

oom-killerとは

[参考]http://itpro.nikkeibp.co.jp/article/COLUMN/20061117/254053/
・システムが実メモリーと仮想メモリー空間(スワップ領域)を使い切り、必要なメモリー領域を新たに確保できない場合に、プロセスを強制終了させて空きメモリーを確保する、Linuxカーネルの仕組みです。
・実際にどのプロセスを強制終了するかは、カーネル内部のbadness()関数が決めます。
・特定プロセスを殺さないように設定するには下記のコマンドを発行します。っと。

echo -17 > /proc/〈プロセスID〉/oom_adj

稼働タイミング

メモリ不足の時。
実メモリと仮想メモリ(swap領域)を使い果たした場合。
– Linuxでのメモリの確認方法
【参考】http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html

①実メモリ
freeコマンドの free L+ buffer/cacheが空きメモリ
②仮想メモリ(swap)

$ free
total used free sharedbuffers cached
Mem:192572 190944 16285491220112 126848
-/+ buffers/cache:43984 148588<—-実メモリの空き
Swap:96384096384<—-仮想メモリの空き

確認方法

oom-killerで切ったプロセスの確認

grep ‘Killed process’ /var/log/messages (シスログ)

#ログ
Jun 1XX:XX:XX hostname kernel: Out of memory: Killed process 15645, UID 26, (postmaster).
Jun 1XX:XX:XX hostname kernel: Out of memory: Killed process 15646, UID 26, (httpd).

これで参照できる。

omm-killerのきっかけとなったプロセスと起動タイミングの特定

grep’invoked oom-killer’ /var/log/messages

# log
Jun 1 XX:XX:XX hostname kernel: httpd invoked oom-killer: gfp_mask=XXXXXX, order=X, oomkilladj=X

httpdが、oom-killerをよんだよっていうこと。
この時間にこのプロセスが何をしていたかを該当プロセスのログから見れば、きっかけが分かるかも。

 - linux, インフラ

  関連記事

027
Linux用外付けHDDの設定の流れ

まずはフォーマットをしたい 対象を探す http://d.hatena.ne.j …

027
色んな 「セッション」の意味まとめ

セッションとは…. ネットワークまわりで「セッションを張る」「セッシ …

mysql-logo
mysqlのログの種類と内容

[bashだけど参考。。] http://blog.livedoor.jp/my …

apache-logo
CentOS5とDjango

http://www.rnsk.net/blog/python-10%E5%88 …

027
WEBを支える技術(第一部)

本書の構成 概要 ①WEBを支える技術である、HTTPとURI、HTMLなどのハ …