Linux之sar命令01
sar命令简介
Linux中的sar命令是系统运行状态的统计命令,他讲指定的操作系统状态显示到标准的输出设备中,它的全称是system activity reporter,它可以从多个方面对系统的活动进行报告,包括但不限于:系统磁盘的io状况,cpu当前的效率值,内存使用的情况,进程活动以及文件读写情况等。
常用格式和参数
02
sar (命令选项)(相关参数)
-A:显示所有的报告信息;
-b:显示I/O速率;
-B:显示换页状态;
-c:显示进程创建活动;
-d:显示每个块设备的状态;
-e:设置显示报告的结束时间;
-f:从指定文件提取报告;
-i:设状态信息刷新的间隔时间;
-P:报告每个CPU的状态;
-R:显示内存状态;
-u:显示CPU利用率;
-v:显示索引节点,文件和其他内核表的状态;
-w:显示交换分区状态;
-x:显示给定进程的状态。
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
03
实际应用
“纸上得来终觉浅,绝知此事要躬行”,这里通过一系列的操作来了解这个命令:
1.查看内存和交换空间的使用率[root@localhost yeyz]# sar -r
Linux 2.6.05月20日1.el6.x86_64 (localhost.localdomain) 年月日 _x86_64_ ( CPU)
时分秒 LINUX RESTART
时分秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
时分秒 51.52 30.54
时分秒 51.54 30.54
时分秒 51.55 30.54
时分秒 51.55 30.54
时分秒 51.60 30.56
上面的结果中,kbmemfree与kbmemused字段分别显示内存的未使用与已使用空间,后面跟着的是已使用空间的百分比(%memused字段)。kbbuffers与kbcached字段分别显示缓冲区与系统全域的数据存取量,单位为KB,#commit 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
2.查看cpu资源监控,最后的两个数字代表,每10s采样一次,总共采样1次[root dba_mysql]# sar -u -o test
Linux 2.6.05月20日2.6.2.el6.x86_64 (hb30-dba-mysql-master-105月20日) // _x86_64_ ( CPU)
:: PM CPU %user %nice %system %iowait %steal %idle
:: PM all 3.70 0.01 3.56 3.50 0.00 89.22
Average: all 3.70 0.01 3.56 3.50 0.00 89.22
上面的信息每个列的描述如下:
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
3.内存分页监控sar -B 10 1 后面两个参数表示每10s采样一次,总共采样1次[root dba_mysql]# sar -B
Linux 2.6.05月20日2.6.2.el6.x86_64 (hb30-dba-mysql-master-105月20日) // _x86_64_ ( CPU)
:: PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
:: PM 35.90 51765.81 312.82 0.00 992.41 615.38 0.00 615.17 99.97
Average: 35.90 51765.81 312.82 0.00 992.41 615.38 0.00 615.17 99.97
上图中的输出结果描述如下:
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒钟产生的主缺页数.
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比
4.IO和传送速率监控
sar -b 10 3该命令表示每10s采样一次,连续采样3次,结果如下:[root dba_mysql]# sar -b
Linux 2.6.05月20日2.6.2.el6.x86_64 (hb30-dba-mysql-master-105月20日) // _x86_64_ ( CPU)
:: PM tps rtps wtps bread/s bwrtn/s
:: PM 19905.58 6.21 19899.37 138.11 195967.16
:: PM 19625.40 3.16 19622.23 101.16 192708.11
:: PM 20463.72 4.47 20459.26 142.98 203368.51
Average: 19996.72 4.61 19992.11 127.37 197328.36
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒从物理设备读入的数据量,单位为块/s
bwrtn/s:每秒向物理设备写入的数据量,单位为块/s
5.设备使用情况监控sar -d 10 3 –p[root dba_mysql]# sar -d -p
Linux 2.6.05月20日2.6.2.el6.x86_64 (hb30-dba-mysql-master-105月20日) // _x86_64_ ( CPU)
:: PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: PM sdb 6422.96 44.02 82649.74 12.87 0.37 0.06 0.05 33.58
:: PM sda 1.27 36.40 5.93 33.33 0.00 0.00 0.00 0.00
:: PM data-main 11822.65 54.18 100249.74 8.48 0.70 0.06 0.03 40.81
:: PM sdc 1719.47 10.16 17600.00 10.24 0.11 0.07 0.06 10.73
:: PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: PM sdb 6530.57 67.94 83672.19 12.82 0.37 0.06 0.05 33.66
:: PM sda 2.02 0.00 22.08 10.95 0.00 0.32 0.16 0.03
:: PM data-main 1.64 67.94 99746.07 8.30 0.72 0.06 0.03 41.25
:: PM sdc 1747.13 0.00 16072.19 9.20 0.11 0.06 0.06 10.57
:: PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: PM sdb 6149.74 111.55 78426.64 12.77 0.41 0.07 0.06 37.62
:: PM sda 0.31 0.00 4.16 13.33 0.00 1.00 1.00 0.03
:: PM data-main 11301.77 111.55 93956.30 8.32 0.74 0.07 0.04 45.05
:: PM sdc 1661.50 0.00 15531.32 9.35 0.12 0.07 0.07 11.12
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: sdb 6366.36 74.72 81562.92 12.82 0.38 0.06 0.05 34.97
Average: sda 1.19 12.08 10.67 19.06 0.00 0.26 0.18 0.02
Average: data-main 11712.04 78.09 97959.55 8.37 0.72 0.06 0.04 42.39
Average: sdc 1709.06 3.37 16396.63 9.60 0.11 0.07 0.06 10.81
该结果的说明如下:
参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev05月20日,dev05月20日
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的百分比,比率越大,说明越饱和
1. avgqu-sz 的值较低时,设备的利用率较高。
2. 当%util的值接近 1% 时,表示设备带宽已经占满
当然,除了这些,sar命令匹配的参数还有很多,就像上面的参数介绍一样,其他参数大家可以手动去试试,都会输出采样的结果。一般来讲,内存情况和磁盘IO以及cpu情况的查询比较多,重点连接这三个指标即可。