Linux系統下常見性能分析工具的使用

在前面的文章中,我簡單介紹了影響linux性能的幾個方面以及如何解決這些方面的問題,可是如何才能從系統上發現是某個方面或某幾個方面出現問題了呢,這就須要使用linux系統提供的幾個經常使用性能分析工具,下面就具體講述這幾個經常使用性能分析工具的使用。
 linux

1.vmstat命令
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,不少linux發行版本都默認安裝了此命令工具,利用vmstat命令能夠對操做系統的內存信息、進程狀態、CPU活動等進行監視,不足之處是沒法對某個進程進行深刻分析。
vmstat使用語法以下:
vmstat [-V] [-n] [delay [count]]
各個選項及參數含義以下:
l -V:表示打印出版本信息,是可選參數。
l -n:表示在週期性循環輸出時,輸出的頭部信息僅顯示一次。
l delay:表示兩次輸出之間的間隔時間。
l count:表示按照「delay」指定的時間間隔統計的次數。默認爲1。
例如:
vmstat 3
      表示每3秒鐘更新一次輸出信息,循環輸出,按ctrl+c中止輸出。
vmstat 3 5
表示每3秒更新一次輸出信息,統計5次後中止輸出。
 ios

2.iostat命令
iostat是I/O statistics(輸入/輸出統計)的縮寫,主要的功能是對系統的磁盤I/O操做進行監視。它的輸出主要顯示磁盤讀寫操做的統計信息,同時也會給出CPU使用狀況。同vmstat同樣,iostat也不能對某個進程進行深刻分析,僅對系統的總體狀況進行分析。
iostat通常都不隨系統安裝,要使用iostat工具,須要在系統上安裝一個Sysstat的工具包,Sysstat是一個開源軟件,官方地址爲http://pagesperso-orange.fr/sebastien.godard
能夠選擇源代碼包或rpm包的方式安裝,這裏不在講述安裝過程,安裝完畢,系統會多出3個命令:iostat、sar和mpstat。而後就能夠直接在系統下運行iostat命令了。
iostat使用語法以下:
iostat [ -c | -d ] [ -k ] [ -t ] [ -x [ device ] ] [ interval [ count ] ]
各個選項及參數含義以下:
      -c:顯示CPU的使用狀況。
      -d:顯示磁盤的使用狀況。
      -k:每秒以k bytes爲單位顯示數據。
      -t:打印出統計信息開始執行的時間。
      -x device:指定要統計的磁盤設備名稱,默認爲全部的磁盤設備。
      interval:指定兩次統計間隔的時間;
      count:按照「interval」指定的時間間隔統計的次數。
 性能優化

3.sar命令
sar命令很強大,是分析系統性能的重要工具之一,經過sar指令,能夠全面的獲取系統的CPU、運行隊列、磁盤I/O、分頁(交換區)、內存、CPU中斷、網絡等性能數據。
sar使用格式爲:
sar [options] [g1]  [-o filename] [interval [count] ]
各個選項及參數含義以下:
l options 爲命令行選項,sar命令的選項不少,下面只列出經常使用選項:
Ø -A:顯示系統全部資源設備(CPU、內存、磁盤)的運行情況。
Ø -u:顯示系統全部CPU在採樣時間內的負載狀態。
Ø -P:顯示當前系統中指定CPU的使用狀況。
Ø -d:顯示系統全部硬盤設備在採樣時間內的使用情況。
Ø -r:顯示系統內存在採樣時間內的使用情況。
Ø -b:顯示緩衝區在採樣時間內的使用狀況。
Ø -v:顯示進程、文件、I節點和鎖表狀態。
Ø -n:顯示網絡運行狀態。參數後面可跟DEV、EDEV、SOCK和FULL。DEV顯示網絡接口信息,EDEV顯示網絡錯誤的統計數據,SOCK顯示套接字信息,FULL顯示三個全部的信息。它們能夠單獨或者一塊兒使用。
Ø -q:顯示了運行隊列的大小,它與系統當時的平均負載相同。
Ø -R:顯示進程在採樣時間內的活動狀況。
Ø -y:顯示終端設備在採樣時間內的活動狀況。
Ø -w:顯示系統交換活動在採樣時間內的狀態。
l -o filename:表示將命令結果以二進制格式存放在文件中,filename是文件名。
l interval:表示採樣間隔時間,是必須有的參數。
l count:表示採樣次數,是可選參數,默認值是1。
 服務器

例如:
      要查看系統CPU的總體負載情況,每3秒統計一次,統計5次,可使用如下組合:
      sar –u 3 5
      系統的CPU計數是從0開始的,若是要查看第二顆CPU的運行負載,使用下面組合:
sar –P 1 3 5
要查看系統磁盤的讀寫性能,使用如下組合:
      sar -d 3 5
      同理,查看系統內存使用狀況、網絡運行狀態,能夠分別使用下面命令:
      sar -r 5 2
      sar -n DEV 5 3網絡


4.  系統性能分析標準工具


性能調優的主要目的是使系統可以有效的利用各類資源,最大的發揮應用程序和系統之間的性能融合,使應用高效、穩定的運行。可是,衡量系統資源利用率好壞的標準沒有一個嚴格的定義,針對不一樣的系統和應用也沒有一個統一的說法,所以,這裏提供的標準實際上是一個經驗值,表15.1給出了斷定系統資源利用情況的通常準則:
 表1給出了斷定系統資源利用情況的通常準則:性能


表1優化

其中:
      %user:表示CPU處在用戶模式下的時間百分比。
      %sys:表示CPU處在系統模式下的時間百分比。
      %iowait:表示CPU等待輸入輸出完成時間的百分比。
      swap in:即si,表示虛擬內存的頁導入,即從SWAP DISK交換到RAM。
      swap out:即so,表示虛擬內存的頁導出,即從RAM交換到SWAP DISK。
 網站

5. 說在最後
      以上咱們講解了三個經常使用的系統性能分析工具,其實linux下性能分析工具還有不少,例如uptime能夠檢查CPU的平均負載,free能夠查看系統內存的使用情況,ps、top能夠配合監控系統的進程運行狀態,netstat能夠監測網絡流量情況等等,這些命令的使用方法在我前面文章已經講述不少,故不在這裏講解。
 spa

      系統性能優化是個涉及面廣、繁瑣、長久的工做,尋找出現性能問題的根源每每是最難的部分,一旦找到出現問題的緣由,性能問題也就迎刃而解。所以,解決問題的思路變得很是重要。
 

      例如,linux系統下的一個網站系統,用戶反映,網站訪問速度很慢,有時沒法訪問。       針對這個問題,第一步要作的是檢測網絡,能夠經過ping命令檢查網站的域名解析是否正常,同時,ping服務器地址的延時是否過大等等,經過這種方式,首先排除網絡可能出現的問題;若是網絡沒有問題,接着進入第二步,對linux系統的內存使用情況進行檢查,由於網站響應速度慢,通常跟內存關聯比較大,經過free、vmstat等命令判斷內存資源是否緊缺,若是內存資源不存在問題,進入第三步,檢查系統CPU的負載情況,能夠經過sar、vmstat、top等命令的輸出綜合判斷CPU是否存在過載問題,若是CPU沒有問題,繼續進入第四步,檢查系統的磁盤I/O是否存在瓶頸,能夠經過iostat、vmstat等命令檢查磁盤的讀寫性能,若是磁盤讀寫也沒有問題,linux系統自身的性能問題基本排除,最後要作的是檢查程序自己是否存在問題。經過這樣的思路,層層檢測,步步排查,性能問題就「無處藏身」,查找出現性能問題的環節也就變得很是簡單。

相關文章
相關標籤/搜索