PHP实现系统负载控制用于部分 Unix/Linux 主机下,系统高于此值时会禁止新用户访问直至负载下降,通常情况可设置为 5~10,0 为不限制。本功能会轻微加重服务器负担
$loadctrl=8;
if(!empty($loadctrl) && substr(PHP_OS, 0, 3) != 'WIN') {
if($fp = @fopen('/proc/loadavg', 'r')) {
list($loadaverage) = explode(' ', fread($fp, 6));
fclose($fp);
if($loadaverage > $loadctrl) {
header("HTTP/1.0 503 Service Unavailable");
include DISCUZ_ROOT.'./include/serverbusy.htm';
exit();
}
}
}
摘抄自DISCUZ!6.0
参考:
[root@localhost ~]# cat /proc/loadavg
4.61 4.36 4.15 9/84 5662
每个值的含义为:
参数 解释
lavg_1 (4.61) 1-分钟平均负载
lavg_5 (4.36) 5-分钟平均负载
lavg_15(4.15) 15-分钟平均负载
nr_running (9) 在采样时刻,运行队列的任务的数目,与/proc/stat的procs_running表示相同意思
nr_threads (84) 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务)
last_pid(5662) 最大的pid值,包括轻量级进程,即线程。
相关文章