web-dev-qa-db-ja.com

AIX7.2トパスは高いCPUを示します

特定のプロセスに対してtopasを実行すると、CPU%列に43%と表示され、85%にジャンプします。

私が実行するとき:

"ps aux | grep processName"  

同じプロセスは5%です。

より正確なものは何ですか? Linuxの「watch」コマンドに似たループも作成しましたが、%5になっていることがわかります。

Topasとpsの違いは何ですか、そして誰が正しいですか?

psの出力:

[ttfai231:root]/root>ps aux | head -1; ps aux | sort -rn +2 | head -10
USER          PID %CPU %MEM   SZ  RSS    TTY STAT    STIME  TIME COMMAND
root      9306548  8.6  1.0 12880 12880      - A    13:35:33 41:20 MYDAEMON
root      1048868  2.0  0.0  448  448      - A    13:22:36 11:50 wait

トパス: enter image description here

1
ilansch

これは、各フィールドの計算方法の違いだと思います。 topasフィールドの場合:

%CPU使用率

監視間隔でのプロセスの平均プロセッサ使用量。プロセスが最初に表示されるとき、この値は、プロセスの存続期間中の平均プロセッサー使用量です。

... psフィールド:

%CPU

(uおよびvフラグ)プロセスがCPUを使用した時間のパーセンテージプロセスが開始されてから。この値は、プロセスがCPUを使用する時間をプロセスの経過時間で割ることによって計算されます。マルチプロセッサ環境では、同じプロセス内の複数のスレッドが異なるCPUで同時に実行される可能性があるため、値は使用可能なCPUの数でさらに除算されます。 (このデータが計算されるタイムベースはさまざまであるため、すべての%CPUフィールドの合計が100%を超える可能性があります。)

違いを強調する説明の一部を太字にしました。

topas CPU%値は、プロセスが多かれ少なかれCPU時間を使用するにつれて変動するため、最新の(おそらく短い)間隔でのCPU使用率が表示されます。 ps%CPU値は、常にプロセスの存続期間中の平均として表示されます。

1
Jeff Schaller