说明

  sar命令可以全面的获取系统的CPU、运行队列、磁盘I/O,分页(交换区)、内存、CPU终端和网络等性能数据。

格式

  sar [option] [delay时间间隔 [count次数]]

常用参数
  • -A:显示系统所有资源设备(CPU、内存、磁盘)的运行情况
  • -u:显示系统所有的CPU在采样时间内的负载情况
  • -P:显示当前系统中指定CPU的使用情况
  • -d:显示系统所有硬盘设备在采样时间内的使用状况
  • -r:显示在采样时间内内存的使用情况
  • -b:显示在采样时间内缓冲区的使用情况
  • -v:显示索引节点、文件和其他内核表的状态
  • -n:显示网络运行状态
  • -q:显示运行队列的大小,他与系统当时的平均负载相同
  • -R:显示进程在采样时间内的活动情况
  • -y:显示终端设备在采样时间内的活动情况
  • -w:显示系统交换活动在采样时间内的状态
  • -o filename:将命令结果二进制格式存放在文件中,filename是文件名
示例

1、不加任何参数

[root@localhost ~]# sar
Linux 3.10.0-693.2.2.el7.x86_64 (localhost)     06/27/2018     _x86_64_    (1 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      0.71      0.00      0.26      0.03      0.00     99.00
12:20:01 AM     all      0.73      0.00      0.25      0.03      0.00     98.99
12:30:01 AM     all      0.71      0.00      0.24      0.02      0.00     99.03
12:40:01 AM     all      0.70      0.00      0.26      0.03      0.00     99.02
12:50:01 AM     all      0.73      0.00      0.26      0.02      0.00     98.99
01:00:01 AM     all      0.70      0.00      0.24      0.02      0.00     99.04
01:10:01 AM     all      0.72      0.00      0.26      0.03      0.00     99.00
01:20:01 AM     all      0.72      0.00      0.26      0.04      0.00     98.98
01:30:01 AM     all      0.70      0.00      0.25      0.03      0.00     99.01
01:40:01 AM     all      0.70      0.00      0.24      0.03      0.00     99.03
01:50:01 AM     all      0.72      0.00      0.27      0.03      0.00     98.99
02:00:01 AM     all      0.70      0.00      0.25      0.02      0.00     99.03
02:10:01 AM     all      0.73      0.00      0.26      0.03      0.00     98.98
02:20:01 AM     all      0.71      0.00      0.25      0.10      0.00     98.94
02:30:01 AM     all      0.71      0.00      0.26      0.03      0.00     99.00
02:40:01 AM     all      0.71      0.00      0.26      0.04      0.00     98.99
02:50:01 AM     all      0.71      0.00      0.26      0.03      0.00     99.00
03:00:01 AM     all      0.73      0.00      0.25      0.07      0.00     98.95
03:10:01 AM     all      0.72      0.00      0.26      0.03      0.00     98.99
03:20:01 AM     all      0.72      0.00      0.26      0.02      0.00     99.00
03:30:01 AM     all      0.73      0.00      0.26      0.04      0.00     98.98
03:40:01 AM     all      0.74      0.00      0.26      0.04      0.00     98.97
03:50:01 AM     all      0.71      0.02      0.27      0.08      0.00     98.92
04:00:01 AM     all      0.72      0.00      0.26      0.03      0.00     98.99
04:10:01 AM     all      0.72      0.00      0.28      0.03      0.00     98.98
04:20:01 AM     all      0.72      0.00      0.26      0.02      0.00     99.00
04:30:01 AM     all      0.72      0.00      0.26      0.03      0.00     98.98
04:40:01 AM     all      0.71      0.00      0.26      0.03      0.00     99.00
04:50:01 AM     all      0.69      0.00      0.25      0.03      0.00     99.03
05:00:01 AM     all      0.71      0.00      0.25      0.02      0.00     99.01
05:10:01 AM     all      0.70      0.00      0.26      0.03      0.00     99.01
05:20:01 AM     all      0.70      0.00      0.26      0.03      0.00     99.01
05:30:01 AM     all      0.71      0.00      0.24      0.09      0.00     98.97
05:40:01 AM     all      0.71      0.00      0.25      0.02      0.00     99.01
05:50:01 AM     all      0.71      0.00      0.27      0.02      0.00     99.00
06:00:01 AM     all      0.71      0.00      0.25      0.03      0.00     99.01
06:10:01 AM     all      0.71      0.00      0.26      0.03      0.00     99.00
06:20:01 AM     all      0.70      0.00      0.28      0.03      0.00     98.99
06:30:01 AM     all      0.71      0.00      0.24      0.02      0.00     99.03
06:40:01 AM     all      0.71      0.00      0.24      0.02      0.00     99.02

06:40:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
06:50:01 AM     all      0.71      0.00      0.25      0.03      0.00     99.01
Average:        all      0.71      0.00      0.26      0.03      0.00     99.00
[root@localhost ~]#

命令结果的详细说明:

  • %user:用户进程消耗的CPU时间百分比
  • %nice:改变过优先级的进程占用的CPU时间百分比
  • %system:系统内核进程消耗CPU时间百分比
  • %iowait:IO等待所占用CPU时间百分比
  • %steal:虚拟机强制CPU等待的时间百分比
  • %idle:CPU处在空闲状态的时间百分比

2、查看系统CPU的整理负载情况

[root@localhost ~]# sar -u 2 3 #2秒统计一次,一共统计三次
Linux 3.10.0-693.2.2.el7.x86_64 (localhost)     06/27/2018     _x86_64_    (1 CPU)

07:09:22 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
07:09:24 AM     all      0.50      0.00      0.00      0.00      0.00     99.50
07:09:26 AM     all      0.50      0.00      0.00      0.00      0.00     99.50
07:09:28 AM     all      1.00      0.00      0.50      0.00      0.00     98.51
Average:        all      0.67      0.00      0.17      0.00      0.00     99.17

3、显示运行队列的大小

[root@localhost ~]# sar -q 2 2
Linux 3.10.0-693.2.2.el7.x86_64 (localhost)     06/27/2018     _x86_64_    (1 CPU)

07:11:07 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
07:11:09 AM         0       182      0.00      0.02      0.05         0
07:11:11 AM         0       182      0.00      0.02      0.05         0
Average:            0       182      0.00      0.02      0.05         0

命令结果的详细说明:

  • runq-sz:运行队列的长度
  • plist-sz:进程列表中进程和线程的数量
  • ldavg-1:最后1分钟的系统平均负载
  • ldavg-5:过去5分钟的的系统平均负载
  • ldavg-15:过去15分钟的的系统平均负载
  • blocked:当前阻塞的进程数量,为了等待I/O完成

4、显示系统内存的使用情况

[root@localhost ~]# sar -r 2 2
Linux 3.10.0-693.2.2.el7.x86_64 (localhost)     06/27/2018     _x86_64_    (1 CPU)

07:14:09 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
07:14:11 AM     66776    949388     93.43    123572    246540   1346832     43.95    452000    403592       120
07:14:13 AM     66776    949388     93.43    123576    246540   1346832     43.95    452004    403596       124
Average:        66776    949388     93.43    123574    246540   1346832     43.95    452002    403594       122

命令结果说明:

  • kbmemfree:可用的空闲内存量(单位为千字节)。
  • kbmemused:已使用内存的量(单位为千字节)。这并不考虑内核本身所使用的内存。
  • %memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比。
  • kbbuffers:用于内核缓冲区的内存量。
  • kbcached:用于内核缓存数据的内存量。
  • kbcommit:当前系统工作负载所需的内存量。即为了确保不溢出而需要的内存(RAM+swap)。
  • %commit:这个值是kbcommit与内存总量(RAM+swap)的一个百分比。这个数值也许会大于100%,因为内核经常过量使用内存。

5、显示缓冲区的使用情况

[root@localhost ~]# sar -b 2 2
Linux 3.10.0-693.2.2.el7.x86_64 (localhost)     06/27/2018     _x86_64_    (1 CPU)

07:16:29 AM       tps      rtps      wtps   bread/s   bwrtn/s
07:16:31 AM      0.00      0.00      0.00      0.00      0.00
07:16:33 AM      1.00      0.00      1.00      0.00     28.00
Average:         0.50      0.00      0.50      0.00     14.04

命令结果说明:

  • tps:每秒钟物理设备的 I/O 传输总量
  • rtps:每秒钟从物理设备读入的数据总量
  • wtps:每秒钟向物理设备写出的数据总量
  • bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
  • bwrtn/s:每秒钟向物理设备写出的数据量,单位为 块/s

6、显示网络运行状态
可能的关键字有DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, UDP6, FC.
如果你使用DEV关键字,它将报告所有网络设备的统计信息.

[root@localhost ~]# sar -n DEV 2 2 # -n DEV显示网络接口的信息
Linux 3.10.0-693.2.2.el7.x86_64 (localhost)     06/27/2018     _x86_64_    (1 CPU)

07:18:08 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
07:18:10 AM      eth0      1.50      1.50      0.10      0.65      0.00      0.00      0.00
07:18:10 AM        lo      1.50      1.50      0.09      0.09      0.00      0.00      0.00

07:18:10 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
07:18:12 AM      eth0      0.50      0.50      0.03      0.03      0.00      0.00      0.00
07:18:12 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:         eth0      1.00      1.00      0.07      0.34      0.00      0.00      0.00
Average:           lo      0.75      0.75      0.05      0.05      0.00      0.00      0.00

命令结果说明:

  • rxpck/s:每秒接收的数据包总数
  • txpck/s:每秒传输的数据包总数
  • rxkB/s:每秒接收的字节数(单位KB)
  • txkB/s:每秒传输的字节数(单位KB)
  • rxcmp/s:每秒接收的压缩包总数
  • txcmp/s:每秒传输的压缩包总数
  • rxmcst/s:每秒接收的组播数据包总数
  • %ifutil:网络接口的利用率

7、查看系统磁盘的读写性能

[root@localhost ~]# sar -d 2 2 
Linux 3.10.0-693.2.2.el7.x86_64 (localhost)     06/27/2018     _x86_64_    (1 CPU)

07:20:42 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
07:20:44 AM  dev253-0      0.50      0.00     12.00     24.00      0.00      1.00      1.00      0.05

07:20:44 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
07:20:46 AM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:     dev253-0      0.25      0.00      6.00     24.00      0.00      1.00      1.00      0.03

命令结果说明:

  • DEV:表示磁盘的设备名称
  • tps:表示设备每秒钟传输的次数
  • rd_sec/s:表示每秒从设备读取的扇区的扇区数
  • wr_sec/s:表示每秒写入设备的扇区数目
  • avgrq-sz:设备平均每次I/O操作的数据大小
  • avgqu-sz:平均I/O队列长度
  • await:设备平均每次I/O操作的等待时间
  • svctm:设备平均每次I/O操作的服务时间
  • %util:每秒钟用于I/O操作的百分比