gpt4 book ai didi

debian - 获取 php 中 cpu 使用率

转载 作者:行者123 更新时间:2023-12-03 00:53:55 25 4
gpt4 key购买 nike

我想显示 PHP 中的 CPU 使用百分比。如果在 shell 中通过 cron 获取值 > 输出到文件 > 在 PHP 中解析,或者直接在 php 中获取值,这并不重要。我尝试了在互联网上找到的许多解决方案,但没有任何用处。对于平均负载,我无法显示 0-100% 的图形条,并且我发现百分比输出的函数给了我错误的值或仅提供第一个核心的值。如果能够获得每个核心的使用百分比数量,那就太好了。有解决办法吗?

编辑:

我做了临时解决方案,效果很好,但不是最好的方法。

cron 作业每隔一分钟运行 php 脚本,该脚本执行来自“top”的 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(" ", preg_replace("!cpu +!", "", $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']

关于debian - 获取 php 中 cpu 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13131003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com