2012-08-16 46 views
54

當issueing從Linux命令:的Linux的/ proc/loadavg

# cat /proc/loadavg 
0.75 0.35 0.25 1/25 1747 

什麼是最後的2號?

最後一個每秒增加2個,我應該擔心嗎?

回答

13

前三列測量最後一個,五個和十五分鐘時間段的CPU和I/O利用率。第四列顯示當前正在運行的進程的數量和進程的總數。最後一列顯示使用的最後一個進程ID。

https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-proc-loadavg.html

(我尋找答案,這樣你就可以做到這一點,太。)

+1

非常感謝,我沒有,但我只拿到了垃圾信息的https://duckduckgo.com/?q=proc%2Floadavg&t=canonical鏈接 – Ulterior 2012-08-16 12:52:32

+0

第二主打 – 2012-08-16 12:53:04

+2

我堅決反對這個定義。前三個數字並不直接測量CPU和I/O利用率*,它們是運行隊列中或等待I/O的平均作業數,正如@auselen的回答所述。 – Jan 2017-05-17 12:40:57

48

最後一個是系統的最後15分鐘的工作量。

/proc/loadavg

在該文件中的前三個字段是負載給予 的在運行隊列中(狀態R)的作業的數量或等待磁盤 I/O(狀態d)平均平均圖超過1,5和15分鐘。它們是 ,與正常運行時間(1)和其他 程序給出的平均負載數相同。

第四個字段由兩個數字組成,用 斜槓(/)分隔。其中第一個是當前正在執行的內核調度實體(進程,線程)的數量;這將比CPU的數量少或等於 。斜槓後面的值是 系統上當前存在的內核調度實體的 數量。

第五個字段是最近在系統上創建的最爲 的進程的PID。

9

我想對接受的答案發表評論。

第四個字段由用斜槓(/)分隔的兩個數字組成。其中第一個是當前正在執行的內核調度實體(進程,線程)的數量;這將小於或等於 個CPU數量。

我做了一個測試程序,從輸入中讀取整數N,然後創建N個線程,並且它們永遠運行它們。在RHEL 6.5計算機上,我有8個處理器,每個處理器都有超線程。無論如何,如果我運行我的測試,它會創建128個線程,我看到在第四個字段值大於128,例如135.它顯然比CPU的數量更大。這個帖子支持我的觀察:http://juliano.info/en/Blog:Memory_Leak/Understanding_the_Linux_load_average

值得注意的是,在PROC當前的解釋(5)手冊 (作爲人的頁面版本3.21,2009年3月)是錯誤的。它報告 第四個字段的第一個數字作爲當前正在執行的 調度實體的數量,因此預測它不能大於 個CPU數量。這與實際實現不匹配,其中此值報告當前可運行線程的數量。

+1

可以確認:kernel/sched/core.c nr_running()將自己描述爲收集* runnable *而不是*運行*任務。 – fche 2016-04-08 14:13:53