详解Linux sar命令:收集系统性能数据

  • Post category:Linux

Linux sar命令详解

1. 简介

sar 命令全称是System Activity Reporter,它是一个非常强大的系统监控工具。该命令可以很好地监控系统的 CPU、内存、I/O、网络等性能指标,也可以生成日志和报告。

2. 安装

sar 命令属于sysstat软件包的一部分,使用sar命令前需要确认sysstat已经安装。

# Debian/Ubuntu
sudo apt-get install sysstat

# RedHat/Centos/Fedora
sudo yum install sysstat

3. 使用方法

3.1 基本使用

sar 命令的基本格式为:

sar [ options ] [ -u ] [ [ -s ] start_time ] [ [ -e ] end_time ]

其中,-u 表示显示 CPU 利用率的信息。start_time 和 end_time 表示 sar 的时间间隔。如果没有指定 start_time,系统默认从当天开始的00:00:00开始。如果没有指定 end_time,系统默认到当前时间。

3.2 查看 CPU 利用率信息

sar -u 5 5

该命令表示每5秒显示一条CPU 活动统计数据,一共显示5条。使用sar命令后输出示例如下:

Linux 5.11.0-27-generic (zry-UBNT)     2021年09月14日     _x86_64_        (4 CPU)

09:39:20        CPU     %user     %nice   %system   %iowait    %steal     %idle
09:39:25        all      1.98      0.00      0.78      0.00      0.00     97.24
09:39:30        all      0.75      0.00      0.25      0.00      0.00     99.00
09:39:35        all      1.25      0.00      1.50      0.00      0.00     97.25
09:39:40        all      1.00      0.00      0.50      0.00      0.00     98.50
09:39:44        all      0.50      0.00      0.75      0.00      0.00     98.75

其中,%user 表示用户占用 CPU 的时间百分比;%system 表示系统占用 CPU 的时间百分比;%idle 表示 CPU 空闲的时间百分比。

3.3 查看内存信息

sar -r 5 5

该命令表示每5秒显示一条内存统计数据,一共显示5条。输出示例如下:

Linux 5.11.0-27-generic (zry-UBNT)     2021年09月14日     _x86_64_        (4 CPU)

09:45:15 kbmemfree kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
09:45:20 10398680 10398680  2704016     20.59     34720   2382364   3762024     28.91   1386432    997852        88
09:45:25 10370512 10370512  2733184     20.84     34720   2384264   3762024     28.91   1389752    998024        92
09:45:30 10391856 10391856  2711840     20.68     34720   2385448   3762024     28.91   1388488    998780         0
09:45:35 10368972 10368972  2733724     20.85     34720   2384352   3762024     28.91   1390916    998400         0
09:45:40 10395264 10395264  2705432     20.62     34720   2384824   3762024     28.91   1386096    998368         0

其中,kbmemfree 表示系统空闲内存量,%memused 表示内存占用率。

3.4 查看网络信息

sar -n DEV 5

该命令表示每5秒显示一条网络统计数据。输出示例如下:

Linux 5.11.0-27-generic (zry-UBNT)     2021年09月14日     _x86_64_        (4 CPU)

09:56:57        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
09:56:58          eth0     30.21     32.01      3.89      3.94      0.00      0.00      0.18      0.04
09:56:58            lo      0.28      0.28      0.05      0.05      0.00      0.00      0.00      0.00
09:56:58        ifb0.1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:56:58        ifb1.1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:56:58     veth5a6c5f      0.05      0.04      0.00      0.00      0.00      0.00      0.00      0.00
09:56:58     veth60ecb16     44.49     47.61      6.57      6.20      0.00      0.00      0.00      0.01
09:56:58     veth68bf767     44.49     47.61      6.57      6.19      0.00      0.00      0.00      0.01

其中,rxpck/s 表示每秒钟接收的数据包数;txpck/s 表示每秒钟发送的数据包数;rxkB/s 表示每秒钟接收的数据量;txkB/s 表示每秒钟发送的数据量。

3.5 参数说明

  • -s YYYY-MM-DD HH:MM:SS 指定开始时间
  • -e YYYY-MM-DD HH:MM:SS 指定结束时间
  • -A 显示全部活动列
  • -b 显示 Linux 系统的的 I/O 统计数据
  • -B 显示 PCMCIA dagger 中心的统计数据
  • -c 显示自从系统引导后的系统调用统计数据
  • -d 显示 disk I/O 性能统计数据
  • -g 显示网格(目录)的统计信息
  • -h 显示帮助信息
  • -I 显示网络设备中断统计信息
  • -I SUM 显示所有中断的统计信息
  • -k 显示内核内存统计信息
  • -m 显示内存和交换分区统计信息
  • -n DEV 显示网络设备的统计数据
  • -P ALL 显示每个 CPU 的使用率
  • -r 显示 CPU 的状态统计数据
  • -R 显示内存页的状态统计
  • -S 显示 Swap 分区统计数据
  • -t 显示任务调度器和 CPU 的状态统计信息
  • -u 显示 CPU 利用率统计信息
  • -v 显示内存的使用情况
  • -w 显示系统磁盘交换统计数据
  • -W 显示所有等待进程的资源统计信息
  • -y 显示 TTY 各个参数的统计信息

可以通过 man sar 查看完整参数列表。

总结

sar 命令可以很好地监控系统的各项性能指标,由于它的数据种类非常丰富,因此需要根据需求选择合适的参数进行显示。