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% 循环折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。