追蹤
NEIL's_學而時習之x不學無術~私藏IT技術經驗分享部落
關於部落格
NEIL. Cheng....寫作只是為了日後工作之備忘操作參考

本部落格文章撰寫前進邁向第五年(since 2009 ~至今)仍繼續推進分享IT學習!!About Windows/Linux Server,Virtualization


分享網誌: 由於,本人預先完成LAB後,才補上撰寫文章與截圖,若發現文圖對照說明有誤..本人將盡快校正,也請不吝指教! Thanks!

  • 174780

    累積人氣

  • 11

    今日人氣

    1

    追蹤人氣

基於Linux Base 系統效能瓶頸監控分析問題要點 by Neil

 
(1.) 使用 vmstat 指令觀察 記憶體(si,so) 及 CPU(su,sy,id,r 值 wa 值)資訊

     下指令

     
vmstat 5 10   # 間隔五秒out監控資訊.執行十次後結束

  r: 執行&等待cpu時間片的處理程序(此值應小於CPU個數,反之象徵CPU處理能力)

----------------------

 swap 欄位 si(硬碟(swap)切換到記憶體大小) so(記憶體切換到硬碟(swap)大小)


 分析: swap si ,so 長期不為0 "顯示系統記憶體短缺不足,應考慮添加記憶"

----------------------
io 欄位 bi (讀硬碟總量 kb/s) , bo(寫硬碟總量 kb/s)


分析:bi+bo 參考值<=1000 , 若大於1000 且 wa(io等待cpu%)較大(表示I/O效能有問題)

     可考慮使用Raid 0,5,6 加速 或 分散式(DFS)檔案存取加強I/O 讀寫效能

-----------------------
cpu 欄位 us (使用者處理程序所消耗之%),sy(系統核心處理程序消耗之%),id(cpu空閒%越高越好)

wa值: IO等待CPU時間%,參考值<=20%(>20%磁碟讀寫已發生瓶頸) 


分析: us+sy 應小於 80% ,大於80%(CPU表示資源不足)

 
















(2.)使用 sar 工具檢視系統資源使用狀況

    下指令

 
  sar 5 10   #間隔五秒輸出監控資訊,總計執行十次結束

    與前面介紹vmstat 數據頗有相似
 
    %user 對應 vmstat(cpu:us) , %system  
對應 vmstat(cpu:sy)

    %iowat 對應 vmstat(cpu:wa) ,%idle  對應 vmstat(cpu:id)


    sar 是使用cpu 總體狀況取平均值,底下有Average 總計前十次平均值個參數統計

    標準值分析:

    CPU: user%+sys% <70% 佳  = 85% 糟  >=90% 慘
  
    iowait  % < 20% 佳  =35% 壞  >=50% 慘 

















(3.)使用iostat  工具檢視磁碟讀取/寫入情況(需長期觀察,無一定標準值)

    觀察 blk_read/s(io讀取), blk_wrtn/s(io寫入)

    下指令

 
  iostat -c         #查看cpu使用狀況

    iostat -d 3 2     #每三秒輸出監控資訊.共執行兩次
 
















(4.) 使用free指令監控記憶體狀態

     下指令 free -m #以m為單位

  分析 total(RAM總使用量) ,used (已被使用記憶體量)

       目前可供應用程式使用量總計(1748M=free+buffers+cached) 除上 總RAM(1877M)%

       = 93% => 70% 表示記憶體資源足夠無礙 若 < 20% 記憶體資源吃緊

       PS: 目前SWAP 尚無使用到,SWAP也是需要被care 一環     

















(5.)使用uptime 觀察系統 1 min,5 min 15 min cpu 平均負載

    分析: 此三值不得 > 系統本身CPU 個數,表示CPU負載極高繁忙

    PS: 本例只有一顆CPU
















(6.) 使用netstat -i 查看網路卡傳輸狀況

     觀察參數 RX-ERR/TXERR(傳送/發送封包時發生錯誤

     觀察參數 RX-DRP/TX-DRP(傳送/發送時捨棄封包數

     觀察參數 RX-OVR/TX-OVR(因為誤差遺失多少資料包)


   上述參數平常應為0,若數量不小,將影響網路傳輸品質(頻寬不夠用/有限..問題)













 
(7.) 最後一個使用Top 指令即時監控系統程序(誰吃資源較多..等等訊息)

     下圖中: 目前使用最多為mongod #本人前篇Lab部屬的mongod

     在Top 即時監控下我們可使用 "r" 做 pid 優先權調整(renice) ,使用 "k"熱鍵 kill


     殺死吃資源某支程序(RHCE課程有提到)
 

 











結論: 

進行效能優化第一步,先搞懂系統瓶頸在哪?可能的原因才能進一步對症下藥

By Neil 2013/05/09


Lab參考文獻:

網路+Linux 伺服器加速營運14大原則/佳魁/高俊峰


相簿設定
標籤設定
相簿狀態