夜に私のシステムの負荷平均がより高い原因を見つけようとしている間(logrotateとは何の関係もないようです)、特定の間隔で生のファイルを書き込むソフトウェアをインストールしました。ファイルの読み込み中にプロセスのリストが静かにあるようです。どういうわけかサンプル間を行き来し、目立つ項目を確認し、追加の列(CPU使用率など)で並べ替えることはできますか?
答え1
2番目の質問に関して、デフォルトで印刷されたリストはatop
CPU使用率に基づいてソートされます。常駐メモリ消費などの他のパラメータに基づいてソートするには、これを行うことができます(man atop
対話型および生ファイルモードの仕組みを教えてください)。
最初の質問に関しては、次の小さなAWKスクリプトが役に立ちます。
BEGIN {
printline = "false"
}
{
if (printline == "true") { print($0); printline = "false" }
if ($1 == "PID") { printline = "true" }
}
これを実行するawk -f myScript.awk logFromAtop.log
と、各間隔の一番上の行が表示され、目立つ数行を簡単に表示できます。 (スクリプトは単にPIDで始まる行を見つけ、次の行を印刷します。)
atopのバージョンによっては、ランタイムフラグに基づいてASCIIまたはバイナリの生ファイルを提供できます。後者の場合、atop
独自のASCIIバージョンを取得できます(例:atop -r binary.raw > logFromAtop.log
。
答え2
CPU使用率を見ると、どのプロセスが高い平均負荷を引き起こすのかわかりません。負荷平均は、プロセスが実行される時間(R)またはI / Oを待つ時間(D)によって異なります。したがって、使用する必要がある実際のオプションは次のとおりですs
。
s
スケジュール属性を表示します。80位置のウィンドウ幅を使用すると、プロセスごとに次のフィールドが表示されます。process-id、「実行中」状態のスレッド数(R)、「中断可能スリープ」状態のスレッド数(S)、「無中断スリープ」状態のスレッド数(D)、スケジューリング戦略(通常の時間共有、リアルタイムループ、リアルタイムFIFO)、良い値、優先順位、リアルタイム優先順位、現在のプロセッサ、ステータス、終了コード、ステータス、選択したリソースの割合、およびプロセス名。
80以上の役職が利用可能な場合は、追加情報が追加されます。
スケジュール属性を表示するように構成を変更すると、犯人を見つけることができます。
答え3
atop
引数を使用して実行した-r
後、ログファイルを実行します。
その後、atop
実行時ctrlに+を使用Fして次のページを表示するか、ctrl+を使用してB前のページを表示できます。