最近開始學習解決線上問題的知識,大神一般怎麼做,我也不知道,網上一搜都是top作爲馬前卒,來看看我的電腦這個命令運行的結果:
第一次看,估計不是太適應,我們只看核心簡單的:
load avg:
linux系統中的Load對當前CPU工作量的度量,也有簡單的說是進程隊列的長度。
Load Average 就是一段時間(1分鐘、5分鐘、15分鐘)內平均 Load。
當這個值超過 CPU可執行單元的數目,則表示 CPU的性能已經飽和成爲瓶頸了。
上面內容顯示系統負載爲“2.63, 2.43, 2.32”,這3個值是什麼意思呢?
- 第一位2.63:表示最近1分鐘平均負載
- 第二位2.43:表示最近5分鐘平均負載
- 第三位2.32:表示最近15分鐘平均負載
linux系統是5秒鐘進行一次Load採樣;講到這裏,其實估計大家還是不懂這個2.63到底是什麼意思,我先給出下面一個截圖,是我電腦的配置:
我的電腦是單cpu,4核的,load average一直都是2~3之間,load average小於4,說明系統工作正常,沒有什麼負擔;用一個形象的例子來說明:
假設我們的系統是單CPU單內核的,把它比喻成是一條單向馬路,把CPU任務比作汽車。
當車不多的時候,load <1;
當車佔滿整個馬路的時候 load=1;
當馬路都站滿了,而且馬路外還堆滿了汽車的時候,load>1
單CPU單內核,Load Average值是多少需要我們的注意?
- 0.7 < load < 1:此時是不錯的狀態,如果進來更多的汽車,你的馬路仍然可以應付。
- load = 1:你的馬路即將擁堵,而且沒有更多的資源額外的任務,趕緊看看發生了什麼吧。
- load > 5:非常嚴重擁堵,我們的馬路非常繁忙,每輛車都無法很快的運行
單CPU單內核,1分鐘負載值 > 1,那麼我們不用擔心,但是如果15分鐘負載都超過1,我們要趕緊看看發生了什麼事情。所以我們要根據實際情況查看這三個值。
其實top命令沒有太多要說的東西,一般都是用top命令查詢有問題的進程id,再用其他的命令深入分析。
注: mac下top命令的options
命令
top -o cpu 按 cpu 使用量排序,
top -o rsize 按內存使用量排序。