歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

小技巧:學會使用Linux性能分析工具

  Linux在具有高穩定性、可靠性的同時,具有很好的可伸縮性和擴展性,能夠針對不同的應用和硬件環境調整,優化出滿足當前應用需要的最佳性能。因此企業在維護Linux系統、進行系統調優時,了解系統性能分析工具是至關重要的。    在Linux下有很多系統性能分析工具,比較常見的有top、free、ps、time、timex、uptime等。下文將介紹幾個較為重要的性能分析工具vmstat、iostat和sar及其使用。    用vmstat監視內存使用情況  vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。    vmstat的語法如下:    vmstat [V] [n] [delay [count]]    其中,-V表示打印出版本信息;-n表示在周期性循環輸出時,輸出的頭部信息僅顯示一次;delay是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。對於vmstat輸出各字段的含義,可運行man vmstat查看。    用iostat監視I/O子系統情況  iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁盤操作活動進行監視。它的特點是匯報磁盤活動統計情況,同時也會匯報出CPU使用情況。同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。    iostat的語法如下:  iostat [ c d ] [ k ] [ t ] [ V ] [ x [ device ] ] [ interval [ count ] ]    其中,c為匯報CPU的使用情況;d為匯報磁盤的使用情況;k表示每秒按kilobytes字節顯示數據;t為打印匯報的時間;v表示打印出版本信息和用法;x device指定要統計的設備名稱,默認為所有的設備;interval指每次統計間隔的時間;count指按照這個時間間隔統計的次數。    iostat一般的輸出格式如下:  Linux 2.4.1818smp (builder.linux.com) 2003年03月07日    avgcpu: %user %nice %sys %idle  4.81 0.01 1.03 94.15    Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn  dev30 30.31 1117.68 846.52 16104536 12197374  dev31 7.06 229.61 40.40 3308486 582080    對於輸出中各字段的含義,iostat的幫助中有詳細的說明。    使用sar進行綜合分析    表1 sar參數說明  選項 功能    A 匯總所有的報告    a 報告文件讀寫使用情況    B 報告附加的緩存的使用情況    b 報告緩存的使用情況    c 報告系統調用的使用情況    d 報告磁盤的使用情況    g 報告串口的使用情況    h 報告關於buffer使用的統計數據    m 報告IPC消息隊列和信號量的使用情況    n 報告命名cache的使用情況    p 報告調頁活動的使用情況    q 報告運行隊列和交換隊列的平均長度    R 報告進程的活動情況    r 報告沒有使用的內存頁面和硬盤塊    u 報告CPU的利用率    v 報告進程、i節點、文件和鎖表狀態    w 報告系統交換活動狀況    y 報告TTY設備活動狀況    sar是System Activity Reporter(系統活動情況報告)的縮寫。顧名思義,sar工具將對系統當前的狀態進行取樣,然後通過計算數據和比例來表達系統的當前運行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣數據;取樣數據和分析的結果都可以存入文件,所需的負載很小。sar是目前Linux上最為全面的系統性能分析工具之一,可以從14個大方面對系統的活動進行報告,包括文件的讀寫情況、系統調用的使用情況、串口、CPU效率、內存使用狀況、進程活動及IPC有關的活動等,使用也是較為復雜。    sar的語法如下:  sar [option] [o file] t [n]    它的含義是每隔t秒取樣一次,共取樣n次。其中o file表示取樣結果將以二進制形式存入文件file中。    另一種語法如下:  sar [option] [s time] [e time] [i sec] [f file]    含義是表示從file文件中取出數據,如果沒有指定f file,則從標准數據文件/var/adm/sa/sadd取數據,其中dd表示當前天。另外,s time表示起始時間;e time表示停止時間;i sec表示取樣的時間間隔,如果不指定則表示取文件中所有的數據。對於具體的選項參見表1。    一般它與q和u聯合使用,以便對每個CPU的使用情況進行分析,比如運行如下命令:    sar q u 5 1    將輸出如下:  Linux 2.4.1818smp (builder.linux.com) 2003年03月07日    09時46分16? CPU %user %nice %system %idle  09時46分21? all 0.20 0.00 0.00 99.80    09時46分16? runqsz plistsz ldavg1 ldavg5  09時46分21? 0 91 0.00 0.00    Average: CPU %user %nice %system %idle  Average: all 0.20 0.00 0.00 99.80    Average: runqsz plistsz ldavg1 ldavg5  Average: 0 91 0.00 0.00    由於sar命令太復雜,只有通過熟練使用才能了解每個選項的含義,對於sar輸出中每個字段的含義運行man sar命令可以得到詳細的解釋。'




Copyright © Linux教程網 All Rights Reserved