gpt4 book ai didi

php - 您如何计算 PHP 中的服务器负载?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:42 26 4
gpt4 key购买 nike

如何计算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>

但是,我不知道如何检测服务器负载。是否可以将此服务器负载转换为百分位数?我不知道从哪里开始。有人可以帮帮我吗?

谢谢。

最佳答案

我有一个非常古老的函数,它仍然可以解决这个问题:

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;
}

这将返回处理器负载。您也可以使用 memory_get_usagememory_get_peak_usage用于内存加载。

如果您不能基于此找到百分比...唉,发帖吧,我们一起试试。

关于php - 您如何计算 PHP 中的服务器负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5588616/

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