天天看點

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();

    }

}

?>