加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

debian – 在PHP中获取cpu百分比的用法

发布时间:2020-12-13 16:30:24 所属栏目:PHP教程 来源:网络整理
导读:我想在 PHP中显示百分比CPU使用率.在shell中获取cron的值不是很重要输出到文件在PHP中解析或直接在php中获取值.我尝试在互联网上找到许多解决方案,但没有什么用的负载平均我无法显示0-100%的图形栏和函数,我发现百分比输出给我不好的值或只有第一个核心的值
我想在 PHP中显示百分比CPU使用率.在shell中获取cron的值不是很重要>输出到文件>在PHP中解析或直接在php中获取值.我尝试在互联网上找到许多解决方案,但没有什么用的负载平均我无法显示0-100%的图形栏和函数,我发现百分比输出给我不好的值或只有第一个核心的值.获取每个核心使用百分比将是很好的.是否有解决方案?

编辑:

我做临时解决方案,它工作得很好,但不是最好的方法.

cron工作每一分钟运行php脚本哪个exec命令为grep cpu信息从“顶”,并保存到文件,结束脚本等待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);
}
?>

现在从这个文件我可以解析信息.

新问题是如何使守护程序脚本每3秒运行一次这个命令.我认为php脚本和cron的解决方案只是暂时的解决方案,而不是最好的方法.守护进程会好多了

在论坛搜索和尝试许多方法之后,最准确的是:
$stat1 = file('/proc/stat'); 
sleep(1); 
$stat2 = file('/proc/stat'); 
$info1 = explode(" ",preg_replace("!cpu +!","",$stat1[0])); 
$info2 = explode(" ",$stat2[0])); 
$dif = array(); 
$dif['user'] = $info2[0] - $info1[0]; 
$dif['nice'] = $info2[1] - $info1[1]; 
$dif['sys'] = $info2[2] - $info1[2]; 
$dif['idle'] = $info2[3] - $info1[3]; 
$total = array_sum($dif); 
$cpu = array(); 
foreach($dif as $x=>$y) $cpu[$x] = round($y / $total * 100,1);

现在的统计资料是$cpu [‘user’],$cpu [‘nice’],$cpu [‘sys’],$cpu [‘idle’]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读