系統性能分析評估

1,系統性能評估標準node

影響性能因素linux

評判標準ios

 

web

算法

糟糕緩存

CPU網絡

user% + sys%< 70%工具

user% + sys%= 85%性能

user% + sys% >=90%優化

內存

Swap In(si)=0

Swap Out(so)=0

Per CPU with 10 page/s

More Swap In & Swap Out

磁盤

iowait % < 20%

iowait % =35%

iowait % >= 50%

其中:

%user:表示CPU處在用戶模式下的時間百分比。

%sys:表示CPU處在系統模式下的時間百分比。

%iowait:表示CPU等待輸入輸出完成時間的百分比。

swap in:即si,表示虛擬內存的頁導入,即從SWAP DISK交換到RAM

swap out:即so,表示虛擬內存的頁導出,即從RAM交換到SWAP DISK。

 

2,系統性能分析工具

1.經常使用系統命令

vmstatsariostatnetstatfreepstopiftop等

2.經常使用組合方式

vmstat、sar、iostat檢測是不是CPU瓶頸

free、vmstat檢測是不是內存瓶頸

iostat檢測是不是磁盤I/O瓶頸

netstatiftop檢測是不是網絡帶寬瓶頸

 

3,系統性能評估

1) 系統總體性能評估(uptime命令)

[root@web1 ~]# uptime

16:38:00 up 118 days,  3:01,  5 users,  load average: 1.22, 1.02, 0.91

這裏須要注意的是:load average這個輸出值,這三個值的大小通常不能大於系統CPU的個數,例如,本輸出中系統有8個CPU,若是load average的三個值長期大於8時,說明CPU很繁忙,負載很高,可能會影響系統性能,可是偶爾大於8時,倒不用擔憂,通常不會影響系統性能。相反,若是load average的輸出值小於CPU的個數,則表示CPU還有空閒的時間片,好比本例中的輸出,CPU是很是空閒的。

2) CPU性能評估

1) 利用vmstat命令監控系統CPU

該命令能夠顯示關於系統各類資源之間相關性能的簡要信息,這裏咱們主要用它來看CPU一個負載狀況。

下面是vmstat命令在某個系統的輸出結果:

 

r列表示運行和等待cpu時間片的進程數,這個值若是長期大於系統CPU的個數,說明CPU不足,須要增長CPU。

b列表示在等待資源的進程數,好比正在等待I/O、或者內存交換等。

us列顯示了用戶進程消耗的CPU 時間百分比。us的值比較高時,說明用戶進程消耗的cpu時間多,可是若是長期大於50%,就須要考慮優化程序或算法。

sy列顯示了內核進程消耗的CPU時間百分比。Sy的值較高時,說明內核消耗的CPU資源不少。

根據經驗,us+sy的參考值爲80%,若是us+sy大於 80%說明可能存在CPU資源不足。

3) 內存性能評估

1) 利用free指令監控內存

free是監控linux內存使用情況最經常使用的指令,看下面的一個輸出:

通常有這樣一個經驗公式:應用程序可用內存/系統物理內存>70%時,表示系統內存資源很是充足,不影響系統性能,應用程序可用內存/系統物理內存<20%時,表示系統內存資源緊缺,須要增長系統內存,20%<應用程序可用內存/系統物理內存<70%時,表示系統內存資源基本能知足應用需求,暫時不影響系統性能。

2) 利用vmstat命令監控內存

swpd列表示切換到內存交換區的內存數量(以k爲單位)。若是swpd的值不爲0,或者比較大,只要si、so的值長期爲0,這種狀況下通常不用擔憂,不會影響系統性能。

free列表示當前空閒的物理內存數量(以k爲單位)

buff列表示buffers cache的內存數量,通常對塊設備的讀寫才須要緩衝。

cache列表示page cached的內存數量,通常做爲文件系統cached,頻繁訪問的文件都會被cached,若是cache值較大,說明cached的文件數較多,若是此時IO中bi比較小,說明文件系統效率比較好。

si列表示由磁盤調入內存,也就是內存進入內存交換區的數量。

so列表示由內存調入磁盤,也就是內存交換區進入內存的數量。

通常狀況下,si、so的值都爲0,若是si、so的值長期不爲0,則表示系統內存不足。須要增長系統內存。

4) 磁盤I/O性能評估

1) 磁盤存儲基礎

熟悉RAID存儲方式,能夠根據應用的不一樣,選擇不一樣的RAID方式。

儘量用內存的讀寫代替直接磁盤I/O,使頻繁訪問的文件或數據放入內存中進行操做處理,由於內存讀寫操做比直接磁盤讀寫的效率要高千倍。

將常常進行讀寫的文件與長期不變的文件獨立出來,分別放置到不一樣的磁盤設備上。

對於寫操做頻繁的數據,能夠考慮使用裸設備代替文件系統。

使用裸設備的優勢有:

數據能夠直接讀寫,不須要通過操做系統級的緩存,節省了內存資源,避免了內存資源爭用。

避免了文件系統級的維護開銷,好比文件系統須要維護超級塊、I-node等。

避免了操做系統的cache預讀功能,減小了I/O請求。

使用裸設備的缺點是:

數據管理、空間管理不靈活,須要很專業的人來操做。

2) 利用iostat評估磁盤性能

對上面每項的輸出解釋以下:

Blk_read/s表示每秒讀取的數據塊數。

Blk_wrtn/s表示每秒寫入的數據塊數。

Blk_read表示讀取的全部塊數。

Blk_wrtn表示寫入的全部塊數。

能夠經過Blk_read/s和Blk_wrtn/s的值對磁盤的讀寫性能有一個基本的瞭解,若是Blk_wrtn/s值很大,表示磁盤的寫操做很頻繁,能夠考慮優化磁盤或者優化程序,若是Blk_read/s值很大,表示磁盤直接讀取操做不少,能夠將讀取的數據放入內存中進行操做。

對於這兩個選項的值沒有一個固定的大小,根據系統應用的不一樣,會有不一樣的值,可是有一個規則仍是能夠遵循的:長期的、超大的數據讀寫,確定是不正常的,這種狀況必定會影響系統性能。

5) 網絡性能評估

1) 經過ping命令檢測網絡的連通性

2) 經過netstat –i組合檢測網絡接口情況

3) 經過netstat –r組合檢測系統的路由表信息

4) 經過sar -n組合顯示系統的網絡運行狀態

5) 經過iftop -i eth0 查看網卡流量

相關文章
相關標籤/搜索