当前位置:   article > 正文

性能诊断-sar命令使用

性能诊断-sar命令使用

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

sar 命令获得整个系统性能的报告,有助于定位系统性能的瓶颈,同时有助于找出性能问题的解决方法。

Linux 内核维护着一些内部计数器,这些计数器包含了所有的请求及其完成时间和 I/O 块数等信息,sar 命令从这些信息中计算出请求的利用率和比例,以便找出瓶颈所在。

sar 命令主要的用途是生成某段时间内所有活动的报告,因此必需确保 sar 命令在适当的时间进行数据采集。

sar 命令来自于 sysstat 工具包,如果提示 sar 命令不存在,需先安装 sysstat。

#命令参数
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]

主选项和报告:
-b I/O 和传输速率信息状况
-B 分页状况
-d 块设备状况
-I { <中断> | SUM | ALL | XALL }
中断信息状况
-m 电源管理信息状况
-n { <关键词> [,…] | ALL }
网络统计信息
关键词可以是:
DEV 网卡
EDEV 网卡 (错误)
NFS NFS 客户端
NFSD NFS 服务器
SOCK Sockets (套接字) (v4)
IP IP 流 (v4)
EIP IP 流 (v4) (错误)
ICMP ICMP 流 (v4)
EICMP ICMP 流 (v4) (错误)
TCP TCP 流 (v4)
ETCP TCP 流 (v4) (错误)
UDP UDP 流 (v4)
SOCK6 Sockets (套接字) (v6)
IP6 IP 流 (v6)
EIP6 IP 流 (v6) (错误)
ICMP6 ICMP 流 (v6)
EICMP6 ICMP 流 (v6) (错误)
UDP6 UDP 流 (v6)
-q 队列长度和平均负载
-r 内存利用率
-R 内存状况
-S 交换空间利用率
-u [ ALL ]
CPU 利用率
-v Kernel table 状况
-w 任务创建与系统转换统计信息
-W 交换信息
-y TTY 设备状况
-o {<文件路径>}
将命令结果以二进制格式存放在指定文件中
统计网络信息
[root@localhost ~]# sar -n DEV 1 3
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain) 2023年05月02日 x86_64 (8 CPU)

13时47分33秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
13时47分34秒 eth0 2.00 0.00 0.27 0.00 0.00 0.00 0.00
13时47分34秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时47分34秒 virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时47分34秒 virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00

13时47分34秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
13时47分35秒 eth0 2.00 2.00 0.12 0.31 0.00 0.00 0.00
13时47分35秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时47分35秒 virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时47分35秒 virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00

13时47分35秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
13时47分36秒 eth0 1.00 1.00 0.06 0.04 0.00 0.00 0.00
13时47分36秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时47分36秒 virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时47分36秒 virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00

平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均时间: eth0 1.67 1.00 0.15 0.12 0.00 0.00 0.00
平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
命令中 1 3 表示每一秒钟取 1 次值,一共取 3 次;命令执行后会列出每个网卡这 3 次取值的平均数据。

CPU 利用率
[root@localhost ~]# sar -u 1 3
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain) 2023年05月02日 x86_64 (8 CPU)

13时49分43秒 CPU %user %nice %system %iowait %steal %idle
13时49分44秒 all 0.00 0.00 0.00 0.00 0.00 100.00
13时49分45秒 all 0.00 0.00 0.00 0.00 0.00 100.00
13时49分46秒 all 0.00 0.00 0.00 0.00 0.00 100.00
平均时间: all 0.00 0.00 0.00 0.00 0.00 100.00
命令中 1 3 表示每一秒钟取 1 次值,一共取 3 次。

其中输出列的含义如下所示:

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

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

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

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

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

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

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

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

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

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

内存利用率
[root@localhost ~]# sar -r 1 3
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain) 2023年05月02日 x86_64 (8 CPU)

13时51分44秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
13时51分45秒 6632612 1375428 17.18 1080 486664 3052260 23.03 769292 385976 0
13时51分46秒 6632612 1375428 17.18 1080 486664 3052260 23.03 769292 385976 0
13时51分47秒 6632612 1375428 17.18 1080 486664 3052260 23.03 769292 385976 0
平均时间: 6632612 1375428 17.18 1080 486664 3052260 23.03 769292 385976 0
其中输出列的含义如下所示:

列名 含义
kbmemfree 空闲内存,不包括 cache 空间
kbmemused 使用内存,不包括内核使用空间
%memused kbmemused 和内存总量(不包括 SWAP)的百分比
kbbuffers 和 kbcached 内核使用的 buff/cache 空间
kbcommit 当前系统运行所需的内存,用于评估 RAM+SWAP 总的大小保证程序不会被 OOM
%commit kbcommit 与内存总量(包括 swap)的一个百分比,该值可能会超过 100%,因为内存允许 overcommit
内存分页状况
[root@localhost ~]# sar -B 1 3
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain) 2023年05月02日 x86_64 (8 CPU)

13时55分23秒 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
13时55分24秒 0.00 0.00 21.00 0.00 76.00 0.00 0.00 0.00 0.00
13时55分25秒 0.00 0.00 26.00 0.00 39.00 0.00 0.00 0.00 0.00
13时55分26秒 0.00 0.00 17.00 0.00 39.00 0.00 0.00 0.00 0.00
平均时间: 0.00 0.00 21.33 0.00 51.33 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)的百分比
系统页面 SWAP 信息
[root@localhost ~]# sar -W 1 3
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain) 2023年05月02日 x86_64 (8 CPU)

13时56分24秒 pswpin/s pswpout/s
13时56分25秒 0.00 0.00
13时56分26秒 0.00 0.00
13时56分27秒 0.00 0.00
平均时间: 0.00 0.00
其中输出列的含义如下所示:

列名 含义
pgpgin/s 每秒系统换入的交换页面(swap page)数量
pgpgout/s pswpout/s:每秒系统换出的交换页面(swap page)数量
I/O 和传输速率信息状况
[root@localhost ~]# sar -b 1 3
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain) 2023年05月02日 x86_64 (8 CPU)

13时52分48秒 tps rtps wtps bread/s bwrtn/s
13时52分49秒 0.00 0.00 0.00 0.00 0.00
13时52分50秒 0.00 0.00 0.00 0.00 0.00
13时52分51秒 0.00 0.00 0.00 0.00 0.00
平均时间: 0.00 0.00 0.00 0.00 0.00
其中输出列的含义如下所示:

列名 含义
tps 每秒钟物理设备的 I/O 传输总量
rtps 每秒钟从物理设备读入的数据总量
wtps 每秒钟向物理设备写入的数据总量
bread/s 每秒钟从物理设备读入的数据量,单位为:块/s
bwrtn/s 每秒钟向物理设备写入的数据量,单位为:块/s
系统调度队列长度和平均负载
[root@localhost ~]# sar -q 1 3
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain) 2023年05月02日 x86_64 (8 CPU)

13时53分51秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
13时53分52秒 0 421 0.00 0.01 0.05 0
13时53分53秒 0 421 0.00 0.01 0.05 0
13时53分54秒 0 421 0.00 0.01 0.05 0
平均时间: 0 421 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 分钟的系统平均负载
块设备状况
[root@localhost ~]# sar -d 1 3
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain) 2023年05月02日 x86_64 (8 CPU)

13时54分38秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
13时54分39秒 dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分39秒 dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分39秒 dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分39秒 dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

13时54分39秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
13时54分40秒 dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分40秒 dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分40秒 dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分40秒 dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

13时54分40秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
13时54分41秒 dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分41秒 dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分41秒 dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13时54分41秒 dev253-1 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
平均时间: dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
其中输出列的含义如下所示: | 列名 | 含义 | | :-------: | :---------------------------------------------------------: | | 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. avgqu-sz 的值较低时,设备的利用率较高 2. 当%util 的值接近 1% 时,表示设备带宽已经占满 |

sadf 处理 sar 统计信息
保存sar统计信息到文件;

如下命令会将sar -u 1 3采集到的数据以二进制的格式存放到文件 sarfile.log 中:

sar -o sarfile.log -u 1 3

可以通过sadf命令查看该文件内容

[root@localhost ~]# sadf -d sarfile.log

hostname;interval;timestamp;CPU;%user;%nice;%system;%iowait;%steal;%idle

localhost.localdomain;1;2023-05-02 07:00:47 UTC;-1;0.00;0.00;0.00;0.00;0.00;100.00
localhost.localdomain;1;2023-05-02 07:00:48 UTC;-1;0.00;0.00;0.12;0.00;0.00;99.88
localhost.localdomain;1;2023-05-02 07:00:49 UTC;-1;0.00;0.00;0.00;0.00;0.00;100.00

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/483583
推荐阅读
相关标签
  

闽ICP备14008679号