如何在Linux中确定shell的当前CPU利用率?
例如,我得到负载平均值如下:
cat /proc/loadavg
Run Code Online (Sandbox Code Playgroud)
输出:
0.18 0.48 0.46 4/234 30719
Run Code Online (Sandbox Code Playgroud) 我想在PHP中显示CPU使用百分比.如果通过shell中的cron获取值>输出到文件>在PHP中解析或直接在php中获取值,则不重要.我尝试在互联网上找到很多解决方案但没有任何用处.对于平均负载,我无法显示0-100%图形条,我找到的百分比输出函数给出了错误的值或只有第一个核心的值.获得每个核心的百分比使用率会很好.有解决方案吗?
编辑:
我做了临时解决方案,它运作良好,但这不是最好的方法.
cron job每隔一分钟运行php脚本,其中exec命令为grep cpu info从"top"保存到文件,在结束脚本上等待3秒并循环20次(每3秒获取更新的方式)php脚本:
<?php
for($i=0; $i<=20; $i++) {
//cpu load
exec("top -b -n 1 | grep 'Cpu(s):' > /some/file.cpu");
//ram usage
exec("top -b -n 1 | grep 'Mem:' > /some/file.ram");
//wait 3sec
sleep(3);
}
?>
Run Code Online (Sandbox Code Playgroud)
现在从这个文件我可以解析信息.
新问题是如何让守护进程脚本每3秒运行一次这个命令.我认为使用php脚本和cron的解决方案只是暂时的解决方案,并不是最好的方法.守护进程会好得多.