概述
sar
命令来自英文词组**“System activity reporter”**的缩写,其功能是用于统计系统运行状态。是一个系统活动报告工具,用于收集、报告和保存系统活动信息。它可以帮助系统管理员监控和分析系统性能,识别潜在的性能瓶颈或问题。
- 实时监控系统性能:定期报告系统活动。
- 分析历史数据:读取系统日志文件(通常是 /var/log/sa/)来分析过去的性能数据。
- 识别性能瓶颈:通过报告的统计数据,帮助管理员定位问题。
依赖
注意:使用这些命令前,请确保已安装sysstat软件包(一般都已经安装):
# Debian/Ubuntu
apt install sysstat# RHEL/CentOS
yum install sysstat
命令
语法
sar [选项] [间隔时间] [报告次数]
- 选项:指定要报告的系统活动类型(如 -u、-r、-n DEV 等)。
- 间隔时间:两次报告之间的间隔时间(秒)。
- 报告次数:总共报告的次数。
选项
CPU 相关
-u:报告 CPU 使用情况(用户、系统、空闲等)。
-c:报告上下文切换。
-b:报告缓冲区活动。
-q:报告队列长度和负载。内存相关
-r:报告内存和交换空间的使用情况。
-S:报告交换空间的使用情况。
-R:报告内存统计信息。网络相关
-n DEV:报告网络接口活动。
-n NFS:报告 NFS 客户端活动。
-n NFSD:报告 NFS 服务器活动。
-n SOCK:报告套接字统计信息。
-n IP:报告 IP 流量统计信息。
-n ICMP:报告 ICMP 流量统计信息。
-n TCP:报告 TCP 流量统计信息。
-n UDP:报告 UDP 流量统计信息。磁盘 I/O 相关
-d:报告磁盘设备的 I/O 活动。
-b:报告缓冲区活动。其他
-w:报告交换活动。
-y:报告 TTY 设备活动。
-H:报告 Hugepages 使用情况。
-I:报告中断统计信息。
-m:报告电源管理统计信息(如 CPU 频率、温度等)
示例
1. 基本用法
# 每隔3秒采样一次,共采样10次
sar 3 10# 显示当天从零点开始的所有统计信息
sar# 指定输出文件
sar -o output.file 2 5# 从指定文件读取数据
sar -f /var/log/sa/sa01
2. CPU使用情况监控
# 显示CPU使用情况,每2秒采样一次,共5次
sar -u 2 5# 显示每个CPU核心的使用情况
sar -P ALL 2 5# 只查看指定CPU核心(如CPU0)的情况
sar -P 0 2 5# 查看过去的CPU使用记录(例如10月20日)
sar -u -f /var/log/sa/sa20# 显示CPU使用率的详细信息(包括软中断、硬中断等)
sar -u ALL 2 5
3. 内存使用情况
# 显示内存使用情况
sar -r 2 5# 显示详细的内存使用统计
sar -R 2 5# 显示swap使用情况
sar -S 2 5# 显示页面交换统计
sar -W 2 5# 显示缺页错误和页面交换活动
sar -B 2 5
4. 磁盘I/O监控
# 显示磁盘I/O活动
sar -b 2 5# 显示各个磁盘的详细统计
sar -d 2 5# 显示inode、文件和其他内核表的统计信息
sar -v 2 5# 监控块设备活动
sar -p 2 5# 显示每个设备的队列长度和等待时间
sar -d -p 2 5
5. 网络监控
# 显示网络接口统计
sar -n DEV 2 5# 显示TCP连接统计
sar -n TCP 2 5# 显示UDP使用统计
sar -n UDP 2 5# 显示所有网络统计信息
sar -n ALL 2 5# 显示网络错误统计
sar -n EDEV 2 5# 显示NFS客户端活动
sar -n NFS 2 5
6. 查看特定时间段的统计数据
# 查看指定时间范围内的CPU使用情况
sar -u -s 12:00:00 -e 13:00:00# 从特定日期的日志文件中提取数据
sar -r -f /var/log/sa/sa15 -s 10:00:00 -e 11:00:00# 只显示某天上午时段的网络数据
sar -n DEV -f /var/log/sa/sa01 -s 09:00:00 -e 12:00:00# 查询指定时间段内的 CPU 和内存使用情况统计数据
sar -u -r -s 11:35:00 -e 12:05:00-u:CPU 使用情况统计数据
-r:内存使用情况统计数据
-s 11:35:00:指定开始时间为 11:35:00
-e 12:05:00:指定结束时间为 12:05:00# 特定日期的数据,查询指定时间段内的 CPU 和内存使用情况统计数据
sar -u -r -s 11:35:00 -e 12:05:00 -f /var/log/sa/sa日期
7. 其他实用示例
# 查看运行队列和平均负载
sar -q 2 5# 显示任务创建和系统切换活动
sar -w 2 5# 监控上下文切换
sar -w 1 10# 将收集的所有数据报告保存并使用美观的格式输出
LANG=C sar -A > sar_report.txt# 显示特定日期所有活动的小时报告
sar -A -f /var/log/sa/sa01# 监控电源管理统计
sar -m ALL 2 5