我正在运行这个命令
grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
但它只输出 0.99xxxx% 之类的东西
如果我进行 apt-get 升级或任何过程,我想它会超过 1%。即使运行stress -c 1 也不会使它发生任何改变。
有没有办法准确记录CPU使用情况?服务器有 1 个 vCPU。
需要每 5 秒记录一次此日志。
while sleep 5; do "code" >> logfile; done
为什么CPU负载的变化不会超过百分之几?
Because /proc/stat
返回自系统上次启动以来聚合的 CPU 负载统计信息,而不是实时的统计信息。如果您在重新启动后立即运行脚本,则只要 CPU 负载本身发生变化,报告的负载就可能会发生显着变化。然而,脚本运行的时间越长,负载变化对显示值的影响就越小,一段时间后,该值将基本上保持不变。
如果你想计算负载/proc/stat
并且不使用已经可用的工具来执行此操作,您需要计算两个连续样本的差异,例如:
while sleep 5; do grep -w cpu /proc/stat ; done | \
awk '{
print (o2+o4-$2-$4)*100/(o2+o4+o5-$2-$4-$5) "%"
o2=$2;o4=$4;o5=$5}'
否则,一个更简单但不太准确的方法可能是:
vmstat -n 5 | \
awk '{used=$13+$14;total=used+$15
if(total>0) print used*100/total "%"}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)