了解 Linux 环境中总实时 CPU 百分比状态的真正命令是什么,理想值是什么

了解 Linux 环境中总实时 CPU 百分比状态的真正命令是什么,理想值是什么

我理解这一点,tophtop实时提供了很多有关服务器状态的信息。但是什么真正给了我服务器的总 CPU 信息?我可以依赖命令中的 id 列吗top

%Cpu(s):  1.9 us,  0.7 sy,  0.0 ni, 92.2 id,  5.2 wa,  0.0 hi,  0.1 si,  0.0 st

例如,从上面的例子可以看出,总 CPU 使用率是 100% 中的 92.2% 吗?我们可以使用以下命令:

(top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{ split($1, vs, ","); v=vs[length(vs)]; sub("%", "", v); printf "%s%.1f%%\n", prefix, 100 - v }')

或通过此链接总体 CPU 使用率计算结果表明:

awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print ($2+$4-u1) * 100 / (t-t1) "%"; }' \
<(grep 'cpu ' /proc/stat) <(sleep 1;grep 'cpu ' /proc/stat)

或者:

top -bn1 | grep "Cpu(s)" | \
           sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
           awk '{print 100 - $1"%"}'

或者:

mpstat | awk '$3 ~ /CPU/ { for(i=1;i<=NF;i++) { if ($i ~ /%idle/) field=i } } $3 ~ /all/ { print 100 - $field }'

另外,我们不想传递的理想值是什么?

相关内容