Linux使用sar进行性能分析,Linux使用sar进行性能分析

一:sar简介

sar(System Activity Reporter, 系统活动情况报告): 是用于监控Linux系统各个性能的优秀工具,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

二:sar命令常用格式

命令格式:sar [ options ] [ [ ] ]

其中

interval: 采样周期,单位是秒;

count:采样次数,默认值是连续采样;

options:命令行选项。

20181112164433873946.png

三:sar命令常用选项

sar命令的选项很多,下面只列出常用选项:

-A:所有报告的总和

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

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

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

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

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

-a:文件读写情况

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

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

-y:终端设备活动情况

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

四:sar常用性能数据分析

下文将说明如何使用sar获取以下性能分析数据:

- 整体CPU使用统计

- 各个CPU使用统计

- 内存使用情况统计

- 整体I/O情况

- 各个I/O设备情况

- 网络统计

4.1:整体CPU使用统计(-u)

4.1.1:整体CPU统计命令:

使用-u选项,sar输出整体CPU的使用情况,不加选项时,默认使用的就是-u选项。以下命令显示采样时间为3s,采样次数为2次,整体CPU的使用情况:

sar 3 2 (或者 sar -u 3 2)

20181112164434084883.png

输出项说明:

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

%usr:CPU在用户态执行进程的时间百分比。

%nice:CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比。

%system:CPU处在内核态执行进程的时间百分比。

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

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

%idle:CPU空闲时间百分比。

4.1.2:总结

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

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

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

(4)统计CPU使用率:1-%idle的计数

4.2:各个CPU使用统计(-P)

命令:“-P ALL”选项指示对每个内核输出统计信息:

20181112164434205000.png

其中”CPU”列输出0,1,2,3,4,5指示对应的cpu核。也可针对单独一个内核显示,“-P 1”指示显示第二个内核的统计信息。

4.3:内存使用情况统计(-r)

使用-r选项可显示内存统计信息,以下命令显示以1秒为采样时间,显示2次内存信息;命令:sar -r 1 2

20181112164434343672.png

20181112164434448164.png

4.4:整体I/O情况(-b)

说明:使用-b选项,可以显示磁盘I/O的使用情况:Report I/O and transfer rate statistics.

命令:sar -b 3 2

20181112164434564375.png

输出项说明:

tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

rtps: 每秒向磁盘设备的读请求次数

wtps: 每秒向磁盘设备的写请求次数

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

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

各个I/O设备情况(-d)

4.5:各个I/O设备情况(-d)

4.5.1:说明:使用-d选项可以显示各个磁盘的统计信息,再增加-p选项可以以sdX的形式显示设备名称:

4.5.2:命令:sar -d -p 3 2

20181112164434658125.png

输出项说明:

rd_sec/s: 每秒从设备读取的扇区数

wr_sec/s: 每秒往设备写入的扇区数

avgrq-sz: 发送给设备的请求的平均大小(以扇区为单位)

avgqu-sz: 发送给设备的请求队列的平均长度

await :服务等待I/O请求的平均时间,包括请求队列等待时间 (单位毫秒)

svctm :设备处理I/O请求的平均时间,不包括请求队列等待时间 (单位毫秒)

%util :一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比。

4.5.3:总结分析:

- 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

- 如果 %util:I/O请求占CPU的百分比,比率越大,说明越饱和.

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

- 如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。

- 如果avgqu-sz比较大,也表示有当量io在等待。

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

4.6:网络统计(-n)

使用-n选项可以对网络使用情况进行显示,-n后接关键词”DEV”可显示eth0、eth1等网卡的信息:

命令举例:sar -n DEV 1 1

说明:

-n DEV : 网络接口统计信息。

-n EDEV : 网络接口错误。

-n IP : IP数据报统计信息。

-n EIP : IP错误统计信息。

-n TCP : TCP统计信息。

-n ETCP : TCP错误统计信息。

-n SOCK : 套接字使用。

20181112164434817305.png

以上主要输出含义如下:

IFACE: Name of the network interface for which statistics are reported.

rxpck/s: Total number of packets received per second.

txpck/s: Total number of packets transmitted per second.

rxkB/s: Total number of kilobytes(kB) received per second.

txkB/s: Total number of kilobytes(kB) transmitted per second.

rxcmp/s: Number of compressed packets received per second (for cslip etc.).

txcmp/s: Number of compressed packets transmitted per second.

rxmcst/s: Number of multicast packets received per second.

4.7:sar进程队列长度和平均负载状态监控

命令:sar -q 10 3

20181112164434946211.png

输出项说明:

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

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

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

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

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

4.8:sar日志保存(-o)

保存sar日志,使用-o选项,我们可以把sar统计信息保存到一个指定的文件,对于保存的日志,我们可以使用-f选项读取:

linux:~ # sar -n DEV 1 10 -o sar.out

linux:~ # sar -d 1 10 -f sar.out //查看历史的IO

linux:~ # sar -u 1 10 -f sar.out //查看历史的cpu,单位1s, 采样10次

相比将结果重定向到一个文件,使用-o选项,可以保存更多的系统资源信息。

五:总结

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

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

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

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

说明:博文转载该作者,连接:https://blog.csdn.net/xusensen/article/details/54606401#sar%E5%B8%B8%E7%94%A8%E6%80%A7%E8%83%BD%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值