歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於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次後停止輸出。

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

15.2.3系統性能分析標准

性能調優的主要目的是使系統能夠有效的利用各種資源,最大的發揮應用程序和系統之間的性能融合,使應用高效、穩定的運行。但是,衡量系統資源利用率好壞的標准沒有一個嚴格的定義,針對不同的系統和應用也沒有一個統一的說法,因此,這裡提供的標准其實是一個經驗值,表15.1給出了判定系統資源利用狀況的一般准則:

表15.1給出了判定系統資源利用狀況的一般准則:

表15.1

 

影響性能因素 評判標准

好 壞 糟糕

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。

15.2.4本節總結

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

系統性能優化是個涉及面廣、繁瑣、長久的工作,尋找出現性能問題的根源往往是最難的部分,一旦找到出現問題的原因,性能問題也就迎刃而解。因此,解決問題的思路變得非常重要。

例如,linux系統下的一個網站系統,用戶反映,網站訪問速度很慢,有時無法訪問。

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

本文出自 “技術成就夢想” 博客,請務必保留此出處http://ixdba.blog.51cto.com/2895551/526070

Copyright © Linux教程網 All Rights Reserved