使用 Sar 命令进行系统性能分析

sar是Linux系统中用于性能分析的重要工具,它能够提供CPU、内存、磁盘I/O、网络等多方面的监控数据。本文详细介绍了sar命令的使用方法,包括默认的CPU监控、进程负载、内存使用、磁盘活动以及网络状态的监测。通过sar,管理员可以轻松了解系统运行状况并进行问题排查。

6209e80832c308a7d6db9c41636ff2ed.gif

1

sar 是什么

sar 命令是分析 linux 系统性能的重要工具之一,通过该命令可以全面地获取系统的 CPU、内存、网络、磁盘I/O、分区(交换区)、CPU 中断等性能数据。

sar命令包含在sysstat软件包内。可以下载软件包编译安装,也可以通过yum install -y sysstat 或者 apt-get install sysstat 安装。

2

sar 如何使用

sar 功能强大,参数也比较多,但不要害怕,其实是有规律的。

sar [options] [-o filename] [interval] [count]
  • options:为命令行选项,不填默认是 -u ,sar 命令提供的选项很多,下面会详细介绍。

  • -o filename:其中,filename 为文件名,此选项表示将命令结果以二进制格式存放在文件中;

  • interval:表示采样间隔时间;

  • count:表示采样次数;

例如我们输入下面命令

# sar 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10)   10/19/2022   _x86_64_  (2 CPU)


02:43:15 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
02:43:16 PM     all      4.10      0.00      2.56      0.00      0.00     93.33
Average:        all      4.10      0.00      2.56      0.00      0.00     93.33

我们知道  option 默认是 -u,代表 cpu 监控情况。1 1 就表示每1秒采样一次,一共采集1次。

CPUall 表示统计所有cpu平均值
%user表示cpu在用户态运行时间百分比
%nice
改变过优先级的进程的cpu使用率
%systemcpu在内核态运行时间百分比
%iowait‍cpu等待io操作占用时间百分比
%steal
管理程序为另一个虚拟进程提供服务等待虚拟cpu百分比
%idle
显示cpu空闲时间占用cpu总时间百分比

如果不设定采样次数,则会一直采样输出,直到ctrl+c退出,例如

# sar -q 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10)   10/19/2022   _x86_64_  (2 CPU)


02:46:29 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
02:46:30 PM         0       426      0.14      0.24      0.24         0
02:46:31 PM         0       426      0.14      0.24      0.24         0
02:46:32 PM         0       426      0.14      0.24      0.24         0
02:46:33 PM         0       426      0.13      0.24      0.23         0
02:46:34 PM         0       426      0.13      0.24      0.23         0
02:46:35 PM         3       426      0.13      0.24      0.23         0
^C


02:46:35 PM         2       426      0.13      0.24      0.23         0
Average:            1       426      0.13      0.24      0.23         0

-q 参数表示进程长度和CPU平均负载状态监控。输出项含义如下

runq-sz
运行队列的长度(等待运行的进程数)
plist-sz
进程列表中进程和线程数量
ldavg-1
最后1分钟cpu平均负重
ldavg-5最后5分钟cpu平均负重
ldavg-15最后15分钟cpu平均负重

3

sar 内存监控

查看内存和swap空间使用情况可以使用-r参数

# sar -r 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10)   10/19/2022   _x86_64_  (2 CPU)


02:59:50 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
02:59:51 PM     76468   1786564     95.90      2104    823456   3379964    181.42   1085912    440772         4
Average:        76468   1786564     95.90      2104    823456   3379964    181.42   1085912    440772         4
kbmemfree
不包括buffer和cache的内存空间
kbmemused
包括buffer和cache的内存空间
%memused
kbmemused占内存总量百分比
kbbuffers和kbcached
buffer和cache
kbcommit保证内存不溢出需要的内存值

sar -W 1 1 可以查看 SWAP 交换的统计信息

# sar -W 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10)   10/19/2022   _x86_64_  (2 CPU)




03:06:55 PM  pswpin/s pswpout/s
03:06:56 PM      0.00      0.00
Average:         0.00      0.00

4

sar 查看磁盘使用情况

# sar -b 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10)   10/19/2022   _x86_64_  (2 CPU)


03:10:48 PM       tps      rtps      wtps   bread/s   bwrtn/s
03:10:49 PM      1.00      0.00      1.00      0.00      8.00
Average:         1.00      0.00      1.00      0.00      8.00
tps
每秒物理设备的I/O传输总量
rtps
每秒从物理设备读取的数据总量
wtps每秒向物理设备写入的数据总量
bread/s
每秒从物理设备读取的数据总量,单位是块/s
bwrtn/s
每秒向物理设备写入的数据总量,单位是块/s
# sar -dp 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10)   10/19/2022   _x86_64_  (2 CPU)


03:14:22 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
03:14:23 PM       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:14:23 PM       sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:14:23 PM centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:14:23 PM centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00


Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

参数-p可以打印出sda、sdb等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0、dev253-0这种。

5

sar 查看网络情况

# sar -n DEV 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10)   10/19/2022   _x86_64_  (2 CPU)


03:17:09 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
03:17:10 PM      cni0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:17:10 PM vethfaed83a9      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:17:10 PM        lo     45.00     45.00      5.18      5.18      0.00      0.00      0.00
03:17:10 PM veth391e1aff      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:17:10 PM     ens33      1.00      1.00      0.06      0.18      0.00      0.00      0.00
03:17:10 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00


Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:         cni0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    vethfaed83a9      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo     45.00     45.00      5.18      5.18      0.00      0.00      0.00
Average:    veth391e1aff      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        ens33      1.00      1.00      0.06      0.18      0.00      0.00      0.00
Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • FACE:网络设备的名称;

  • rxpck/s:每秒钟接收到的包数目

  • txpck/s:每秒钟发送出去的包数目

  • rxbyt/s:每秒钟接收到的字节数

  • txbyt/s:每秒钟发送出去的字节数

  • rxcmp/s:每秒钟接收到的压缩包数目

  • txcmp/s:每秒钟发送出去的压缩包数目

  • txmcst/s:每秒钟接收到的多播包的包数目

6

总结

下面是 sar 命令的常用参数及功能描述

-A显示系统所有资源设备(CPU、内存、磁盘)的运行状况。
-u显示系统所有 CPU 在采样时间内的负载状态。(默认)
-P显示当前系统中指定 CPU 的使用情况。
-d显示系统所有硬盘设备在采样时间内的使用状态。
-r显示系统内存在采样时间内的使用情况。
-b‍显示缓冲区在采样时间内的使用情况。

-B

显示页交换速率在采样时间内的使用情况。
-v显示 inode 节点、文件和其他内核表的统计信息。
-n显示网络运行状态,此选项后可跟 DEV(显示网络接口信息)、EDEV(显示网络错误的统计数据)、SOCK(显示套接字信息)和 FULL(等同于使用 DEV、EDEV和SOCK)等,有关更多的选项,可通过执行 man sar 命令查看。
-q显示运行列表中的进程数、进程大小、系统平均负载等。
-R显示进程在采样时的活动情况。
-y显示终端设备在采样时间的活动情况。
-w显示系统交换活动在采样时间内的状态。
-W
显示swap交换活动在采样时间内的状态。
-f
显示sa文件记录信息中的系统状态。

点个赞

20915f2835c55e2918bfcbdbdd3b3b9c.gif

再走吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值