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