天天看点

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

 该文件中的所有值都是从系统启动开始累计到当前时刻。该文件只给出了所有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();

    }

}

?>