你如何通过PHP获得服务器CPU使用率和RAM使用率?

Meh*_*ily 14 php cpu-usage

我想使用php获取服务器CPU和RAM使用率.该脚本应该适用于Windows和Linux.

我该怎么办?

小智 21

第一个函数将返回服务器内存使用情况:

function get_server_memory_usage(){

    $free = shell_exec('free');
    $free = (string)trim($free);
    $free_arr = explode("\n", $free);
    $mem = explode(" ", $free_arr[1]);
    $mem = array_filter($mem);
    $mem = array_merge($mem);
    $memory_usage = $mem[2]/$mem[1]*100;

    return $memory_usage;
}
Run Code Online (Sandbox Code Playgroud)

此函数将返回服务器CPU使用情况:

function get_server_cpu_usage(){

    $load = sys_getloadavg();
    return $load[0];

}
Run Code Online (Sandbox Code Playgroud)

  • `sys_getloadavg()` 返回 `load`,它不一定是 CPU 使用率。它包括磁盘速度等。 (4认同)
  • 我怀疑这两个只能在类似*nix的操作系统中运行. (3认同)

Gar*_*aid 5

我建议使用PHP SNMP

http://www.php.net/manual/zh/book.snmp.php

这将为Windows和Linux提供一个统一的解决方案,而不必使用exec命令。

您当然需要在Windows和Linux服务器上安装Windows SNMP守护程序/服务

对于Linux,只需使用Net-SNMP,例如CentOS

sudo yum install net-snmp
sudo service snmpd start
sudo chkconfig snmpd on
Run Code Online (Sandbox Code Playgroud)

Net-SNMP也可用于Windows:

http://www.net-snmp.org/