我想使用php获取服务器CPU和RAM使用率.该脚本应该适用于Windows和Linux.
我该怎么办?
我想在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的解决方案只是暂时的解决方案,并不是最好的方法.守护进程会好得多.
我创建了一个基准类,允许用户插入例如
$timer->checkpoint('1');
Run Code Online (Sandbox Code Playgroud)
检查一些代码的时间,内存消耗等......如果她/他想测试它,她/他必须插入代码的末尾
$result=$timer->result();
Run Code Online (Sandbox Code Playgroud)
这给公共函数result()提供了一些数据,例如内存使用(使用memory_get_peak_usage)和时间消耗(microtime()).
这对我来说都很好.
但是,如何使用现有内置php函数的组合来获取可被视为CPU消耗的值?
使用内置函数计算在某段代码上花费了多少时间非常容易,但我一直在想办法如何获得某段代码的CPU消耗.
我想知道php中的内存和CPU使用情况,因为我有时使用cronejobs CPU过载所以在这种情况下我不想开始更多的进程,我只是想跳过这个cron.
我做了几个小时的研究并找到了解决方案,但是我更喜欢不使用exec命令的解决方案.
目前我有这个代码:
exec ("cat /proc/cpuinfo", $details);
$string= $details[4];
Run Code Online (Sandbox Code Playgroud)
我基本上希望它能像第一个处理器那样拉出第一个处理器的类型,但不使用system或exec命令.
我更喜欢直接从/ proc/cpuinfo读取.