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でとあるアプリケーションからメール送信をしたときに …

lgi01a201309210900
Linux 立ち上がっているサービス 空いているポートを確認する。

■立ち上がっているサービスの状態確認 コマンド [crayon-584732c2 …

027
mod_rewriteのテストメモ

参考サイト http://blog.dawgsdk.org/weblog/arc …

027
postfixログの解説ツール 「pflogsumm」で、送信先変更等ソース修正

メールまわりでトラブルがあって、どんだけメール送っているというのを調べたくて解説 …

027
ルーティングテーブル

ルータで利用される。IPアドレスと経路の管理表。ルータはパケットの宛先IPアドレ …