Linux/UNIX系统中SAR命令使用详解

网友投稿 1044 2022-10-15

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

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的详细安装部署文档

上一篇:MySQL 针对Swap分区的运维注意点
下一篇:Python Ansible API 实战
相关文章

 发表评论

暂时没有评论,来抢沙发吧~