Linux sar命令詳解之分析系統性能案例
sar 命令很強大,是分析系統性能的重要工具之一,通過該命令可以全面地獲取系統的 CPU、運行隊列、磁盤讀寫(I/O)、分區(交換區)、內存、CPU 中斷和網絡等性能數據。
sar 命令的基本格式如下:
[root@localhost ~]# sar [options] [-o filename] interval [count]
此命令格式中,各個參數的含義如下:
- -o filename:其中,filename 為文件名,此選項表示將命令結果以二進制格式存放在文件中;
- interval:表示采樣間隔時間,該參數必須手動設置;
- count:表示采樣次數,是可選參數,其默認值為 1;
- options:為命令行選項,由於 sar 命令提供的選項很多,這裡不再一一介紹,僅列舉出常用的一些選項及對應的功能,如表 1 所示。
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.11 0.00 2.77 3.11 0.00 82.01 06:18:29 AM all 6.55 0.00 2.07 0.00 0.00 91.38 06:18:32 AM all 6.60 0.00 2.08 0.00 0.00 91.32 06:18:35 AM all 10.21 0.00 1.76 0.00 0.00 88.03 06:18:38 AM all 8.71 0.00 1.74 0.00 0.00 89.55 Average: all 8.83 0.00 2.09 0.63 0.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 tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:36:55 AM dev8-0 3.38 0.00 502.26 148.44 0.08 24.11 4.56 1.54 06:36:55 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:36:58 AM dev8-0 1.49 0.00 29.85 20.00 0.00 1.75 0.75 0.11 06:36:58 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:37:01 AM dev8-0 68.26 6.96 53982.61 790.93 3.22 47.23 3.54 24.17 06:37:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:37:04 AM dev8-0 111.69 3961.29 154.84 36.85 1.05 9.42 3.44 38.43 06:37:04 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 06:37:07 AM dev8-0 1.67 136.00 2.67 83.20 0.01 6.20 6.00 1.00 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util Average: dev8-0 34.45 781.10 9601.22 301.36 0.78 22.74 3.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命令詳解之分析系統性能案例的文章就介紹到這瞭,更多相關Linux sar命令內容請搜索GuideAH以前的文章或繼續瀏覽下面的相關文章,希望大傢以後多多支持GuideAH!
閱讀更多:
- Linux中計算特定CPU使用率案例詳解
- Linux下的如何快速安裝Hadoop
- Linux下的Java配置與tomcat配置
- linux/ubuntu系統怎麼安裝百度網盤? linux百度網盤安裝圖文教程
- Linux dd命令詳解:數據備份,並在備份過程中進行格式轉換案例