プロセス寿命中にプロセスの最高CPU使用率を検出する方法

プロセス寿命中にプロセスの最高CPU使用率を検出する方法

いくつかのマルチスレッドテストを作成しましたが、このテストの最大CPU使用量が100 * CPU_NUMBER現在のコンピュータの最大CPU使用量と同じであることを確認したいと思います。できますか?

UPD 0:私はLinuxシステムについて話しています。

答え1

sarSARはSystem Activity Reportの略です。 UNIXに似たオペレーティングシステムでCPU、メモリ、およびIO使用量を報告するために使用されますsysstat

その後、sysatat個々のプロセスを監視するように設定できます。協会

収集頻度と sar がレポートを保持する期間は、最初の設定によって決まります。

そのようなデータ収集は「無料」ではないため、本番サーバーに保存しないことに注意してください。

設定したら、コマンドを使用sarしてgrepスクリプトのレポートからデータを簡単に抽出できますawk

使用しているOSを指定していないので、ディストリビューションでsar / sysstatを設定する方法を検索してください。

答え2

pidstatsysstat通常、単一のプロセスIDを監視し、各スレッドの統計を印刷するパッケージの一部です。たとえば、実行中の Chrome ブラウザの場合:

$ pidstat -t -p 27680 1
17:17:36   TGID    TID    %usr %system  %guest    %CPU CPU  Command
17:17:37  27680      -   13.00    3.00    0.00   16.00   0  chrome
17:17:37      -  27680    9.00    1.00    0.00   10.00   0  |__chrome
17:17:37      -  27712    2.00    1.00    0.00    3.00   1  |__Chrome_IOThread
17:17:37      -  27714    2.00    0.00    0.00    2.00   1  |__CompositorTileW

この1秒の例では、CPUが0%のスレッドがたくさんあり、これを削除しました。 100% は CPU が 1 つだけ完全に占有されたことを意味することがわかっています。-ICPU数で割るフラグがあります。

関連情報