<?php
/*
*Function was counted Cpu used rate
*/
function getCPUUsed(){
$retrun_array=array();
/*提取/proc/stat目录下的输出信息到$retrun_array*/
exec("cat /proc/stat | awk '/cpu /{print $0}'",$retrun_array);
/* 将retrun_array[0]中的信息cpu 150663 0 91848 34685691以空格分解为字符串存储*/
$save= explode(" ",$retrun_array[0]); //save[0]=cpu
$save_user=$save[2]+$save[3];//save[2]=150663;save[3]=0
$save_system=$save[4]; //save[4]=91848
$save_total=$save[2]+$save[3]+$save[4]+$save[5]; //34928202 cpu的总主频
unset($retrun_array); //清空数组
exec("sleep 1s"); //休息一秒(计算Cpu利用率的时间间隔,即以一秒为单位计算Cpu的利用率 )
/*重复之前计算*/
exec("cat /proc/stat | awk '/cpu /{print $0}'",$retrun_array);
$cpu= explode(" ",$retrun_array[0]); //cpu 151070 0 92170 34844652
$cpu_user=$cpu[2]+$cpu[3];
$cpu_system=$cpu[4];
$cpu_total=$cpu[2]+$cpu[3]+$cpu[4]+$cpu[5];
/*两次计算的差值*/
$delta_user=$cpu_user - $save_user;
$delta_system= $cpu_system - $save_system;
$delta_total=$cpu_total - $save_total;
$user=$delta_user*100/$delta_total; //1秒内用户态Cpu的使用率
$system=$delta_system*100/$delta_total; //1秒内内核态Cpu的使用率
/*取整处理,1秒内Cpu的总使用率*/
$res=round($user+$system);
return $res;
}
/*
*Function was counted Memory used rate
*/
function getMemoryused(){
if (FALSE === ($str = @file("/proc/meminfo"))){
echo "return FALSE"; return FALSE;
} //如果索取内存的使用信息出错则返回
$str = implode("", $str);
preg_match_all("/MemTotal\s{0,}\:+\s{0,}([\d\.]+).+?MemFree\s{0,}\:+\s{0,}([\d\.]+).+?Cached\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buf);//提取MemTotal、MemFree、Cached字段后面的对应信息
$res['memTotal'] =$buf[1][0]/1024;
$res['memFree'] =$buf[2][0]/1024;
$res['Cached'] =$buf[3][0]/1024;
$res['memUsed'] = ($res['memTotal']-$res['memFree']-$res['Cached']);
$res['memPercent'] = (floatval($res['memTotal'])!=0)?$res['memUsed']/$res['memTotal']*100:0;
$res['memPercent']=round($res['memPercent']);
return $res['memPercent'];
}
/*
*Function was counted Disk used rate
*/
function getDiskused(){
/*返回磁盘的总空间,disk_total_space("/")返回的为根目录下的磁盘总空间,即为总的硬盘大小*/
$res['diskspaceTotal']=(@disk_total_space(".")/(1024*1024));
/*返回磁盘空闲的空间,disk_free_space("/"),返回磁盘总剩余空间*/