功能说明:
通过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 3Linux 3.10.0-957.el7.x86_64 (lewen) 2019年03月17日 _x86_64_ (1 CPU)16时09分16秒 CPU %user %nice %system %iowait %steal %idle16时09分18秒 all 0.00 0.00 0.50 0.00 0.00 99.5016时09分20秒 all 0.00 0.00 0.00 0.00 0.00 100.0016时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 3Linux 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 blocked16时25分08秒 0 316 0.00 0.01 0.05 016时25分10秒 0 316 0.00 0.01 0.05 016时25分12秒 0 316 0.00 0.01 0.05 0平均时间: 0 316 0.00 0.01 0.05 0runq-sz:运行队列的长度(等待运行的进程数)。plist-sz:进程列表中进程(process)和线程(thread)的数量。ldavg-1:最后1分钟的系统平均负载(system load average)。ldavg-5:过去5分钟的系统平均负载。ldavg-15:过去15分钟的系统平均负载。
显示系统内存的使用状况
[root@lewen ~]# sar -r 2 3Linux 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 kbdirty16时29分56秒 2794180 1232168 30.60 2108 643944 2014348 28.09 672264 297744 816时29分58秒 2794180 1232168 30.60 2108 643944 2014348 28.09 672268 297744 816时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 3Linux 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/s04:33:49 PM 0.50 0.00 0.50 0.00 4.0004:33:51 PM 0.00 0.00 0.00 0.00 0.0004:33:53 PM 0.00 0.00 0.00 0.00 0.00Average: 0.17 0.00 0.17 0.00 1.33tps:每秒钟物理设备的I/O传输总量。rtps:每秒钟从物理设备读入的数据总量。wtps:每秒钟向物理设备写入的数据总量。bread/s:每秒钟从物理设备读入的数据量,单位为块/s。bwrtn/s:每秒钟向物理设备写人的数据量,单位为块/s。
显示网络的运行状态
[root@doit ~]# sar -n DEV 2 3Linux 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/s04:36:01 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.0004: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 3Linux 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/s04:39:28 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0004: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 3Linux 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-tw04:42:08 PM 101 5 3 0 0 204:42:10 PM 101 5 3 0 0 204:42:12 PM 101 5 3 0 0 2Average: 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 3Linux 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 %util04:43:36 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0004:43:36 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util04:43:38 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0004:43:38 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util04:43:40 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %utilAverage: 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操作的百分比。