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.經常使用系統命令
vmstat、sar、iostat、netstat、free、ps、top、iftop等
2.經常使用組合方式
vmstat、sar、iostat檢測是不是CPU瓶頸
free、vmstat檢測是不是內存瓶頸
iostat檢測是不是磁盤I/O瓶頸
netstat、iftop檢測是不是網絡帶寬瓶頸
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 查看網卡流量