web-dev-qa-db-ja.com

デジタルフォレンジックを使用して壊滅的な障害を引き起こすプロセスを診断する方法

Ubuntu 18.04 lsb、私はAmazon Ec2インスタンス(無料枠)がハングしたときに何が起こっているのかを診断する最良の方法を見つけようとしています。

実験的なサービスが実行されており、メモリリークが発生している可能性があります。

クオリティオブライフのために、私は lnav と呼ばれるユーティリティを使用して、システムログの閲覧を支援しています。また、私は monitorix と呼ばれるユーティリティをインストールして、起こっていることを視覚化しています。

システムログから問題の原因となっている特定のプロセスを特定する方法はありますか?どのログが役に立ちますか? (/ var/log/syslogは役に立ちません)

これらのグラフは、致命的な障害が発生するまでシステムスワップスペースが消費されることに関連する高いCPU負荷を示しています。

High CPU load

Swap consumption

しかし、これは具体的なプロセスを教えてくれません。端末からこれを行うにはどうすればよいですか?

構成できる他のプロセス監視はありますか?

Appriciatedヘルプ...

編集:@Rinzwindからのヒントのおかげでsarがインストールされ、cronが2分ごとに実行しています...しかし、プロセスレベルの情報は提供されません。だから、この他の助けを借りて answer

pidstat 5 > pidhist.logパイプを使用してテキストファイルに出力し、永続的なセッションで実行すると、イベントが再度発生したときに診断に役立ちます。

@heynnemaが提案したiotop

ランニング iotop -P -aこれは、トータライザとしてのファイルI/Oのtopです。これは、実験的なプロセス(モノサービス)がSWAPINで最も多くのスワップを消費するプロセスであることを示していました enter image description here
enter image description here ****

topenter image description hereenter image description here

同じ消費パターンが見られ、プロセスを再開した後、monitorixから通常の約20%に戻ります。

enter image description here

システムは、これらのランダムなイベントの間、何週間も安定しています。 iotopの証拠は、根本的な問題が実験的なプロセス内にあることを証明しています!

しかし、これはまだランタイム診断です。 既存のログから、事後に障害が発生したプロセスを特定する方法はありますか?先制的なモニタリングとロギングなしでそれを行うために。

問題の証明は解決すべき重要な問題です。ロギングが有効になっていない場合、再発を待たずにそれを行うにはどうすればよいですか?カーネルログ???

助けてくれてありがとう。

3
Kickaha

この問題を解決するためにRAMを追加しません。

メモリリークの原因となっているプロセスを特定することは、システム構成とは関係ありません。

iotop -P -aは、イベントの再発時にスワップを消費するプロセスを特定するのに役立ちました。

デジタルフォレンジックログ調査の手順は、より優れたソリューションになります。

0
Kickaha

コメントから...

free -hsysctl vm.swappinesscat /etc/fstabの出力を確認し、iotopをインストールして、スワップを頻繁に使用する場合の理由を判断しました。

システムがスラッシングである理由はいくつかあります。

  1. 十分なRAMがない

  2. 十分なスワップがない

  3. vm.swappinessが誤って変更されました

修正...

  1. rAMを追加する

  2. / swapfileスペースを増やす

  3. vm.swappinessを60-90に設定します(60がデフォルトです)

1
heynnema