我必须显示我的应用程序的CPU使用情况,并实时更新。我使用top命令来获取CPU的使用情况,即:将两个高亮显示的值相加来获取CPU的使用情况。
我将两个高亮的值相加,得到CPU的使用量。我使用的命令是添加高亮显示的值并获得最终的CPU使用量。
top -b -n 2 | grep Cpu | awk '{printf "CPU Load:%.2f\n", $(NF-13) + $(NF-15)}' | sed -n '2 p'
问题是,这个命令在一段时间后就停止工作了 也就是3到4分钟后,我确实得到了CPU的使用量 但在那之后,这个命令就不处理了,我也没有得到更新的值。我正在循环运行这个命令。
任何帮助将是非常感激的。
我使用类似的脚本已经有一段时间了,没有任何问题。
top -bn2 | grep Cpu | tail -n1 | sed -e 's/.*, *\([0-9.]*\)%* id.*/\1/' | awk '{print 100-$1}'
脚本从顶部输出中提取 "空闲 "时间,然后从100%中扣除,得到CPU使用量。
你调用脚本的循环周期不应该快于脚本完成所需的时间。否则,你可能会得到多个'top'并行运行。这主要取决于你系统中'top'的默认延迟,在我的系统中,它大约是5s,但你可以用-d switch来设置。