功能说明:
通过sar命令,可以全面地获取系统的CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断和网络等性能数据。
语法格式
sar option interval count
sar 选项 时间间隔 次数
说明:
1)在sar命令及后面的选项里,每个元素之间都至少要有一个空格。
2)interval表示两次输出之间的间隔时间。
3)count表示按照interval指定的时间间隔统计的次数。
【选项说明】
查看系统CPU的整体负载状况。
-A 显示系统所有资源设备(CPU、内存、磁盘)的运行状况
-u 显示系统所有CPU在采样时间内的负载状态
-P 显示当前系统中指定CPU的使用情况
-d 显示系统所有硬盘设备在采样时间内的使用状况
-r 显示在采样时间内系统内存的使用状况
-b 显示在采样时间内缓冲区的使用情况
-v 显示索引节点、文件和其他内核表的状态
-n 显示网络运行状态
-q 显示运行队列的大小,它与系统当时的平均负载相同
-R 显示进程在采样时间内的活动情况
-y 显示终端设备在采样时间内的活动情况
-w 显示系统交换活动在采样时间内的状态
-o filename 将命令结果以二进制格式存放在文件中,filename是文件名
使用范例
查看系统CPU的整体负载状况
[root@lewen ~]# sar -u 2 3 Linux 3.10.0-957.el7.x86_64 (lewen) 2019年03月17日 _x86_64_ (1 CPU) 16时09分16秒 CPU %user %nice %system %iowait %steal %idle 16时09分18秒 all 0.00 0.00 0.50 0.00 0.00 99.50 16时09分20秒 all 0.00 0.00 0.00 0.00 0.00 100.00 16时09分22秒 all 0.50 0.00 0.50 0.00 0.00 99.00 平均时间: all 0.17 0.00 0.33 0.00 0.00 99.50 %user:用户进程消耗的CPU时间百分比。 %nice:改变过优先级的进程占用的CPU时间百分比。 %system:系统(内核)进程消耗的CPU时间百分比。 %iowait:IO等待所占用的CPU时间百分比。 %steal:虚拟机强制CPU等待的时间百分比。 %idle:CPU处在空闲状态的时间百分比。
显示运行队列的大小
[root@lewen ~]# sar -q 2 3 Linux 3.10.0-957.el7.x86_64 (lewen) 2019年03月17日 _x86_64_ (1 CPU) 16时25分06秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 16时25分08秒 0 316 0.00 0.01 0.05 0 16时25分10秒 0 316 0.00 0.01 0.05 0 16时25分12秒 0 316 0.00 0.01 0.05 0 平均时间: 0 316 0.00 0.01 0.05 0 runq-sz:运行队列的长度(等待运行的进程数)。 plist-sz:进程列表中进程(process)和线程(thread)的数量。 ldavg-1:最后1分钟的系统平均负载(system load average)。 ldavg-5:过去5分钟的系统平均负载。 ldavg-15:过去15分钟的系统平均负载。
显示系统内存的使用状况
[root@lewen ~]# sar -r 2 3 Linux 3.10.0-957.el7.x86_64 (lewen) 2019年03月17日 _x86_64_ (1 CPU) 16时29分54秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 16时29分56秒 2794180 1232168 30.60 2108 643944 2014348 28.09 672264 297744 8 16时29分58秒 2794180 1232168 30.60 2108 643944 2014348 28.09 672268 297744 8 16时30分00秒 2794180 1232168 30.60 2108 643944 2014348 28.09 672268 297744 8 平均时间: 2794180 1232168 30.60 2108 643944 2014348 28.09 672267 297744 8 以下是命令结果的详细说明。 kbmemfree:空闲物理内存量。 kbmemused:使用中的物理内存量。 %memused:物理内存量的使用率。 kbbuffers:内核中作为缓冲区使用的物理内存容量。 kbcached:内核中作为缓存使用的物理内存容量。 kbcommit:应用程序当前使用的内存大小。 %commit:应用程序当前使用的内存大小占总大小的使用百分比。
显示缓冲区的使用情况
[root@doit ~]# sar -b 2 3 Linux 4.20.0-1.el7.elrepo.x86_64 (doit) 03/17/2019 _x86_64_ (2 CPU) 04:33:47 PM tps rtps wtps bread/s bwrtn/s 04:33:49 PM 0.50 0.00 0.50 0.00 4.00 04:33:51 PM 0.00 0.00 0.00 0.00 0.00 04:33:53 PM 0.00 0.00 0.00 0.00 0.00 Average: 0.17 0.00 0.17 0.00 1.33 tps:每秒钟物理设备的I/O传输总量。 rtps:每秒钟从物理设备读入的数据总量。 wtps:每秒钟向物理设备写入的数据总量。 bread/s:每秒钟从物理设备读入的数据量,单位为块/s。 bwrtn/s:每秒钟向物理设备写人的数据量,单位为块/s。
显示网络的运行状态
[root@doit ~]# sar -n DEV 2 3 Linux 4.20.0-1.el7.elrepo.x86_64 (doit) 03/17/2019 _x86_64_ (2 CPU) 04:35:59 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 04:36:01 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:36:01 PM eth0 48.50 40.50 34.71 33.66 0.00 0.00 0.00 以下是命令结果的详细说明。 IFACE:网络接。 rxpck/s:每秒钟接收的数据包。 txpck/s:每秒钟发送的数据包。 rxkB/s:每秒钟接收的字节数。 txkB/s:每秒钟发送的字节数。 rxcmp/s:每秒钟接收的压缩数据包。 txcmp/s:每秒钟发送的压缩数据包。 rxmcst/s:每秒钟接收的多播数据包。
下面的命令用来
显示网络错误的统计数据
[root@doit ~]# sar -n EDEV 2 3 Linux 4.20.0-1.el7.elrepo.x86_64 (doit) 03/17/2019 _x86_64_ (2 CPU) 04:39:26 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s 04:39:28 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:39:28 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 以下是命令结果的详细说明。 IFACE:网络接。 rxerr/s:每秒钟接收的坏数据包。 txerr/s:每秒钟发送的坏数据包。 coll/s:每秒的冲突数。 rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数。 txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数。 txcarr/s:发送数据包时,每秒载波错误数。 rxfram/s:每秒接收数据包的帧对齐错误数。 rxfifo/s:接收的数据包每秒FIFO过速的错误数。 txfifo/s:发送的数据包每秒FIFO过速的错误数。
下面的命令用于显示套接字信息
[root@doit ~]# sar -n SOCK 2 3 Linux 4.20.0-1.el7.elrepo.x86_64 (doit) 03/17/2019 _x86_64_ (2 CPU) 04:42:06 PM totsck tcpsck udpsck rawsck ip-frag tcp-tw 04:42:08 PM 101 5 3 0 0 2 04:42:10 PM 101 5 3 0 0 2 04:42:12 PM 101 5 3 0 0 2 Average: 101 5 3 0 0 2 以下是命令结果的详细说明。 totsck:使用的套接字总数量。 tcpsck:使用的TCP套接字数量。 udpsck:使用的UDP套接字数量。 rawsck:使用的raw套接字数量。 ip-frag:使用的IP段数量。 tcp-tw:处于TIME_WAIT状态的TCP套接字数量。
查看系统磁盘的读写性能
[root@doit ~]# sar -d 2 3 Linux 4.20.0-1.el7.elrepo.x86_64 (doit) 03/17/2019 _x86_64_ (2 CPU) 04:43:34 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 04:43:36 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:43:36 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 04:43:38 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 04:43:38 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 04:43:40 PM dev8-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: dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 以下是命令结果的详细说明。 DEV:表示磁盘的设备名称。 tps:表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。 rd_sec/s:表示每秒从设备读取的扇区数。 wr_sec/s;表示每秒写入设备的扇区数目。 avgrq-sz:设备平均每次I/O操作的数据大小(扇区)。 avgqu-sz;平均I/0队列长度。 await:设备平均每次1VO操作的等待时间(毫秒)。 svctm:设备平均每次I/O操作的服务时间(毫秒)。 %util:每秒钟用于I/O操作的百分比。