CプログラムからCPU使用率統計を取得する

CプログラムからCPU使用率統計を取得する

CプログラムからCPU使用率統計を読みたいです。 CPU使用率に興味があります。時間を盗むなど。これらの統計はtopコマンドの3行目に表示されます。

()を使用して出力を解析してみましたが、top正しい統計を表示する前に常に同じ「偽」値を提供しているようです。awktop -n 1 -b | awk '{print $0}'top

コード内または一部のコマンドの出力を解析してCPU使用率統計を取得する方法はありますか?

編集する:

プラットフォームはLinux

ありがとうございます。

ベストアンサー1

読みたい最初の数行/proc/stat。測定された時間だけ分離して2回読み、次に2番目の数値セットから最初の数値セットを減算する必要があります。行は次のとおりです

cpu  1526724 408013 600675 541100340 2861417 528 14531 0 0 0
cpu0 344507 77818 251244 134816146 1119991 324 13283 0 0 0
cpu1 502614 324065 179301 133991407 1631824 136 906 0 0 0
cpu2 299080 3527 79456 136144067 103208 59 255 0 0 0
cpu3 380521 2602 90672 136148719 6393 7 86 0 0 0
intr 2111239193 344878476 16943 ...

最初の行はすべてのコアのセットです。次の数行は各コアを示しています。で始まる行が表示されたら、intr解析を停止する必要があることを知っています。

各数字は、CPUが特定の状態で消費する時間である。単位は通常100分の1秒です。これらのフィールドはuser、、、、、、、、、、、およびです。​​​nicesystemidleiowaitirqsoftirqstealguestguest_nice

信頼できる文書はもちろん、ソースコードです。 Linuxカーネルのソースコードのコピーがある場合は、fs/proc/stat.c特にshow_stat関数を見てください。

おすすめ記事