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}')]"%"
このコマンドは、次の結果を解析します。vmstat
1秒間遅延してから、使用可能な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)
引用: