oom-killer killingプロセスの原因を診断する方法


9

私はCentOSとwww / mail / dbを実行している小さな仮想プライベートサーバーを使用していますが、最近Webサーバーとsshが応答しなくなったいくつかの問題が発生しました。

ログを見ると、おそらくメモリ不足とスワップが原因で、oom-killerがこれらのプロセスを強制終了したことがわかりました。

最新のインシデントを引き起こした可能性のあるものを診断する方法について、誰かが私にいくつかの指針を与えることはできますか?最初のプロセスが強制終了された可能性がありますか?他にどこを見ればいいですか?

回答:


11

いいえ、アルゴリズムはそれほど単純ではありません。あなたはより多くの情報を見つけることができます:

http://linux-mm.org/OOM_Killer

メモリ使用量を追跡したい場合は、次のようなコマンドを実行することをお勧めします。

ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head

最もメモリを使用している(そしておそらくOOMの状況を引き起こしている)プロセスのリストが表示されます。| headすべてのプロセスを確認する場合は、を削除します。

これをcronに置いた場合は、5分ごとに繰り返し、ファイルに保存します。少なくとも数日は保持して、後で何が起こったかを確認できるようにします。

sshのような重要なサービスでは、そのような状況での自動再起動にmonitを使用することをお勧めします。リモートコンソールがない場合は、マシンにアクセスできなくなることを防ぐことができます。

最高の幸運、
ジョアンミゲルネベス


ありがとう-oom-killerがさらに2、3回事件を起こして私のサーバーを酷使した後、ようやくこれを試すことにしました。原因を突き止める必要があります。
dunxd

6

oom-killerが踏みつけるプロセスが必ずしも失敗したプロセスではないため、私は最近それに苦労しました。それを診断しようとしているときに、私は今、お気に入りのツールの1つについて学びました。

このユーティリティは、ステロイドのトップのようなものです。事前設定された時間間隔で、システム情報をプロファイルします。その後、再生して何が起こっているかを確認できます。青で80%+、赤で90%+のプロセスを強調表示します。最も有用なビューは、前回の期間に割り当てられたメモリ量のメモリ使用量テーブルです。それは私を最も助けたものです。

素晴らしいツール-それについて十分に言うことはできません。

パフォーマンスモニターの上



1

OOMは、その時点でメモリ使用量が最も多いプロセスのみを強制終了します。制限を超えたプロセスや、OOmコールが急増したプロセスとは限りません。
また、linuxはメモリ割り当てが緩いです。AKAプロセスが5 GBを必要とするが3しか使用していない場合、Linuxは別のプロセスが2を使用しないようにします。パフォーマンス>信頼性。次に、p1が完全な5を必要とするとき、それを取得できません

exeprtではありません。自分自身と私が見つけたものを扱うだけです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.