Linux系統效能分析工具 操作篇

2021-09-05 03:26:26 字數 3797 閱讀 2613

系統效能分析工具

上面的章節介紹了影響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是乙個開源軟體,官方位址為

可以選擇源**包或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系統自身的效能問題基本排除,最後要做的是檢查程式本身是否存在問題。通過這樣的思路,層層檢測,步步排查,效能問題就「無處藏身」,查詢出現效能問題的環節也就變得非常簡單。

系統效能分析工具

vmstat是virtual meomory ststistics 虛擬記憶體統計 的縮寫,很多linux發行版本都預設安裝了此命令工具,利用vmstat命令可以對作業系統的記憶體資訊 程序狀態 cpu活動等進行監控,不足之處是無法對某個程序進行深入分析。vmstat使用語法如下 vmstat v ...

dstat系統效能分析工具

dstat 是乙個新的效能工具,它吸收了 vmstat iostat ifstat 等幾種工具的優點,可以同時觀察系統的 cpu 磁碟 i o 網路以及記憶體使用情況。在工作中,有時候需要同時檢視cpu的使用情況和磁碟io的情況,會用到此命令 同時觀察 cpu 和 i o 的使用情況 間隔1秒輸出1...

Linux系統效能分析

b linux中需要監控的資源主要有 cpu 主存 記憶體 硬碟空間 i o時間 網路時間 應用程式等。b b 影響系統效能的主要因素有 b table 因素 說明 使用者態cpu cpu在使用者態執行使用者程式所花費的時間,包括庫呼叫,但是不包括核心花費的時間。核心態cpu cpu在核心態執行系統...