【发布时间】:2012-11-12 00:57:11
【问题描述】:
我正在尝试计算单个 CPU 的整体 CPU 利用率,Ubuntu 系统使用 bash。我需要我正在制作的系统监控脚本的总体 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 利用率?谢谢!
【问题讨论】:
标签: linux bash ubuntu cpu utilization