linux性能监控sar

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、sar是什么?
  • 二、安装sar
  • 三、主要命令使用
    • 整体CPU使用统计(-u)
    • 各个CPU使用统计(-P)
    • 内存使用情况统计(-r)
    • 整体I/O情况(-b)
    • 各个I/O设备情况(-d)
    • 网络统计(-n)
    • sar日志保存(-o)


前言

监视linux性能手段很多,sar是其中之一。

一、sar是什么?

sar可用于监控Linux系统性能,帮助我们分析性能瓶颈。sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数。

下文将说明如何使用sar获取以下性能分析数据:

整体CPU使用统计
各个CPU使用统计
内存使用情况统计
整体I/O情况
各个I/O设备情况
网络统计

 sar -h
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
主选项和报告:
        -b      I/O 和传输速率信息状况
        -B      分页状况
        -d      块设备状况
        -F [ MOUNT ]
                Filesystems statistics
        -H      交换空间利用率
        -I { <中断> | SUM | ALL | XALL }
                中断信息状况
        -m { <关键词> [,...] | ALL }
                电源管理统计信息
                关键字:
                CPU     CPU 频率
                FAN     风扇速度
\t\tFREQ\tCPU 平均时钟频率
                IN      输入电压
                TEMP    设备温度
\t\tUSB\t连接的USB 设备
        -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 设备状况

二、安装sar

yum install sar

三、主要命令使用

整体CPU使用统计(-u)

使用-u选项,sar输出整体CPU的使用情况,不加选项时,默认使用的就是-u选项。以下命令显示采样时间为1s,采样次数为2次,整体CPU的使用情况:

[root@localhost ~]# sar -u 1 2
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain)    2023年09月28日  _x86_64_        (16 CPU)

09时05分33秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
09时05分34秒     all      0.13      0.00      1.32      0.00      0.00     98.55
09时05分35秒     all      0.13      0.00      1.20      0.00      0.00     98.68
平均时间:     all      0.13      0.00      1.26      0.00      0.00     98.61
[root@localhost ~]#

以上主要的统计项的解析如下:

%user: 用户态下CPU使用时间比率

%system: 内核态下CPU使用时间比率

%iowait: CPU等待I/O占用时间比率

%idle: CPU空闲时间比率

各个CPU使用统计(-P)

“-P ALL”选项指示对每个内核输出统计信息:

[root@localhost ~]# sar -P ALL 1 1
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain)    2023年09月28日  _x86_64_        (16 CPU)

09时07分39秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
09时07分40秒     all      0.25      0.00      2.35      0.00      0.00     97.40
09时07分40秒       0      0.00      0.00      1.00      0.00      0.00     99.00
09时07分40秒       1      0.00      0.00      0.00      0.00      0.00    100.00
09时07分40秒       2      0.00      0.00      0.00      0.00      0.00    100.00
09时07分40秒       3      0.00      0.00      2.06      0.00      0.00     97.94
09时07分40秒       4      1.00      0.00      4.00      0.00      0.00     95.00
09时07分40秒       5      0.00      0.00      3.19      0.00      0.00     96.81
09时07分40秒       6      1.01      0.00      5.05      0.00      0.00     93.94
09时07分40秒       7      0.00      0.00      6.67      0.00      0.00     93.33
09时07分40秒       8      0.00      0.00      0.00      0.00      0.00    100.00
09时07分40秒       9      1.02      0.00     15.31      0.00      0.00     83.67
09时07分40秒      10      0.00      0.00      1.00      0.00      0.00     99.00
09时07分40秒      11      0.00      0.00      0.00      0.00      0.00    100.00
09时07分40秒      12      0.00      0.00      0.00      0.00      0.00    100.00
09时07分40秒      13      0.00      0.00      0.00      0.00      0.00    100.00
09时07分40秒      14      0.00      0.00      0.00      0.00      0.00    100.00
09时07分40秒      15      0.00      0.00      0.00      0.00      0.00    100.00

平均时间:     CPU     %user     %nice   %system   %iowait    %steal     %idle
平均时间:     all      0.25      0.00      2.35      0.00      0.00     97.40
平均时间:       0      0.00      0.00      1.00      0.00      0.00     99.00
平均时间:       1      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:       2      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:       3      0.00      0.00      2.06      0.00      0.00     97.94
平均时间:       4      1.00      0.00      4.00      0.00      0.00     95.00
平均时间:       5      0.00      0.00      3.19      0.00      0.00     96.81
平均时间:       6      1.01      0.00      5.05      0.00      0.00     93.94
平均时间:       7      0.00      0.00      6.67      0.00      0.00     93.33
平均时间:       8      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:       9      1.02      0.00     15.31      0.00      0.00     83.67
平均时间:      10      0.00      0.00      1.00      0.00      0.00     99.00
平均时间:      11      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:      12      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:      13      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:      14      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:      15      0.00      0.00      0.00      0.00      0.00    100.00

其中”CPU”列输出0,1,2,3指示对应的cpu核。也可针对单独一个内核显示,“-P 1”指示显示第二个内核的统计信息。

内存使用情况统计(-r)

使用-r选项可显示内存统计信息,以下命令显示以1秒为采样时间,显示2次内存信息:

[root@localhost ~]# sar -r  1 2
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain)    2023年09月28日  _x86_64_        (16 CPU)

09时09分35秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
09时09分36秒    175148  16072592     98.92         0    935160    332972      1.76    100184    858640     19264
09时09分37秒    173552  16074188     98.93         0    938888    332972      1.76    100184    861844     19264
平均时间:    174350  16073390     98.93         0    937024    332972      1.76    100184    860242     19264

上面输出的内存单位为”kb”,各项的名称可自解析其含义。

整体I/O情况(-b)

使用-b选项,可以显示磁盘I/O的使用情况:

[root@localhost ~]# sar -b 1 2
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain)    2023年09月28日  _x86_64_        (16 CPU)

09时10分47秒       tps      rtps      wtps   bread/s   bwrtn/s
09时10分48秒    206.00    206.00      0.00 206136.00      0.00
09时10分49秒    223.00    223.00      0.00 228352.00      0.00
平均时间:    214.50    214.50      0.00 217244.00      0.00

以上各列的含义为:

tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

rtps: 每秒向磁盘设备的读请求次数

wtps: 每秒向磁盘设备的写请求次数

bread: 每秒从磁盘读的bytes数量

bwrtn: 每秒向磁盘写的bytes数量

各个I/O设备情况(-d)

使用-d选项可以显示各个磁盘的统计信息,再增加-p选项可以以sdX的形式显示设备名称:

[root@localhost ~]# sar -d -p 1 1
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain)    2023年09月28日  _x86_64_        (16 CPU)

09时11分35秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
09时11分36秒       sda     28.00  17928.00      0.00    640.29      0.18      7.61      0.79      2.20
09时11分36秒 centos-root     16.00  16384.00      0.00   1024.00      0.17     13.19      1.38      2.20
09时11分36秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09时11分36秒 centos-home      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
平均时间:       sda     28.00  17928.00      0.00    640.29      0.18      7.61      0.79      2.20
平均时间: centos-root     16.00  16384.00      0.00   1024.00      0.17     13.19      1.38      2.20
平均时间: centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: centos-home      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

以上输出中DEV列以sdX的方式显示了设备名称。

网络统计(-n)

使用-n选项可以对网络使用情况进行显示,-n后接关键词”DEV”可显示eth0、eth1等网卡的信息:

[root@localhost ~]# sar -n DEV 1 1
Linux 3.10.0-1127.el7.x86_64 (localhost.localdomain)    2023年09月28日  _x86_64_        (16 CPU)

09时13分33秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
09时13分34秒 enp0s10f0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09时13分34秒      eth0 139304.00   6997.00 200148.54 245070.84      0.00      0.00      0.00
09时13分34秒        lo      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
平均时间: enp0s10f0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:      eth0 139304.00   6997.00 200148.54 245070.84      0.00      0.00      0.00
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

以上主要输出含义如下:

IFACE: 网络接口名称

rxpck/s: 每秒收包的数量

txpck/s: 每秒发包的数量

rxkB/s: 每秒收的数据量(kB为单位)

txkB/s: 每秒发的数据量(kB为单位)

sar日志保存(-o)

最后讲一下如何保存sar日志,使用-o选项,我们可以把sar统计信息保存到一个指定的文件,对于保存的日志,我们可以使用-f选项读取:

linux:~ # sar -n DEV 1 10 -o sar.out
linux:~ # sar -d 1 10 -f sar.out

你可能感兴趣的:(linux,运维,服务器)