psプロセスごとに%CPUを測定する方法(変更できますか?)

psプロセスごとに%CPUを測定する方法(変更できますか?)

実行すると、ps -r -e -o pcpu=,comm=各プロセスのCPU率が表示されますが、この値はどのくらいの期間測定されますか?ちょっと待ってますか?マニュアルページにはこれに対する言及がないようです。

次の質問:ps長期間(例えば5秒)にわたってプロセスあたりのCPU率を報告することは可能ですか(または他の標準のUNIXユーティリティ)。 (明らかに5つの値を集めて平均を計算することもできますが、これが正しいかどうかはわかりません...)

PS!重要な場合は、macOS(BSDバリアント実行)を使用しています。

答え1

PSの場合、CPU比はプロセスの寿命に基づいています。デフォルトでは、(ユーザー時間+システム時間)/(現在-プロセス開始時間)です.

したがって、5%は、プロセスがアクティブ時間の5%の間CPUをシャットダウンすることを意味します。

上部のアプローチは、上部の更新時間に基づいて異なります。したがって、ほとんどの場合、数値は一致しません。

関連情報