SAR 系统活动报告工具教程
SAR(System Activity Reporter)是 sysstat 工具包中最重要的命令,能够收集和报告系统的各项活动数据,包括 CPU 使用率、内存占用、磁盘 I/O、网络流量等。与实时监控工具不同,SAR 的最大优势在于它可以自动记录历史数据,让你回溯分析过去某个时间段的系统性能。在搬瓦工 VPS 上配置 SAR,可以帮你发现性能趋势和定位间歇性问题。
一、安装与配置
1.1 安装 sysstat
# Ubuntu / Debian
apt update
apt install sysstat -y
# CentOS / RHEL
yum install sysstat -y
1.2 启用数据采集
# 编辑配置文件
vi /etc/default/sysstat
# 将 ENABLED="false" 改为:
ENABLED="true"
# 启动并设置开机自启
systemctl enable sysstat
systemctl start sysstat
# 确认定时采集任务
cat /etc/cron.d/sysstat
默认每 10 分钟采集一次数据,数据文件存储在 /var/log/sysstat/ 或 /var/log/sa/ 目录中。
二、CPU 监控
# 实时查看 CPU 使用率(每 2 秒采集,共 5 次)
sar -u 2 5
# 查看今天的 CPU 历史数据
sar -u
# 查看指定日期的数据
sar -u -f /var/log/sysstat/sa25
# 查看每个 CPU 核心的使用率
sar -P ALL 2 5
# 查看特定 CPU 核心
sar -P 0 2 5
# 查看指定时间段
sar -u -s 09:00:00 -e 12:00:00
关键指标解读:
- %user:用户空间 CPU 使用率
- %system:内核空间 CPU 使用率
- %iowait:等待 I/O 的 CPU 时间(高值表示磁盘瓶颈)
- %idle:空闲 CPU 百分比
三、内存监控
# 查看内存使用情况
sar -r 2 5
# 查看今天的内存历史
sar -r
# 查看 Swap 使用情况
sar -S 2 5
# 查看内存分页统计
sar -B 2 5
关键指标:kbmemused(已用内存)、%memused(内存使用率)、kbswpused(已用 Swap)。
四、磁盘 I/O 监控
# 查看磁盘 I/O 统计
sar -d 2 5
# 带设备名称显示
sar -dp 2 5
# 查看块设备活动
sar -b 2 5
# 查看历史磁盘数据
sar -d -f /var/log/sysstat/sa25
关键指标:tps(每秒传输次数)、rd_sec/s(每秒读扇区数)、wr_sec/s(每秒写扇区数)、await(平均 I/O 等待时间)。
五、网络监控
# 查看网络接口流量
sar -n DEV 2 5
# 查看网络错误统计
sar -n EDEV 2 5
# 查看 TCP 连接统计
sar -n TCP 2 5
# 查看 Socket 统计
sar -n SOCK 2 5
# 查看特定接口的历史流量
sar -n DEV -s 08:00:00 -e 18:00:00 | grep eth0
关键指标:rxpck/s(每秒接收包数)、txpck/s(每秒发送包数)、rxkB/s(每秒接收 KB)、txkB/s(每秒发送 KB)。
六、进程与负载
# 查看系统负载和任务统计
sar -q 2 5
# 查看上下文切换和进程创建
sar -w 2 5
# 查看运行队列长度
sar -q -s 09:00:00 -e 18:00:00
七、数据导出与分析
# 导出为 CSV 格式
sadf -d /var/log/sysstat/sa25 -- -u > cpu_data.csv
# 导出为 JSON 格式
sadf -j /var/log/sysstat/sa25 -- -u > cpu_data.json
# 导出为 SVG 图表
sadf -g /var/log/sysstat/sa25 -- -u > cpu_graph.svg
# 生成综合报告
sar -A > /tmp/full_report.txt
# 指定日期范围的 CPU 报告
for i in $(seq 20 28); do
echo "=== Day $i ==="
sar -u -f /var/log/sysstat/sa${i} 2>/dev/null
done > weekly_cpu_report.txt
八、性能分析脚本
#!/bin/bash
# VPS 每日性能报告脚本
REPORT="/tmp/daily_perf_$(date +%Y%m%d).txt"
echo "====== 搬瓦工 VPS 每日性能报告 ======" > "$REPORT"
echo "日期: $(date)" >> "$REPORT"
echo "" >> "$REPORT"
echo "--- CPU 使用率 ---" >> "$REPORT"
sar -u | tail -1 >> "$REPORT"
echo "" >> "$REPORT"
echo "--- 内存使用 ---" >> "$REPORT"
sar -r | tail -1 >> "$REPORT"
echo "" >> "$REPORT"
echo "--- 磁盘 I/O ---" >> "$REPORT"
sar -dp | tail -5 >> "$REPORT"
echo "" >> "$REPORT"
echo "--- 网络流量 ---" >> "$REPORT"
sar -n DEV | grep eth0 | tail -1 >> "$REPORT"
echo "" >> "$REPORT"
echo "--- 系统负载 ---" >> "$REPORT"
sar -q | tail -1 >> "$REPORT"
cat "$REPORT"
九、调整采集频率
# 编辑 cron 任务文件
vi /etc/cron.d/sysstat
# 改为每 5 分钟采集一次(默认是 10 分钟)
*/5 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
# 数据保留天数配置
vi /etc/sysstat/sysstat
# 修改 HISTORY=28(默认保留 28 天)
总结
SAR 是 Linux 系统性能分析的基石工具,它的历史数据回溯能力是其他实时监控工具无法替代的。在搬瓦工 VPS 上启用 SAR 数据采集,可以帮你追踪性能趋势、定位间歇性问题。建议搭配 Iostat 磁盘性能监控 和 Vmstat 内存监控 一起使用。选购搬瓦工 VPS 请参考全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 循环折扣。