优化排查工具之sar

作者: admin 分类: Linux 发布时间: 2018-07-17 14:54 浏览:1,170 次    
  • sar   系统活动情况报告

1、安装

[root@localhost ~]# yum -y install sysstat

2、选项参数说明

常用语法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]

-A:所有报告的总和

-u:输出CPU使用情况的统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息

-r:输出内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息

-a:文件读写情况

-c:输出进程统计信息,每秒创建的进程数

-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出系统交换活动信息

-o:输出信息文件

-f:查年信息文件

3、CPU资源监控

[root@localhost ~]# sar -u -o test 10 2
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 2018年07月17日 _x86_64_ (1 CPU)

 14时04分27秒 CPU %user %nice %system %iowait %steal %idle
 14时04分37秒 all 0.00 0.00 0.20 0.00 0.00 99.80
 14时04分47秒 all 0.00 0.00 0.00 0.00 0.00 100.00
 平均时间: all 0.00 0.00 0.10 0.00 0.00 99.90

输出项说明:

CPU:all 表示统计信息为所有 CPU 的平均值。

%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。

%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。

%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。

%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。

%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。

%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

a. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈

b. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

c. 若 %idle 的值持续低于10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

4、查看二进制文件内容

语法:sar -f  <文件名>

[root@localhost ~]# sar -f test
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 2018年07月17日 _x86_64_ (1 CPU)

 14时04分27秒 CPU %user %nice %system %iowait %steal %idle
 14时04分37秒 all 0.00 0.00 0.20 0.00 0.00 99.80
 14时04分47秒 all 0.00 0.00 0.00 0.00 0.00 100.00
 平均时间: all 0.00 0.00 0.10 0.00 0.00 99.90

5、inode、文件和其他内核表监控

 [root@localhost ~]# sar -v 10 3                #每10秒采样一次,连续采样3次
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 2018年07月17日 _x86_64_ (1 CPU)

 14时12分49秒 dentunusd file-nr inode-nr pty-nr
 14时12分59秒 66361 1536 56171 4
 14时13分09秒 66361 1536 56171 4
 14时13分19秒 66361 1536 56171 4
 平均时间: 66361 1536 56171 4

输出项说明:

dentunusd:目录高速缓存中未被使用的条目数量

file-nr:文件句柄(file handle)的使用数量

inode-nr:索引节点句柄(inode handle)的使用数量

pty-nr:使用的pty数量

6、内存和交换空间监控

 [root@localhost ~]# sar -r 10 3     #每10秒采样一次,连续采样3次
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 2018年07月17日 _x86_64_ (1 CPU)

 14时16分42秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
 14时16分52秒 118200 884960 88.22 0 518672 394704 19.24 306364 267632 0
 14时17分02秒 118372 884788 88.20 0 518672 393400 19.17 306012 267632 0
 14时17分12秒 118372 884788 88.20 0 518672 393400 19.17 306012 267632 0
 平均时间: 118315 884845 88.21 0 518672 393835 19.20 306129 267632 0

输出项说明:

kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.

kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.

%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.

kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.

kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).

%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

7、内存分页监控

 [root@localhost ~]# sar -B 10 3    #每10秒采样一次,连续采样3次
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 2018年07月17日 _x86_64_ (1 CPU)

14时19分36秒 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
 14时19分46秒 0.00 0.00 7.22 0.00 3.51 0.00 0.00 0.00 0.00
 14时19分56秒 0.00 0.00 251.76 0.00 109.55 0.00 0.00 0.00 0.00
 14时20分06秒 0.00 0.10 286.16 0.00 90.51 0.00 0.00 0.00 0.00
 平均时间: 0.00 0.03 181.42 0.00 67.77 0.00 0.00 0.00 0.00

输出项说明:

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)的百分比

8、I/O和传送速率监控

[root@localhost ~]# sar -b 10 3
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 2018年07月17日 _x86_64_ (1 CPU)

14时22分04秒 tps rtps wtps bread/s bwrtn/s
 14时22分14秒 0.00 0.00 0.00 0.00 0.00
 14时22分24秒 0.00 0.00 0.00 0.00 0.00
 14时22分34秒 0.20 0.00 0.20 0.00 0.30
 平均时间: 0.07 0.00 0.07 0.00 0.10

输出项说明:

tps:每秒钟物理设备的 I/O 传输总量

rtps:每秒钟从物理设备读入的数据总量

wtps:每秒钟向物理设备写入的数据总量

bread/s:每秒钟从物理设备读入的数据量,单位为 块/s

bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

9、进程队列长度和平均负载状态监控

[root@localhost ~]# sar -q 10 3
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 2018年07月17日 _x86_64_ (1 CPU)

14时31分11秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
 14时31分21秒 1 390 0.00 0.01 0.05 0
 14时31分31秒 1 390 0.00 0.01 0.05 0
 14时31分41秒 1 390 0.00 0.01 0.05 0
 平均时间: 1 390 0.00 0.01 0.05 0

输出项说明:

runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(System load average)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载

10、系统交换活动信息监控

[root@localhost ~]# sar -W 10 3
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 07/17/2018 _x86_64_ (1 CPU)

02:32:31 PM pswpin/s pswpout/s
 02:32:41 PM 0.00 0.00
 02:32:51 PM 0.00 0.00
 02:33:01 PM 0.00 0.00
 Average: 0.00 0.00

输出项说明:

pswpin/s:每秒系统换入的交换页面(swap page)数量

pswpout/s:每秒系统换出的交换页面(swap page)数量

11、设备使用情况监控

[root@localhost ~]# sar -d 10 3 -p
 Linux 3.10.0-229.el7.x86_64 (localhost.localdomain) 2018年07月17日 _x86_64_ (1 CPU)

 14时35分11秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
 14时35分21秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
 14时35分21秒 sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

 14时35分21秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
 14时35分31秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
 14时35分31秒 sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

 14时35分31秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
 14时35分41秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
 14时35分41秒 sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

 平均时间: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
 平均时间: sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
 平均时间: sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

输出项说明:

-p:打印sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0

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的百分比,比率越大,说明越饱和.

a. avgqu-sz 的值较低时,设备的利用率较高。

b. 当%util的值接近 1% 时,表示设备带宽已经占满。

注:要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来

a、怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看

b、怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看

c、怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

 

 


温馨提示:如无特殊说明,本站文章均为作者原创,转载时请注明出处及相应链接!

发表评论