PROC系列之四---/proc/loadavg

  1. 云栖社区>
  2. 博客>
  3. 正文

PROC系列之四---/proc/loadavg

cnbird 2008-07-24 15:00:00 浏览326
展开阅读全文

 该文件中的所有值都是从系统启动开始累计到当前时刻。该文件只给出了所有CPU的集合信息,不能该出每个CPU的信息。

[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值,包括轻量级进程,即线程。

假设当前有两个CPU,则每个CPU的当前任务数为4.61/2=2.31

 

wuyu@xa192:~$ cat /proc/loadavg
1.41 1.61 1.79 6/149 2331

这里的平均负载也就是可运行的进程的平均数

前三个值分别对应系统在5分钟、10分钟、15分钟内的平均负载
第四个值的分子是正在运行的进程数,分母是进程总数,最后一个是最近运行的进程ID号
 

php里可以通过这个文件监控服务器现在的状态。

<?php
if($fp = @fopen('/proc/loadavg', 'r')) {
    list($loadaverage) = explode(' ', fread($fp, 6));
    fclose($fp);
    if($loadaverage > 一个数) {
        header("HTTP/1.0 503 Service Unavailable");
        echo 'server die 囧';
        exit();
    }
}
?>

网友评论

登录后评论
0/500
评论
cnbird
+ 关注