效能測試之 作業系統效能指標觀測及分析

2021-08-30 03:28:53 字數 2206 閱讀 6281

1.

對於linux

系統來說,

free mem

很少並不一定代表記憶體不足,成為瓶頸。實際上這是由於

linux

的記憶體管理機制造成的,

linux

會把free

的記憶體(完全沒使用過的記憶體)盡可能的利用起來,作為

buffers/cached

(當有程序申請記憶體時,如果沒有

free

,會把buffers/cached

分配給程序),以提高系統的效能,尤其是在有大量

i/o的情況下,增大

buffers/cached

會很大地提高

i/o,可以提高多達

20%的

i/o效能,因此實際是

linux

的這一特性造成

free mem

幾乎沒有。當伺服器存在大量

i/o時,比較容易出現

free mem

幾乎沒有這樣的情況。

used-buffers-cached

得到的結果才是應用程式用掉的記憶體,如果這個數字已經接近或超過總的記憶體數,那麼記憶體成為瓶頸。如下圖所示:

第二行(

-/+ buffers/cache

)的used

是扣除了

buffers/cache

後的used

記憶體,這才是真正的被應用程式使用掉的記憶體(包括核心級程序和使用者級程序)。也可以通過

swap

來判斷記憶體是否是瓶頸,如果

swap

大量used

,並且頻繁的發生

swap in

和swap out

,那麼記憶體一定是瓶頸;有時用

free

會看到少量的

swap used

,這並不影響效能,記憶體不是瓶頸。ps:

buffers

和cached

的區別。兩者都是快取,都是為了提高

i/o的效能,不同的是

buffers

是塊裝置的快取,而

cached

是字元裝置的快取,簡單地說,

buffers

用來儲存目錄下面有什麼內容、什麼許可權等等,

cached

則儲存檔案的內容,例如,

ls一下,可以發現

buffers

有明顯增長(

buffers

其實一直在緩慢增長),而開啟乙個檔案後,可以發現

cached

明顯增長。

2. 現象:還沒有開始效能測試,伺服器的

load達到1

以上,cpu

使用user接近0

,sys

有些情況下也接近

0,有些情況下會達到

10%以上,用

vmstat

檢視,r

(執行佇列中的等待程序數)=0,

b(等待

i/o的程序數)

>0

原因:產生這種現象的原因很多,比如,作業系統中存在狀態為d(

uninterruptible sleep

)或狀態為z(

zombie

)的程序,這兩種程序會把系統

load

弄高(因為這兩種狀態的程序會滯留在

cpu

執行佇列中);或者系統對同乙個目錄

mount

了多次,會導致

load

公升高,sys cpu>10%

;一般都是跟

i/o相關。

判斷及解決方法:

top或者

ps afux

一下,看看程序的狀態;

df一下看看是否有重複的

mount

;vmstat

檢視一下;可以根據不同的情況採用不同的辦法來解決,由於是測試環境,最簡單有效的辦法就是

reboot

。不過有時

reboot

前也要做一些工作,比如已經

mount

了nfs

服務端上的乙個目錄,並寫入了

fstab

中,而nfs

服務端關閉了,那麼需要把

fstab

中的相應內容刪除後再

reboot

,否則reboot

後仍然會自動

mount

作業系統效能觀測工具

1.工具型別 效能觀測工具可以按照系統級別和程序級別來分類,多數的工具要麼基於計數器要麼基於跟蹤。我們把這些效能放在如下圖中,包括一些常見工具作為示例 有一些工具不止適合乙個象限,例如 top還有乙個系統級別的檢視,dtrace也有程序級別的能力。還有一些效能工具是基於剖析 profiling 的。...

系統效能指標

概念吞吐量 指在單位時間內系統處理的請求數,吞吐量是判斷乙個系統處理能力的常用指標 tps 每秒通過的事務數。事務 不是對頁面的一次操作,而是定義的乙個行為。eg 事務開始 登入 url 登入 事務結束 登入成功 概念指系統對請求作出響應的時間,現實中不同功能響應時間不盡相同,甚至同一功能在不同輸入...

通訊系統效能指標

1 資料傳輸速率 越高有效性越好 單位時間傳送的資料量 2 吞吐量 throughout 單位時間內通訊系統接收傳送的位元數,位元組數或幀數 3 頻帶利用率 單位頻帶內的傳輸速度,單位為 bit s hz,即每赫茲寬頻所能實現的位元率 4 協議效率 指所傳輸的資料報中,有效資料位與整個資料報長度的比...