sar:收集系统信息
sar
功能说明:
通过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
以下是命令结果的详细说明。
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操作的百分比。