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
sendmailエラー dsn=4.4.3, stat=queued

CentOS sendmailでとあるアプリケーションからメール送信をしたときに …

027
TCP/IP

データ通信規格群。インターネットはこのプロトコルに従い構成されている。 階層モデ …

027
VmwareServerでCent6を入れると再起動時にカーネルパニックになる。

なんで?

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

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

centos_logo
Linuxでファイルのフルパスを取得する。

【参考】 http://linux.just4fun.biz/%E9%80%86 …