你如何计算PHP/apache的服务器负载?我知道在vBulletin论坛中显示的是服务器负载,0.03 0.01 0.04但对于一般的乔来说这是不可理解的.所以我想到了1-100百分位的规模.我想显示一个从DIV读取的服务器加载视觉:
$load = $serverLoad*100;
<div class=\"serverLoad\">
<div style=\"width: $load%;\"></div>//show visual for server load on a 1-100 % scale
</div>
<p>Current server load is $load%</p>
</div>
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何检测服务器负载.是否可以将此服务器负载转换为百分位数?我不知道从哪里开始.愿有人请帮帮我吗?
谢谢.
Khe*_*hez 14
我有一个非常古老的功能,仍然可以做到这一点:
function getServerLoad($windows = false){
$os=strtolower(PHP_OS);
if(strpos($os, 'win') === false){
if(file_exists('/proc/loadavg')){
$load = file_get_contents('/proc/loadavg');
$load = explode(' ', $load, 1);
$load = $load[0];
}elseif(function_exists('shell_exec')){
$load = explode(' ', `uptime`);
$load = $load[count($load)-1];
}else{
return false;
}
if(function_exists('shell_exec'))
$cpu_count = shell_exec('cat /proc/cpuinfo | grep processor | wc -l');
return array('load'=>$load, 'procs'=>$cpu_count);
}elseif($windows){
if(class_exists('COM')){
$wmi=new COM('WinMgmts:\\\\.');
$cpus=$wmi->InstancesOf('Win32_Processor');
$load=0;
$cpu_count=0;
if(version_compare('4.50.0', PHP_VERSION) == 1){
while($cpu = $cpus->Next()){
$load += $cpu->LoadPercentage;
$cpu_count++;
}
}else{
foreach($cpus as $cpu){
$load += $cpu->LoadPercentage;
$cpu_count++;
}
}
return array('load'=>$load, 'procs'=>$cpu_count);
}
return false;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
这会返回处理器负载.您还可以使用memory_get_usage和memory_get_peak_usage进行内存加载.
如果您无法根据此信息找到百分比...叹息,只需发布,我们将一起尝试.
| 归档时间: |
|
| 查看次数: |
16091 次 |
| 最近记录: |