linux 性能教程,Linux系统下常见性能分析工具的使用
在前面的文章中,我簡單介紹了影響linux性能的幾個方面以及如何解決這些方面的問題,但是如何才能從系統(tǒng)上發(fā)現(xiàn)是某個方面或某幾個方面出現(xiàn)問題了呢,這就需要使用linux系統(tǒng)提供的幾個常用性能分析工具,下面就具體講述這幾個常用性能分析工具的使用。
1.vmstat命令
vmstat是Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計)的縮寫,很多l(xiāng)inux發(fā)行版本都默認安裝了此命令工具,利用vmstat命令可以對操作系統(tǒng)的內(nèi)存信息、進程狀態(tài)、CPU活動等進行監(jiān)視,不足之處是無法對某個進程進行深入分析。
vmstat使用語法如下:
vmstat [-V] [-n] [delay [count]]
各個選項及參數(shù)含義如下:
l -V:表示打印出版本信息,是可選參數(shù)。
l -n:表示在周期性循環(huán)輸出時,輸出的頭部信息僅顯示一次。
l delay:表示兩次輸出之間的間隔時間。
l count:表示按照“delay”指定的時間間隔統(tǒng)計的次數(shù)。默認為1。
例如:
vmstat 3
表示每3秒鐘更新一次輸出信息,循環(huán)輸出,按ctrl+c停止輸出。
vmstat 3 5
表示每3秒更新一次輸出信息,統(tǒng)計5次后停止輸出。
2.iostat命令iostat是I/O statistics(輸入/輸出統(tǒng)計)的縮寫,主要的功能是對系統(tǒng)的磁盤I/O操作進行監(jiān)視。它的輸出主要顯示磁盤讀寫操作的統(tǒng)計信息,同時也會給出CPU使用情況。同vmstat一樣,iostat也不能對某個進程進行深入分析,僅對系統(tǒng)的整體情況進行分析。
iostat一般都不隨系統(tǒng)安裝,要使用iostat工具,需要在系統(tǒng)上安裝一個Sysstat的工具包,Sysstat是一個開源軟件,官方地址為http://pagesperso-orange.fr/sebastien.godard
可以選擇源代碼包或rpm包的方式安裝,這里不在講述安裝過程,安裝完畢,系統(tǒng)會多出3個命令:iostat、sar和mpstat。然后就可以直接在系統(tǒng)下運行iostat命令了。
iostat使用語法如下:
iostat [ -c | -d ] [ -k ] [ -t ] [ -x [ device ] ] [ interval [ count ] ]
各個選項及參數(shù)含義如下:
-c:顯示CPU的使用情況。
-d:顯示磁盤的使用情況。
-k:每秒以k bytes為單位顯示數(shù)據(jù)。
-t:打印出統(tǒng)計信息開始執(zhí)行的時間。
-x device:指定要統(tǒng)計的磁盤設備名稱,默認為所有的磁盤設備。
interval:指定兩次統(tǒng)計間隔的時間;
count:按照“interval”指定的時間間隔統(tǒng)計的次數(shù)。
3.sar命令sar命令很強大,是分析系統(tǒng)性能的重要工具之一,通過sar指令,可以全面的獲取系統(tǒng)的CPU、運行隊列、磁盤I/O、分頁(交換區(qū))、內(nèi)存、CPU中斷、網(wǎng)絡等性能數(shù)據(jù)。
sar使用格式為:
sar [options] [g1]? [-o filename] [interval [count] ]
各個選項及參數(shù)含義如下:
l options 為命令行選項,sar命令的選項很多,下面只列出常用選項:
? -A:顯示系統(tǒng)所有資源設備(CPU、內(nèi)存、磁盤)的運行狀況。
? -u:顯示系統(tǒng)所有CPU在采樣時間內(nèi)的負載狀態(tài)。
? -P:顯示當前系統(tǒng)中指定CPU的使用情況。
? -d:顯示系統(tǒng)所有硬盤設備在采樣時間內(nèi)的使用狀況。
? -r:顯示系統(tǒng)內(nèi)存在采樣時間內(nèi)的使用狀況。
? -b:顯示緩沖區(qū)在采樣時間內(nèi)的使用情況。
? -v:顯示進程、文件、I節(jié)點和鎖表狀態(tài)。
? -n:顯示網(wǎng)絡運行狀態(tài)。參數(shù)后面可跟DEV、EDEV、SOCK和FULL。DEV顯示網(wǎng)絡接口信息,EDEV顯示網(wǎng)絡錯誤的統(tǒng)計數(shù)據(jù),SOCK顯示套接字信息,FULL顯示三個所有的信息。它們可以單獨或者一起使用。
? -q:顯示了運行隊列的大小,它與系統(tǒng)當時的平均負載相同。
? -R:顯示進程在采樣時間內(nèi)的活動情況。
? -y:顯示終端設備在采樣時間內(nèi)的活動情況。
? -w:顯示系統(tǒng)交換活動在采樣時間內(nèi)的狀態(tài)。
l -o filename:表示將命令結果以二進制格式存放在文件中,filename是文件名。
l interval:表示采樣間隔時間,是必須有的參數(shù)。
l count:表示采樣次數(shù),是可選參數(shù),默認值是1。
例如:
要查看系統(tǒng)CPU的整體負載狀況,每3秒統(tǒng)計一次,統(tǒng)計5次,可以使用以下組合:
sar –u 3 5
系統(tǒng)的CPU計數(shù)是從0開始的,如果要查看第二顆CPU的運行負載,使用下面組合:
sar –P 1 3 5
要查看系統(tǒng)磁盤的讀寫性能,使用以下組合:
sar -d 3 5
同理,查看系統(tǒng)內(nèi)存使用情況、網(wǎng)絡運行狀態(tài),可以分別使用下面命令:
sar -r 5 2
sar -n DEV 5 3
4.? 系統(tǒng)性能分析標準
性能調(diào)優(yōu)的主要目的是使系統(tǒng)能夠有效的利用各種資源,最大的發(fā)揮應用程序和系統(tǒng)之間的性能融合,使應用高效、穩(wěn)定的運行。但是,衡量系統(tǒng)資源利用率好壞的標準沒有一個嚴格的定義,針對不同的系統(tǒng)和應用也沒有一個統(tǒng)一的說法,因此,這里提供的標準其實是一個經(jīng)驗值,表15.1給出了判定系統(tǒng)資源利用狀況的一般準則:
表1給出了判定系統(tǒng)資源利用狀況的一般準則:
表1
其中:
%user:表示CPU處在用戶模式下的時間百分比。
%sys:表示CPU處在系統(tǒng)模式下的時間百分比。
%iowait:表示CPU等待輸入輸出完成時間的百分比。
swap in:即si,表示虛擬內(nèi)存的頁導入,即從SWAP DISK交換到RAM。
swap out:即so,表示虛擬內(nèi)存的頁導出,即從RAM交換到SWAP DISK。
5.?說在最后
以上我們講解了三個常用的系統(tǒng)性能分析工具,其實linux下性能分析工具還有很多,例如uptime可以檢查CPU的平均負載,free可以查看系統(tǒng)內(nèi)存的使用狀況,ps、top可以配合監(jiān)控系統(tǒng)的進程運行狀態(tài),netstat可以監(jiān)測網(wǎng)絡流量狀況等等,這些命令的使用方法在我前面文章已經(jīng)講述很多,故不在這里講解。
系統(tǒng)性能優(yōu)化是個涉及面廣、繁瑣、長久的工作,尋找出現(xiàn)性能問題的根源往往是最難的部分,一旦找到出現(xiàn)問題的原因,性能問題也就迎刃而解。因此,解決問題的思路變得非常重要。
例如,linux系統(tǒng)下的一個網(wǎng)站系統(tǒng),用戶反映,網(wǎng)站訪問速度很慢,有時無法訪問。
針對這個問題,第一步要做的是檢測網(wǎng)絡,可以通過ping命令檢查網(wǎng)站的域名解析是否正常,同時,ping服務器地址的延時是否過大等等,通過這種方式,首先排除網(wǎng)絡可能出現(xiàn)的問題;如果網(wǎng)絡沒有問題,接著進入第二步,對linux系統(tǒng)的內(nèi)存使用狀況進行檢查,因為網(wǎng)站響應速度慢,一般跟內(nèi)存關聯(lián)比較大,通過free、vmstat等命令判斷內(nèi)存資源是否緊缺,如果內(nèi)存資源不存在問題,進入第三步,檢查系統(tǒng)CPU的負載狀況,可以通過sar、vmstat、top等命令的輸出綜合判斷CPU是否存在過載問題,如果CPU沒有問題,繼續(xù)進入第四步,檢查系統(tǒng)的磁盤I/O是否存在瓶頸,可以通過iostat、vmstat等命令檢查磁盤的讀寫性能,如果磁盤讀寫也沒有問題,linux系統(tǒng)自身的性能問題基本排除,最后要做的是檢查程序本身是否存在問題。通過這樣的思路,層層檢測,步步排查,性能問題就“無處藏身”,查找出現(xiàn)性能問題的環(huán)節(jié)也就變得非常簡單。
來源:oschina
鏈接:https://my.oschina.net/u/47255/blog/36901
總結
以上是生活随笔為你收集整理的linux 性能教程,Linux系统下常见性能分析工具的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存条大PK:32GB vs 16GB,
- 下一篇: linux测量某个ip的网速,linux