之前长用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数量