1. 程式人生 > >linux 系統性能方面的學習

linux 系統性能方面的學習

1、 load average

系統負載(system load) 是指系統CPU的繁忙的度量,即有多少程序在等待被CPU排程(程序等待佇列的長度)。

平均負載(load average) 是一段時間內系統的平均負載,時間段一般取1分鐘,5分鐘,15分鐘

1.1、檢視命令:

top命令


w命令


uptime命令


以top 命令說明

圖中說明機器vanv的1分鐘、5分鐘、15分鐘的平均負載分別是:0.08、0.12、0.16

1.2、load的數值含義

把CPU比喻成一條(單核)公路,程序任務比喻成公路上的汽車,load表示馬路的繁忙程度:

load = 0:表示公路上一輛車也沒有


load < 1:表示公路不堵車,汽車在公路上跑的遊刃有餘:


load =1:表示公路沒有額外的地方可以跑汽車


load > 1:則表示公路上已經存現堵車,汽車需要出現等待


但是如果有兩個CPU,則表示有兩條公路,此時load >1 也不代表塞車,以此類推。

1.3、load 值的留意(單核為例)

一般我會以0.7作為一個分界線

load<0.7時,系統很閒

0.7<load<1, 系統狀態可以應付

load == 1時,系統要處理不了,需要找一下原因

load > 5時,系統有嚴重的問題,會導致系統崩潰

1.4、三個load值得理解(單核)

1分鐘5分鐘15分鐘說明
load>5load<1load<1短期內繁忙,中長期空閒,是一個抖動,或者阻塞前兆
load>5   load>1load<1短期內繁忙,中期緊張,可能是一個阻塞開始
load>5load>5load>5系統正在阻塞
load<1load>1load>5短期空閒,中長期繁忙,系統可能正在好轉

1.5、多核處理器

上面說明都是以單核為例,如果我們的CPU是多核,那麼處理的能力就翻倍,因此檢視load average需要根據CPU核數來判斷

計算公式:load average < CPU個數 * CPU核數 * 0.7

CPU物理個數檢視命令:

cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

邏輯CPU個數檢視命令:

cat /proc/cpuinfo| grep "processor"| wc -l

每個物理CPU的core個數

cat /proc/cpuinfo| grep "cpu cores"| uniq

檢視是否開啟intel的超執行緒技術(HT)

如果有兩個邏輯CPU具有相同的"core id",那麼超執行緒是開啟的。可以根據以下原則,來判斷是否支援HT技術。
如果"siblings"和"cpu cores"一致,則說明不支援超執行緒,或者超執行緒未開啟。
如果"siblings"是"cpu cores"的兩倍,則說明支援超執行緒,並且超執行緒已開啟。

物理CPU與邏輯CPU的關係:

邏輯CPU的數量=物理CPU數量 *CPU cores * 2(支援並開啟HT)