topと/proc/statのCPU使用量の違い

topと/proc/statのCPU使用量の違い

何よりも読んでCPU使用率を計算する小さなスクリプトを書こうとすると、/proc/stat一貫した結果が得られないようです。私は基本的に

grep cpu /proc/stat

次に、すべてのスレッドデータが蓄積される必要がある最初の行を処理します。私の場合は、4コア/8スレッドがあります。私も物事をテストするためにスレッドを継続的に占めるプログラムを書いています(基本的にはスレッドは1つですwhile(1) { 1 })。この場合、何もしないと CPU 使用量が 12.5% と予想され、 を実行すると次の結果がtop表示されます。

%Cpu(s): 12,7 usuario,  0,1 sist,  0,0 adecuado, 87,1 inact,  0,1 en espera,  0,

(申し訳ありませんが、別の言語になっています。)しかし、最初の行は次のようになります/proc/stat

cpu  1490042 169968 416799 32056116 21179 0 19504 0 0 0

ここでパーセンテージを計算すると、次のようになります。

(1490042 + 169968 + 416799)/(1490042 + 169968 + 416799 + 32056116) = 6%

なぜ一貫性がないのですか?私は/proc/stat説明がうまくいかなかったと思いますか?

ベストアンサー1

答えを見つけるのはそれほど難しくないので、私の質問に答える必要があります。文書を誤って読んだだけです。/proc/stat

/proc/stat/proc/stat開始後に集計されたデータを表示するため、特定の間隔の平均CPU使用率を計算するには、その間隔の開始と終了で指定された値の差を計算する必要があります。

おすすめ記事