之前長用sar來采集網絡流量和cpu負載信息, 后面發現sar還有更豐富的功能,磁盤io, 內存,文件讀取都可以通過sar工具監控采集
一. 內存采集
(1)內存利用率
sar -r可以用來采集內存的使用情況
[root@VM-0-9-centos ~]# sar -r 2 2
Linux 5.4.119-19-0008 (VM-0-9-centos) 06/07/2024 (1 CPU)
03:17:09 PM kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
03:17:11 PM 445016 1074164 1320484 74.79 143172 702804 1206140 68.32 864464 299700 180
03:17:13 PM 444512 1073672 1320988 74.82 143184 702808 1207912 68.42 864480 299700 152
Average: 444764 1073918 1320736 74.81 143178 702806 1207026 68.37 864472 299700 166
字段說明
- kbmemfree:可用的空閑內存大小
- kbmemused:已使用的內存大小(不包含內核使用的內存)
- %memused:已使用內存的百分數
- kbbuffers :內核緩沖區(buffer)使用的內存大小
- kbcached :內核高速緩存(cache)數據使用的內存大小
- kbswpfree :可用的空閑交換空間大小
- kbswpused:已使用的交換空間大小
- %swpused:已使用交換空間的百分數
- kbswpcad :交換空間的高速緩存使用的內存大小
- kbcommit 保證當前系統正常運行所需要的最小內存,即為了確保內存不溢出而需要的最少內存(物理內存+Swap分區)
- commit 這個值是kbcommit與內存總量(物理內存+swap分區)的一個百分比的值
(2)swap交換分區
對于swap分區來說,就可以使用sar -S。如果想要看交換分區的使用情況(非容量情況),就要切換到sar -W命令。
[root@VM-0-9-centos ~]# sar -W 2 2
03:22:44 PM pswpin/s pswpout/s
03:22:46 PM 0.00 0.00
03:22:48 PM 0.00 0.00
Average: 0.00 0.00
- pswpin/s 每秒從交換分區到系統的交換頁面(swap page)數量
- pswpout/s 每秒從系統交換到swap的交換頁面(swap page)的數量
注:測試設備沒有開啟swap, 看到的swap統計都是0
(3)監控內存分頁信息, 主要是使用sar -B命令
[root@VM-0-9-centos ~]# sar -B 2 2
Linux 5.4.119-19-0008 (VM-0-9-centos) 06/07/2024 (1 CPU)
03:28:27 PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
03:28:29 PM 0.00 214.00 1178.00 0.00 508.00 0.00 0.00 0.00 0.00
03:28:31 PM 0.00 0.00 8.00 0.00 0.50 0.00 0.00 0.00 0.00
Average: 0.00 107.00 593.00 0.00 254.25 0.00 0.00 0.00 0.00
二. 磁盤io等監控
(1)查看I/O和傳遞速率的統計信息 sar -b
[root@VM-0-9-centos ~]# sar -b 2 2
Linux 5.4.119-19-0008 (VM-0-9-centos) 06/07/2024 (1 CPU)
03:47:46 PM tps rtps wtps bread/s bwrtn/s
03:47:48 PM 14.00 0.00 14.00 0.00 336.00
03:47:50 PM 0.00 0.00 0.00 0.00 0.00
Average: 7.00 0.00 7.00 0.00 168.00
字段說明
- tps 磁盤每秒鐘的IO總數,等于iostat中的tps
- rtps 每秒鐘從磁盤讀取的IO總數
- wtps 每秒鐘從寫入到磁盤的IO總數
- bread/s 每秒鐘從磁盤讀取的塊總數
- bwrtn/s 每秒鐘寫入到磁盤的塊總數
(2)磁盤使用情況 sar -d, 這個命令和iostat -x作用是
[root@VM-0-9-centos ~]# sar -d 2 2
Linux 5.4.119-19-0008 (VM-0-9-centos) 06/07/2024 (1 CPU)
03:50:09 PM DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
03:50:11 PM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:50:11 PM dev253-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:50:11 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:50:11 PM DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
03:50:13 PM dev253-0 1.00 0.00 22.00 22.00 0.00 4.50 6.00 0.60
03:50:13 PM dev253-16 3.50 0.00 28.00 8.00 0.00 0.86 1.14 0.40
03:50:13 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
Average: dev253-0 0.50 0.00 11.00 22.00 0.00 4.50 6.00 0.30
Average: dev253-16 1.75 0.00 14.00 8.00 0.00 0.86 1.14 0.20
Average: dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
字段說明
- DEV 磁盤設備的名稱,如果不加-p,會顯示dev253-0類似的設備名稱,因此加上-p顯示的名稱更直接
- tps:每秒I/O的傳輸總數
- rd_sec/s 每秒讀取的扇區的總數
- wr_sec/s 每秒寫入的扇區的 總數
- avgrq-sz 平均每次次磁盤I/O操作的數據大小(扇區)
- avgqu-sz 磁盤請求隊列的平均長度
- await 從請求磁盤操作到系統完成處理,每次請求的平均消耗時間,包括請求隊列等待時間,單位是毫秒(1秒等于1000毫秒),等于尋道時間+隊列時間+服務時間
- svctm I/O的服務處理時間,即不包括請求隊列中的時間
- %util I/O請求占用的CPU百分比,值越高,說明I/O越慢
(3) 文件使用詳情統計 sar -v
[root@VM-0-9-centos ~]# sar -v 2 2
Linux 5.4.119-19-0008 (VM-0-9-centos) 06/07/2024 (1 CPU)
03:51:58 PM dentunusd file-nr inode-nr pty-nr
03:52:00 PM 21018 1152 27519 1
03:52:02 PM 21022 1184 27523 1
Average: 21020 1168 27521 1
字段說明
- dentunusd 在緩沖目錄條目中沒有使用的條目數量
- file-nr 被系統使用的文件句柄數量
- inode-nr 已經使用的索引數量
- pty-nr 使用的pty數量