我想要计算单个CPU在Ubuntu系统中的总体CPU利用率。我需要这个系统监控脚本中的总体CPU使用百分比。问题是,当我使用以下代码时,CPU利用率百分比总是相同的:
top -n 1 | grep "Cpu"
我找到了一个替代方案,使用以下代码即可:
read cpu a b c previdle rest < /proc/stat
prevtotal=$((a+b+c+previdle))
sleep 0.5
read cpu a b c idle rest < /proc/stat
total=$((a+b+c+idle))
CPU=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) ))
echo $CPU
这段代码存在的问题是我不确定它是否完全准确。我有几个问题...首先,为什么第一段代码会失败?其次,第二段代码可靠吗?如果不可靠,我该使用哪些代码来获得系统整体CPU利用率的可靠读数?谢谢!
while true; do; mpstat; done;
时,即使我运行了多个进程,CPU 利用率的值始终相同。 - Lynxmpstat 1 1
。 - Lynx