web-dev-qa-db-ja.com

過去に一度に実行されていたプロセスを見つける方法は?

今朝発生した高CPU使用率のアラートを調査するように求められます。 sar -pとそのときに表示される高いCPU使用率を確認しました

次に私はps -eo pcpu,pid,user,args | sort -r -k1 | lessこの時間のメモリ消費量上位10を一覧表示します

ここで、朝の特定の時間にボトルネックの原因となったプロセスを確認するにはどうすればよいですか。私はJava開発者であり、Linuxの専門家ではありません。

可能ですか?

4
juniorbansal

いくつかのオプションがあります:

  1. 必要なデータを定期的にログファイルに書き込むスクリプトを使用します。 cronを使用して、ps(およびその他のコマンド)の出力をx分ごとにログファイルに書き込むことができます。
  2. これを行う専用のプログラムを使用するほうがよいでしょう。これはログファイルの保持を管理する点で非常に優れています。

atopは、CentOS/RHEL/FedoraのEPELリポジトリおよびDebian/Ubuntuのデフォルトのリポジトリから入手できます。

Atopは通常のリアルタイムのトップユーティリティのように使用できますが、動作は少し異なります(キーストロークのマンページを確認してください)。

より興味深い部分は次のとおりです。インストールすると、デーモンが/ var/log/atopにデータのロギングを開始し、これらのファイルをatopで再び読み取ることができます。

atop -r /var/log/atop/atop_20160128

次に、「トップ」のようなすべての機能(メモリ/ CPU/IOの使用状況のソート/確認など)にアクセスし、「t」を使用して10分前にジャンプし、「T」を使用して10分前にジャンプするか、 「b」による特定の時間。

マンページのトップをチェックしてください。Googleにはたくさんのハウツーがあります。

他にも解決策はあるかもしれませんが、理解しやすく使いやすいので、オーダーメイドのセットアップを行う前に始めるのがよいでしょう。

7
Thomas