首頁  >  文章  >  系統教程  >  Linux sar指令詳解之分析系統效能案例

Linux sar指令詳解之分析系統效能案例

WBOY
WBOY轉載
2024-01-12 12:24:16840瀏覽

sar 指令很強大,是分析系統效能的重要工具之一,透過該指令可以全面地取得系統的CPU、運行佇列、磁碟讀寫(I/O)、分割區(交換區)、記憶體、CPU中斷和網路等效能數據。

sar 指令的基本格式如下:

[root@localhost ~]# sar [options] [-o filename] interval [count]

此指令格式中,各參數的意義如下:

  • -o filename:其中,filename 為檔案名,此選項表示將命令結果以二進位格式存放在檔案中;
  • interval:表示取樣間隔時間,此參數必須手動設定;
  • count:表示取樣次數,是可選參數,其預設值為 1;
  • options:為命令列選項,由於 sar 指令提供的選項很多,這裡不再一一介紹,僅列出常用的一些選項及對應的功能,如表 1 所示。

表 1 sar 命令列選項及功能
sar指令選項 功能
-A 顯示系統所有資源設備(CPU、記憶體、磁碟)的運作狀況。
-u 顯示系統所有 CPU 在採樣時間內的負載狀態。
-P 顯示目前系統中指定 CPU 的使用情況。
-d 顯示系統所有硬碟設備在採樣時間內的使用狀態。
-r 顯示系統內存在採樣時間內的使用情況。
-b 顯示緩衝區在取樣時間內的使用情況。
-v 顯示 inode 節點、檔案和其他內核表的統計資料。
-n 顯示網路運作狀態,此選項後可接DEV(顯示網路介面資訊)、EDEV(顯示網路錯誤的統計資料)、SOCK(顯示套接字資訊)和FULL(等同於使用DEV、EDEV和SOCK )等,有關更多的選項,可透過執行man sar 指令查看。
-q 顯示運行清單中的進程數、進程大小、系統平均負載等。
-R 顯示進程在採樣時的活動情況。
-y 顯示終端設備在採樣時間的活動情況。
-w 顯示系統交換活動在取樣時間內的狀態。

有關 sar 指令更多可用的選項及功能,可透過執行 man sar 指令查看。

【例 1】
如果想要查看系統 CPU 的整理負載狀況,每 3 秒統計一次,統計 5 次,可以執行以下指令:

[root@localhost ~]# sar -u 3 5
Linux 2.6.32-431.el6.x86_64 (localhost) 10/25/2019 _x86_64_(1 CPU)

06:18:23 AM CPU %user %nice %system %iowait%steal %idle
06:18:26 AM all 12.110.002.773.110.00 82.01
06:18:29 AM all6.550.002.070.000.00 91.38
06:18:32 AM all6.600.002.080.000.00 91.32
06:18:35 AM all 10.210.001.760.000.00 88.03
06:18:38 AM all8.710.001.740.000.00 89.55
Average:all8.830.002.090.630.00 88.46

此輸出結果中,各個列表項目的意義分別如下:

  • %user:用來表示使用者模式下消耗的 CPU 時間的比例;
  • %nice:透過 nice 改變了進程調度優先權的進程,在使用者模式下消耗的 CPU 時間的比例;
  • %system:系統模式下消耗的 CPU 時間的比例;
  • %iowait:CPU 等待磁碟 I/O 導致空閒狀態消耗的時間比例;
  • %steal:利用 Xen 等作業系統虛擬化技術,等待其它虛擬 CPU 運算所佔用的時間比例;
  • %idle:CPU 空閒時間比例。

【例 2】
如果想要查看系統磁碟的讀寫效能,可執行以下命令:

[root@localhost ~]# sar -d 3 5
Linux 2.6.32-431.el6.x86_64 (localhost) 10/25/2019 _x86_64_(1 CPU)

06:36:52 AM DEV tpsrd_sec/swr_sec/savgrq-szavgqu-sz await svctm %util
06:36:55 AMdev8-03.380.00502.26148.440.08 24.114.561.54

06:36:55 AM DEV tpsrd_sec/swr_sec/savgrq-szavgqu-sz await svctm %util
06:36:58 AMdev8-01.490.00 29.85 20.000.001.750.750.11

06:36:58 AM DEV tpsrd_sec/swr_sec/savgrq-szavgqu-sz await svctm %util
06:37:01 AMdev8-0 68.266.9653982.61790.933.22 47.233.54 24.17

06:37:01 AM DEV tpsrd_sec/swr_sec/savgrq-szavgqu-sz await svctm %util
06:37:04 AMdev8-0111.69 3961.29154.84 36.851.059.423.44 38.43

06:37:04 AM DEV tpsrd_sec/swr_sec/savgrq-szavgqu-sz await svctm %util
06:37:07 AMdev8-01.67136.002.67 83.200.016.206.001.00

Average:DEV tpsrd_sec/swr_sec/savgrq-szavgqu-sz await svctm %util
Average: dev8-0 34.45781.10 9601.22301.360.78 22.743.50 12.07

此輸出結果中,各個列表頭的意義如下:

  • tps:每秒從實體磁碟 I/O 的次數。注意,多個邏輯請求會被合併為一個 I/O 磁碟請求,一次傳輸的大小是不確定的;
  • rd_sec/s:每秒讀磁區的次數;
  • wr_sec/s:每秒寫入磁區的次數;
  • avgrq-sz:平均每次裝置 I/O 操作的資料大小(磁區);
  • avgqu-sz:磁碟請求佇列的平均長度;
  • await:從請求磁碟操作到系統完成處理,每次請求的平均消耗時間,包括請求佇列等待時間,單位是毫秒(1 秒=1000 毫秒);
  • svctm:系統處理每次請求的平均時間,不包括在請求佇列中消耗的時間;
  • %util:I/O 請求佔 CPU 的百分比,比率越大,表示越飽和。

除此之外,如果想要查看系統記憶體使用情況,可以執行sar -r 5 3指令;如果要查看網路運作狀態,可執行sar -n DEV 5 3指令,等等。有關其它參數的用法,這裡不再給出具體實例,有興趣的讀者可自行測試,觀察運行結果。

以上是Linux sar指令詳解之分析系統效能案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除