sar命令详解
sar(System Activity Reporter)是Linux系统中用于收集、报告和分析系统活动信息的工具,属于sysstat软件包的一部分。它能够监控CPU、内存、磁盘I/O、网络、进程等系统资源的使用情况,常用于性能分析和故障排查。
安装与配置
-
安装sysstat:
# Debian/Ubuntu sudo apt-get install sysstat # CentOS/RHEL sudo yum install sysstat # Fedora sudo dnf install sysstat -
启用数据收集:
- 编辑
/etc/default/sysstat,设置ENABLED="true"。 - 重启服务:
sudo systemctl restart sysstat
sar默认每10分钟收集一次数据,日志存储在/var/log/sysstat/或/var/log/sa/(如sa21表示每月21日的日志)。 - 编辑
常用命令选项
| 选项 | 说明 |
|---|---|
-u |
CPU使用率(默认显示) |
-r |
内存和交换空间统计 |
-b |
磁盘I/O(读写速率、传输量) |
-n DEV |
网络设备流量(收发包、带宽) |
-q |
系统负载和进程队列长度 |
-W |
页面交换(Swap)统计 |
-A |
显示所有报告 |
-f <文件> |
读取指定历史数据文件(如 sar -f /var/log/sa/sa10) |
-s HH:MM |
指定开始时间 |
-e HH:MM |
指定结束时间 |
实用示例
- 实时CPU使用率(每2秒采样,共5次):
sar -u 2 5

- 内存使用统计:
sar -r 1 3 # 每秒采样,共3次

- 磁盘I/O监控:
sar -b 1 5 # 每秒采样,共5次

- 网络接口流量:
sar -n DEV 1 3 # 查看所有网络接口

- 查看历史数据(如查看10号的日志):
sar -u -f /var/log/sa/sa10

- 生成综合报告:
sar -A > system_report.txt # 包含所有统计信息
输出字段解释
-
CPU利用率(
-u):%user:用户级程序占用的CPU百分比。%system:内核程序占用的CPU百分比。%idle:空闲CPU百分比。
-
内存(
-r):kbmemfree:空闲内存量(KB)。kbmemused:已使用内存量(KB)。%memused:内存使用率。
-
磁盘I/O(
-b):tps:每秒传输请求次数。rtps:每秒读请求次数。wtps:每秒写请求次数。
常见问题
-
无历史数据:
- 确认
sysstat服务是否正常运行:systemctl status sysstat。 - 检查
/etc/cron.d/sysstat是否启用数据收集。
- 确认
-
权限不足:
- 使用
sudo执行命令,或确保用户有权限读取/var/log/sa/下的文件。
- 使用
进阶用法
-
导出为CSV:
sadf -d <sar文件> -- -u > cpu_report.csv -
结合时间过滤:
sar -u -s 10:00:00 -e 12:00:00 -f /var/log/sa/sa10 -
监控特定进程:
sar -P ALL # 查看每个CPU核心的统计
sar 是强大的系统监控工具,通过灵活的参数组合,可以帮助管理员全面掌握系统运行状态。结合 watch、grep 或脚本处理,可实现自动化监控和告警。
浙公网安备 33010602011771号