gpt4 book ai didi

bash - 为什么 cpu load 的变化不会超过百分之几?

转载 作者:行者123 更新时间:2023-11-29 09:20:15 24 4
gpt4 key购买 nike

我正在运行这个命令

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

最佳答案

Why does cpu load not change more than a few hundredths?

因为 /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 "%"}'

关于bash - 为什么 cpu load 的变化不会超过百分之几?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32029015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com