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, インフラ

  関連記事

【Linux】TCP・UDPポートの疎通確認・アクセス元IPの確認をしたい(nc)

とある要件で自前のサーバーとUDPの疎通・アクセス元IPの確認をする必要が生じた …

[linux][centos]Cronでanacondaでインストールしたpython3を使う。

path周りを気をつけないといかん。   とりあえず下記の形に落ち着い …

[linux][sh]アパッチのアクセスログからアクセス数の確認_簡易版

gaとかを仕込んで無いサイトでPVを確認したい、という要望あり。 アクセスログが …

Vmware Player5.0でNat + ポートフォワードで外部から接続可能にする。

最初はwindowsに仮想サーバーを立てたかっただけ。 windowsVirtu …

NATとIPマスカレードとポートフォワーディングの意味整理

NATとは プライベートIPアドレスとグローバルIPアドレスを変換する。プライベ …