AIOps 一场颠覆传统运维的盛筵
1044
2022-10-15
Linux/UNIX系统中SAR命令使用详解
目录
1.命令介绍1
2.命令格式2
3.命令使用3
3.1 CPU资源监控sar -u3
3.2进程队列长度和平均负载状态监控sar -q4
3.3查看内存使用情况sar -r5
3.4查看磁盘使用信息sar -d6
3.5查看系统核心表的情况sar -v7
3.6查看内存分页信息sar -B8
3.7查看I/O和传递速率的统计信息sar -b9
3.8查看系统swap分区的统计信息sar -W10
3.9查看网络使用信息sar -n10
3.9.1网络接口信息统计11
3.9.2网络接口通信失败信息统计11
3.9.3 socket连接信息统计12
3.9.4 TCP连接信息统计13
3.10将统计信息保存到文件
1.命令介绍
在Linux系统中,sar(System ActivityReporter系统活动情况报告)命令是目前最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
下面,我们以Oracle Linux 8.5为环境,详细介绍SAR命令的使用和性能分析。
sar命令由sysstat软件包提供,我们可以通过查询系统是否安装sysstat软件包来判断是否可以正常使用sar命令。
sysstat软件包的详细信息查询如下。
2.命令格式
我们通过以下命令查看。
# sar --h
-A:所有报告的总和
-b:显示I/O和传递速率的统计信息
-B:显示换页状态
-d:输出每一块磁盘的使用信息
-e:设置显示报告的结束时间
-f:从制定的文件读取报告
-i:设置状态信息刷新的间隔时间
-P:报告每个CPU的状态
-R:显示内存状态
–u:输出cpu使用情况和统计信息
–v:显示索引节点、文件和其他内核表的状态
-w:显示交换分区的状态
-x:显示给定进程的装
-r:报告内存利用率的统计信息
3.命令使用
3.1 CPU资源监控sar -u
使用举例,每间隔2秒钟统计一次,总共统计5次。
#sar -u 2 5
输出项说明:
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
在以上的显示当中,主要看%iowait和%idle的数值显示。
如果%iowait过高,表示磁盘存在I/O瓶颈,即磁盘I/O可能无法满足需求;
如果%idle过低,表示CPU使用率较高,处理能力较低,这时需要结合内存使用等情况判断CPU是否瓶颈。 ;
如果%idle不低但是系统反应缓慢,可能是内存容量无法得到满足。
3.2进程队列长度和平均负载状态监控sar -q
使用举例,每间隔2秒钟统计一次,总共统计5次。
#sar -q 2 5
输出项说明:
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
3.3查看内存使用情况sar -r
使用举例,每间隔2秒钟统计一次,总共统计5次。
#sar -r 2 5
输出项说明:
kbmemfree:空闲的物理内存容量,这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间。
kbmemused:使用中的物理内存容量,这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间。
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比。
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache。
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)。
%commit:这个值是kbcommit与内存总量(RAM+swap分区)的一个百分比的值。
3.4查看磁盘使用信息sar -d
使用举例,每间隔2秒钟统计一次,总共统计2次。
#sar -d 2 2 -p
输出项说明:
dev:显示磁盘设备的名称。
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的百分比,比率越大,说明越饱和,值接近 1% 时,表示设备带宽已经占满。
3.5查看系统核心表的情况sar -v
使用举例,每间隔2秒钟统计一次,总共统计5次。
#sar -v 2 5
输出项说明:
dentunusd:目录高速缓存中未被使用的条目数量
file-nr:文件句柄(file handle)的使用数量
inode-nr:索引节点句柄(inode handle)的使用数量
pty-nr:使用的pty数量
3.6查看内存分页信息sar -B
使用举例,每间隔2秒钟统计一次,总共统计5次。
#sar -B 2 5
输出项说明:
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)的百分比
3.7查看I/O和传递速率的统计信息sar -b
使用举例,每间隔2秒钟统计一次,总共统计5次。
#sar -b 2 5
输出项说明:
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
3.8查看系统swap分区的统计信息sar -W
使用举例,每间隔2秒钟统计一次,总共统计5次。
#sar -W 2 5
输出项说明:
#pswpin/s 每秒从交换分区到系统的交换页面(swap page)数量
#pswpott/s 每秒从系统交换到swap的交换页面(swap page)的数量
3.9查看网络使用信息sar -n
命令格式如下。
如上图,sar -n后面可用的键值有20个之多,分别是DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6和UDP6 ,FC,SOFT等,在此只列出几个常用键值进行展示。
3.9.1网络接口信息统计
使用举例,每间隔2秒钟统计一次,总共统计2次。
#sar -n DEV 2 2
输出项说明:
IFACE 本地网卡接口的名称
rxpck/s 每秒钟接受的数据包
txpck/s 每秒钟发送的数据库
rxKB/S 每秒钟接受的数据包大小,单位为KB
txKB/S 每秒钟发送的数据包大小,单位为KB
rxcmp/s 每秒钟接受的压缩数据包
txcmp/s 每秒钟发送的压缩包
rxmcst/s 每秒钟接收的多播数据包
3.9.2网络接口通信失败信息统计
使用举例,每间隔2秒钟统计一次,总共统计2次。
#sar -n EDEV 2 2
输出项说明:
IFACE 网卡名称
rxerr/s 每秒钟接收到的损坏的数据包
txerr/s 每秒钟发送的数据包错误数
coll/s 当发送数据包时候,每秒钟发生的冲撞(collisions)数,这个是在半双工模式下才有
rxdrop/s 当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目
txdrop/s 当由于缓冲区满的时候,网络设备发送端每秒钟丢掉的网络包的数目
txcarr/s 当发送数据包的时候,每秒钟载波错误发生的次数
rxfram 在接收数据包的时候,每秒钟发生的帧对其错误的次数
rxfifo 在接收数据包的时候,每秒钟缓冲区溢出的错误发生的次数
txfifo 在发生数据包 的时候,每秒钟缓冲区溢出的错误发生的次数
3.9.3 socket连接信息统计
使用举例,每间隔2秒钟统计一次,总共统计2次。
#sar -n SOCKET 2 2
输出项说明:
totsck 当前被使用的socket总数
tcpsck 当前正在被使用的TCP的socket总数
udpsck 当前正在被使用的UDP的socket总数
rawsck 当前正在被使用于RAW的skcket总数
if-frag 当前的IP分片的数目
tcp-tw TCP套接字中处于TIME-WAIT状态的连接数量
3.9.4 TCP连接信息统计
使用举例,每间隔2秒钟统计一次,总共统计2次。
#sar -n TCP 2 2
输出项说明:
active/s 新的主动连接
passive/s 新的被动连接
iseg/s 接受的段
oseg/s 输出的段
3.10将统计信息保存到文件
使用举例,每间隔2秒钟统计CPU资源使用率一次,总共统计2次,然后把统计结果输出到/test文件中,内容是二进制格式,无法通过编辑器查看。
#sar -u 2 2 -o test123
使用举例,从/test123文件中查看保存的统计信息。
#sar -u -f test123
..............................
其他相关文档导航:
在Linux8.5环境下ZABBIX5.0.20的详细安装部署文档
在Linux8.5环境下ZABBIX6.0监控系统的详细安装部署文档
在Linux8.3环境下通过targetcli配置共享存储服务器的详细技术文档
LINUX环境下YUM的各种配置总结
详细介绍Linux系统下YUM和DNF的使用配置
Linux8全版本安装ZABBIX6.0无法启动服务处理办法
在Windows2019环境下Oracle 21C单实例详细安装部署文档
在Linux8.5环境下Oracle 21C单实例详细安装部署文档
【文末有资源】在Linux7.9环境下ZABBIX5.0.20的详细安装部署文档
发表评论
暂时没有评论,来抢沙发吧~