栏目头部广告

Linux服务器性能分析命令sar详解

一、简介

sar(System Activity Reporter,系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

二、工具的安装

[root@10-27-0-224 ~]# yum install sysstat -y

Linux服务器性能分析命令sar和可视化工具ksar详解(图1)

三、命令语法

语法:

Linux服务器性能分析命令sar和可视化工具ksar详解(图2)

1、类型:就是我们要获取的是哪个类型的指标数据,这里的-n,代表的是监控一些网络信息

-a:文件读写情况
-A:所有报告的总和
-B:分页状况
-b:显示I/O和传送速率的统计信息
-c:输出进程统计信息,每秒创建的进程数
-d:块设备状况
-F [ MOUNT ]:文件系统统计信息
-H:交换空间利用率
-I { <中断> | SUM | ALL | XALL }:中断信息状况
-n:汇报网络情况
-P:设定CPU
-q:队列长度和平均负载
-R:输出内存页面的统计信息
-r [ ALL ]:输出内存和交换空间的统计信息
-S:交换空间利用率信息
-u [ ALL ]:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-W:输出系统交换活动信息
-w:任务创建与系统转换信息
-y:终端设备活动情况

2、类型参数:有的类型带有参数,有的没有。这里的DEV,代表的是监控网卡信息。

3、间隔时间:每次报告的间隔时间(秒)。

4、次数:显示报告的次数。 如:时间间隔是2,采样次数是3,那么sar命令将阻塞12秒钟。

Linux服务器性能分析命令sar和可视化工具ksar详解(图3)

四、案例展示

如果需要分析历史某个时间段的主机的CPU/内存/IO使用情况,可参考以下命令:

SA日志存放目录:/var/log/sa

操作命令:sar -B -f sa30 -s "22:40:00" -e "22:50:00"

【注】-f指定解析具体sa文件;-s指定开始时间;-e指定结束时间。

Linux服务器性能分析命令sar和可视化工具ksar详解(图4)

4.1 CPU监控信息分析

(1)CPU使用率

[root@10-27-0-224 ~]# sar -u 1 1

Linux服务器性能分析命令sar和可视化工具ksar详解(图4)

字段说明

%user 用户空间的CPU使用
%nice 改变过优先级的进程的CPU使用
%system 内核空间的CPU使用
%iowait CPU等待IO的百分
%steal 虚拟机的虚拟机CPU使用的CPU
%idle 空闲的CPU

在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

(2)CPU使用状态

[root@10-27-0-224 ~]# sar -p 1 3

Linux服务器性能分析命令sar和可视化工具ksar详解(图5)

字段说明

CPU       所有CPU的统计
%user    用户态的CPU使用统计
%nice    更改过优先级的进程的CPU使用统计
%iowait CPU等待IO数据的百分比
%steal   虚拟机的vCPU占用的物理CPU的百分比
%idle    空闲的CPU百分比

(3)CPU负载使用sar -q,同样的和top的参数意义是相似的。除了load值,它还显示了等待队列的长度,对于排查排队问题非常有帮助。

[root@10-27-0-224 ~]# sar -q  1 1

Linux服务器性能分析命令sar和可视化工具ksar详解(图6)

字段说明

runq-sz    运行队列的长度(等待运行的进程数,每核的CP不能超过3个)
plist-sz    进程列表中的进程(processes)和线程数(threads)的数量
ldavg-1   最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推
ldavg-5   最后5分钟的CPU平均负载
ldavg-15 最后15分钟的CPU平均负载

(4)中断

使用sar -I,注意i是大写的。由于有不同的换算方式,所以中断的参数,分为默认、SUM、ALL等。

[root@10-27-0-224 ~]# sar -I SUM 1 2

Linux服务器性能分析命令sar和可视化工具ksar详解(图7)

(5)上下文切换

使用sar -w,它经常与监控swap交换分区的使用情况的sar -W(注意大小写)搞混。

Linux服务器性能分析命令sar和可视化工具ksar详解(图8)

4.2 内存信息

内存主要是分为物理内存、虚拟内存、内核等。

(1)内存利用率

[root@10-27-0-224 ~]# sar -r 1 1

Linux服务器性能分析命令sar和可视化工具ksar详解(图9)

字段说明

kbmemfree   可用的空闲内存大小
kbmemused  已使用的内存大小(不包含内核使用的内存)
%memused   已使用内存的百分数
kbbuffers      内核缓冲区(buffer)使用的内存大小
kbcached      内核高速缓存(cache)数据使用的内存大小
kbswpfree    可用的空闲交换空间大小
kbswpused   已使用的交换空间大小
%swpused    已使用交换空间的百分数
kbswpcad     交换空间的高速缓存使用的内存大小
kbcommit     保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
commit         这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值

(2)swap交换分区

对于swap分区来说使用sar -S。如果想要看交换分区的使用情况(非容量情况)切换到sar -W命令。

[root@10-27-0-224 ~]# sar -S 1 1

Linux服务器性能分析命令sar和可视化工具ksar详解(图10)

(3)内核使用情况

主要是使用sar -v命令。 v一般在别的命令中用作版本展示,sar命令用来输出slab区的一些信息,可以说是特立独行,不走寻常路。

[root@10-27-0-224 ~]# sar -v  1

Linux服务器性能分析命令sar和可视化工具ksar详解(图11)

字段说明

dentunusd  在缓冲目录条目中没有使用的条目数量
file-nr        被系统使用的文件句柄数量
inode-nr    已经使用的索引数量
pty-nr        使用的pty数量

(4)监控内存分页信息, 主要是使用sar -B命令。

[root@10-27-0-224 ~]# sar -B

Linux服务器性能分析命令sar和可视化工具ksar详解(图12)

(5)查看系统swap分区的统计信息

[root@10-27-0-224 ~]# sar -W 

Linux服务器性能分析命令sar和可视化工具ksar详解(图13)

字段说明

pswpin/s 每秒从交换分区到系统的交换页面(swap page)数量
pswpout/s 每秒从系统交换到swap的交换页面(swap page)的数量

(6)查看I/O和传递速率的统计信息

[root@10-27-0-224 ~]# sar -b 

Linux服务器性能分析命令sar和可视化工具ksar详解(图14)

字段说明

tps 磁盘每秒钟的IO总数,等于iostat中的tps
rtps 每秒钟从磁盘读取的IO总数
wtps 每秒钟从写入到磁盘的IO总数
bread/s 每秒钟从磁盘读取的块总数
bwrtn/s 每秒钟此写入到磁盘的块总数

(7)磁盘使用详情统计

[root@10-27-0-224 ~]#  sar -d

Linux服务器性能分析命令sar和可视化工具ksar详解(图15)

字段说明

DEV       磁盘设备的名称,如果不加-p,会显示dev253-0类似的设备名称,因此加上-p显示的名称更直接
tps          每秒I/O的传输总数
rd_sec/s  每秒读取的扇区的总数
wr_sec/s 每秒写入的扇区的 总数
avgrq-sz 平均每次次磁盘I/O操作的数据大小(扇区)
avgqu-sz 磁盘请求队列的平均长度
await       从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间
svctm I/O的服务处理时间,即不包括请求队列中的时间
%util I/O请求占用的CPU百分比,值越高,说明I/O越慢

4.3 I/O信息

(1)IO信息监控

[root@10-27-0-224 ~]# sar -b 1 2

Linux服务器性能分析命令sar详解(图17)

字段说明

tps 磁盘每秒钟的IO总数,等于iostat中的tps
rtps 每秒钟从磁盘读取的IO总数
wtps 每秒钟从写入到磁盘的IO总数
bread/s 每秒钟从磁盘读取的块总数
bwrtn/s 每秒钟此写入到磁盘的块总数

(2)sar -d命令非常类似于iostat命令,结果更多

[root@10-27-0-224 ~]# sar -d 1

Linux服务器性能分析命令sar详解(图18)

字段说明

DEV      磁盘设备的名称,如果不加-p,会显示dev253-0类似的设备名称,因此加上-p显示的名称更直接
tps         每秒I/O的传输总数
rd_sec/s 每秒读取的扇区的总数
wr_sec/s 每秒写入的扇区的 总数
avgrq-sz 平均每次次磁盘I/O操作的数据大小(扇区)
avgqu-sz 磁盘请求队列的平均长度
await 从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间
svctm I/O的服务处理时间,即不包括请求队列中的时间
%util I/O请求占用的CPU百分比,值越高,说明I/O越慢

4.4 网络信息

(1) 统计网络信息

[root@10-27-0-224 ~]#  sar -n DEV

Linux服务器性能分析命令sar详解(图19)

sar -n选项使用6个不同的开关:DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6和UDP6 ,DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。

(2) 每间隔1秒统计一次,总计统计1次

[root@10-27-0-224 ~]# sar -n DEV 1 1

Linux服务器性能分析命令sar详解(图20)

字段说明 下面的average是在多次统计后的平均值

IFACE 本地网卡接口的名称
rxpck/s 每秒钟接受的数据包
txpck/s 每秒钟发送的数据库
rxKB/S 每秒钟接受的数据包大小,单位为KB
txKB/S 每秒钟发送的数据包大小,单位为KB
rxcmp/s 每秒钟接受的压缩数据包
txcmp/s 每秒钟发送的压缩包
rxmcst/s 每秒钟接收的多播数据包

(3) 统计网络设备通信失败信息

[root@10-27-0-224 ~]#  sar -n EDEV  1 1

Linux服务器性能分析命令sar详解(图21)

字段说明

IFACE 网卡名称
rxerr/s 每秒钟接收到的损坏的数据包
txerr/s 每秒钟发送的数据包错误数
coll/s 当发送数据包时候,每秒钟发生的冲撞(collisions)数,这个是在半双工模式下才有
rxdrop/s 当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目
txdrop/s 当由于缓冲区满的时候,网络设备发送端每秒钟丢掉的网络包的数目
txcarr/s 当发送数据包的时候,每秒钟载波错误发生的次数
rxfram 在接收数据包的时候,每秒钟发生的帧对其错误的次数
rxfifo 在接收数据包的时候,每秒钟缓冲区溢出的错误发生的次数
txfifo 在发生数据包 的时候,每秒钟缓冲区溢出的错误发生的次数

(4) 统计socket连接信息

[root@10-27-0-224 ~]# sar -n SOCK 1 1

Linux服务器性能分析命令sar详解(图22)

字段说明

totsck 当前被使用的socket总数
tcpsck 当前正在被使用的TCP的socket总数
udpsck 当前正在被使用的UDP的socket总数
rawsck 当前正在被使用于RAW的skcket总数
ip-frag 当前的IP分片的数目
tcp-tw TCP套接字中处于TIME-WAIT状态的连接数量

使用FULL关键字,相当于上述DEV、EDEV和SOCK三者的综合。

(5) TCP连接的统计

[root@10-27-0-224 ~]#  sar -n TCP 1 3

Linux服务器性能分析命令sar详解(图23)

字段说明

active/s 新的主动连接
passive/s 新的被动连接
iseg/s 接受的段
oseg/s 输出的段

(6) sar -n 使用总结

DEV 网络接口统计信息
EDEV 网络接口错误
NFS NFS 客户端
NFSD NFS 服务器
SOCK Sockets (套接字) (v4)套接字使用
IP IP 流 (v4) IP数据报统计信息
EIP IP 流 (v4) (错误) IP错误统计信息
ICMP ICMP 流 (v4)
EICMP ICMP 流 (v4) (错误)
TCP TCP 流 (v4) TCP统计信息
ETCP TCP 流 (v4) (错误)TCP错误统计信息
UDP UDP 流 (v4)
SOCK6 Sockets (套接字) (v6)
IP6 IP 流 (v6)
EIP6 IP 流 (v6) (错误)
ICMP6 ICMP 流 (v6)
EICMP6 ICMP 流 (v6) (错误)
UDP6 UDP 流 (v6)

作者:UStarGao
链接:https://www.starcto.com/systemtool/124.html

来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`