topコマンドに1秒あたりのCPU使用率を計算させるにはどうすればよいですか?

topコマンドに1秒あたりのCPU使用率を計算させるにはどうすればよいですか?

top私はSolarisモードでviaを使用していますtop -d 1が、私のプロセスの1つがCPUの約45%を使用していることがわかりました。

質問:

  • 私がこれを使用しているのは、-d 1プロセスが1秒あたりのコアの約半分を使用しているという意味ですか?
  • そうでない場合は、1秒あたりのCPU使用率をどのように計算できますか?

ベストアンサー1

アプリケーションに表示される使用量は、45%CPUの1つのコア使用量である可能性が高く、これが列の数の合計が異常である理由%CPUです100%

1秒あたりのシステムの総CPU使用量を知りたい場合は、id出力属性(IDLE)を使用できますtop。これをコア数(nproc --all)で割ると、現在のCPU使用率が得られます。

top -bn2 | grep '%Cpu' | tail -1 | grep -P '(....|...) id,' | awk -v cores=$(nproc --all) '{print "CPU Usage: " ($8/cores) "%"}'

合計CPU使用率を取得するいくつかの異なる方法:

仮想マシンの状態

echo "CPU Usage: "$[100-$(vmstat 1 2 | tail -1 | awk '{print $15}')]"%"

このコマンドは、次の結果を解析します。vmstat1秒間遅延してから、使用可能なCPUスペースを減算して、100現在使用中のスペースの量を取得します。

/プロセス/統計

cat /proc/stat | grep cpu | tail -1 | awk '{print "CPU Usage: " ($5*100)/($2+$3+$4+$5+$6+$7+$8+$9+$10) "%"}'

関心のある情報を分析するには、次の計算を使用します。

Average idle time (%) = (idle * 100) / (user + nice + system + idle + iowait + irq + softirq + steal + guest + guest_nice)

引用:

おすすめ記事