菜鸟科技网

SAR命令怎么安装?

sar (System Activity Reporter) 是 Linux 系统中一个非常强大的性能监控工具,它属于 sysstat 软件包。sysstat 包含了一系列用于收集、报告和保存系统活动信息的工具,sar 是其中最核心的一个。

SAR命令怎么安装?-图1
(图片来源网络,侵删)

如何安装 sar 命令

sar 命令通常包含在名为 sysstat 的软件包中,不同的 Linux 发行版使用不同的包管理器来安装软件。

在 Debian / Ubuntu / Mint 等系统上

使用 apt 包管理器。

# 更新软件包列表
sudo apt update
# 安装 sysstat 包
sudo apt install sysstat

安装过程中,系统可能会提示你配置 sysstat,通常选择“是”即可,它会自动设置数据收集任务。

在 CentOS / RHEL / Fedora / AlmaLinux / Rocky Linux 等系统上

使用 yumdnf 包管理器。

SAR命令怎么安装?-图2
(图片来源网络,侵删)
# 对于 CentOS 7, RHEL 7, Fedora 等较新版本
sudo dnf install sysstat
# 对于 CentOS 6, RHEL 6 等较老版本
sudo yum install sysstat

在 Arch Linux 系统上

使用 pacman 包管理器。

sudo pacman -S sysstat

在 openSUSE 系统上

使用 zypper 包管理器。

sudo zypper install sysstat

安装后如何启用和配置

安装完成后,sysstat 服务通常默认是启用并自动运行的,它会按照配置(通常是每10分钟)在后台收集一次系统性能数据,并将数据保存在 /var/log/sa/ 目录下。

检查 sysstat 服务状态

你可以检查 sysstat 的数据收集服务(sysstatsysstat-collect)是否正在运行。

# 对于使用 systemd 的系统 (Ubuntu 16.04+, CentOS 7+)
sudo systemctl status sysstat
# 对于使用 SysVinit 的系统 (较老的系统)
sudo service sysstat status

如果看到 active (running),说明服务正在正常运行。

手动启用或启动服务

如果服务没有运行,你可以手动启动并设置为开机自启。

# 启动服务
sudo systemctl start sysstat
# 设置为开机自启
sudo systemctl enable sysstat

配置文件位置

主要的配置文件是 /etc/sysstat/sysstat,你可以在这个文件中修改数据收集的频率、保存的天数等。

修改 HISTORYSAVEDAYS 来调整数据保留的天数:

sudo nano /etc/sysstat/sysstat

找到下面这两行并修改:

# How long to keep daily data files (in days).
HISTORY = 7
# Compress saNN data files? (0 = no, 1 = yes)
COMPRESSAFTER = 7

修改后保存文件,sysstat 服务会自动应用新配置。


sar 命令的基本使用

sar 命令的强大之处在于它可以查看历史数据实时数据

查看实时数据

使用 -u 选项查看 CPU 使用率,r 表示实时刷新(类似 top 命令)。

# 每2秒刷新一次,共刷新5次,查看CPU使用率
sar -u 2 5

输出示例:

Linux 5.4.0-91-generic (ubuntu-server)  2025-10-27  _x86_64_    (2 CPU)
10:30:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:30:03 AM     all      5.42      0.00      1.25      0.42      0.00     92.91
10:30:05 AM     all      3.54      0.00      1.20      0.40      0.00     94.86
10:30:07 AM     all      4.17      0.00      1.08      0.21      0.00     94.54
10:30:09 AM     all      3.96      0.00      1.17      0.00      0.00     94.87
Average:        all      4.27      0.00      1.18      0.26      0.00     94.05
  • %user: 用户态进程占用 CPU 的百分比。
  • %system: 内核态进程占用 CPU 的百分比。
  • %iowait: 等待 I/O 操作(如磁盘读写)完成的时间百分比。
  • %steal: 虚拟化环境中, hypervisor 为另一个虚拟机服务而偷走的时间。
  • %idle: CPU 空闲的时间百分比。

查看历史数据

这是 sar 最常用的功能,它会读取 /var/log/sa/ 目录下的二进制数据文件。

# 查看昨天的 CPU 使用率报告
sar -u -f /var/log/sa/sa$(date -d yesterday +%d)
# 更简单的方式,直接使用 -s 和 -e 指定时间范围
# 查看今天上午10点到11点的CPU使用率
sar -u -s 10:00:00 -e 11:00:00

常用选项和查看其他指标

选项 功能 示例
-b I/O 和传输速率统计 sar -b
-r 内存使用情况 sar -r (查看 kbmemfree, kbmemused, %memused 等)
-B 页面统计(内存换入换出) sar -B
-d 块设备(磁盘)活动 sar -d -p (查看设备名如 sda, sdb 的读写)
-n 网络统计 sar -n DEV (查看网络接口流量)
sar -n EDEV (查看网络接口错误)
-q 队列长度和负载平均值 sar -q
-P {ALL \| CPU_NUM} 查看特定 CPU 核心的数据 sar -u -P 0 (查看第一个CPU核心)
sar -u -P ALL (查看所有CPU核心)

列出所有可用的报告

如果你不确定某个数据文件里有什么,可以使用 -A 选项来显示所有可用的报告。

# 查看昨天所有历史数据的汇总报告
sar -A -f /var/log/sa/sa$(date -d yesterday +%d)

常见问题排查

问题:sar: /var/log/sa/saXX: No such file or directory

原因sysstat 服务没有运行,或者数据文件被清理了。 解决方法

  1. 确保 sysstat 服务正在运行:sudo systemctl status sysstat
  2. 如果服务未运行,启动它:sudo systemctl start sysstat
  3. 等待至少10分钟,让服务收集一次数据,然后再尝试使用 sar

问题:sar 输出为空或只有当天的数据

原因:历史数据文件被删除了,或者 sysstat 配置中保留的天数太短。 解决方法

  1. 检查 /var/log/sa/ 目录下是否有数据文件。
  2. 检查配置文件 /etc/sysstat/sysstat 中的 HISTORY 值,确保它大于你想查询的天数。

  1. 安装sar 命令在 sysstat 软件包中,使用你发行版的包管理器(apt, yum, dnf 等)进行安装。
  2. 启用:安装后,sysstat 服务通常自动运行,负责定期收集数据。
  3. 使用
    • 实时监控sar -u 2 5 (每2秒刷新5次)。
    • 历史数据sar -u -f /var/log/sa/saDD (DD是日期)。
    • 查看不同指标:使用 -b (I/O), -r (内存), -d (磁盘), -n (网络) 等选项。
  4. 核心优势sar 最大的价值在于它能分析过去某个时间点的系统性能,对于排查历史性能问题非常有帮助。
分享:
扫描分享到社交APP
上一篇
下一篇