プロセスを実行すると、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
答え1
私はこれが各フィールドがどのように計算されるかという違いだと思います。このtopas
フィールドの場合:
CPU使用率%
プロセスの平均プロセッサ使用量監視間隔。プロセスが最初に表示されるとき、この値はプロセス寿命中の平均プロセッサ使用量です。
...そしてps
フィールドは次のとおりです。
%CPU
(u フラグと v フラグ) プロセスが CPU を使用した時間率そのプロセスが始まってから。この値は、プロセスがCPUを使用した時間をプロセスが費やした時間で割ることによって計算されます。マルチプロセッサ環境では、同じプロセス内の複数のスレッドを異なるCPUで同時に実行できるため、この値は使用可能なCPUの数でさらに分割されます。 (このデータを計算する時間基準が異なるため、すべての%CPUフィールドの合計が100%を超える可能性があります。)
違いを強調する説明部分を太字で表示しました。
CPU topas
%の値は、プロセスがより多くまたはより少ないCPU時間を使用するにつれて変動するため、最新の(おそらく短い)時間間隔中のCPU使用率を示します。 % ps
CPU 値は、常にプロセス値の存続期間の平均を表示します。