如何配置和使用 SAR 来监控 EC2 Linux 实例的性能指标?

上次更新日期:2021 年 4 月 13 日

我想配置 System Activity Reporter (SAR) 并使用 SAR 命令来监控 Amazon Elastic Compute Cloud (Amazon EC2) 实例的性能指标。该如何操作?

简短描述

SAR 监控工具允许您根据需要收集 CPU、内存和 I/O 使用情况的性能数据。您可以将 SAR 配置为收集历史指标。

解决方法

安装 SAR

SAR 是 sysstat 软件包的一部分,默认情况下在较新的 Linux 发行版中可能不可用。有关详细安装说明,请参阅如何为运行 Amazon Linux、RHEL、CentOS 或 Ubuntu 的 EC2 实例配置 ATOP 和 SAR 监控工具?

配置概述

安装后,您可以查看和编辑配置文件 /etc/sysconfig/sysstat。配置文件包含以下默认值:
  • HISTORY=28 - 此参数确定 SAR 将性能日志文件保留多长时间。默认值为 28 天。
  • COMPRESSAFTER=31 - 此参数确定 SAR 在多少天后压缩文件。默认值为 31 天。
    注意:如果将配置文件设置为将日志文件保留超过 28 天,则 SAR 会将每个月的文件保留在单独的目录中。
  • SA_DIR=/var/log/sa - SAR 将日志文件保留到此位置。
  • ZIP="bzip2" - 这是包含压缩日志文件的默认 zip 文件。如果要将文件保留超过 31 天,请确保启用压缩功能。压缩文件在磁盘上占用的空间最小。

sadc(系统活动数据收集器)操作将会执行数据收集。收集的数据将以文本格式写入,并包含在 sar## 文件的 /var/log/sa/ 目录下。

sadc 操作分为两个部分:

  1. sa1 - 收集二进制数据并将其存储在系统活动每日数据文件中。
  2. sa2 - 将每日报告写入 /var/log/sa 目录。

/var/log/sa/ 目录包含以下两组文件:

  • sa# - 系统活动二进制数据文件。
  • sar## - 系统活动报告文件。

注意:## 表示当月中的某一天。

您可以收集磁盘统计数据以外的数据,例如分区和文件系统统计统计数据要更改收集的数据,请执行以下操作:

1.    使用文本编辑器(如 vi 编辑器)访问 /etc/sysconfig/sysstat 文件:

vi /etc/sysconfig/sysstat

2.    将 SADC_OPTIONS-S 磁盘复制到 -S XALL

SADC_OPTIONS=" -S XALL"

设置数据收集间隔

运行以下命令以查看 SAR 实用工具当前在 crontab 中运行以生成数据的脚本:

cat /etc/cron.d/sysstat

默认情况下,SAR 每 10 分钟生成一次数据。这是由于 cron 每 10 分钟运行一次。您可以编辑此时间,以允许 SAR 以较短或较长的间隔生成数据。以下是 crontab 文件的示例,它显示已将 SAR 设置为每 10 分钟生成一次数据:

*/10 * * * * root /usr/lib64/sa/sa1 1 1

最佳做法是将 cron 更改为每隔 5 分钟或 1 分钟运行一次。通过更改为较短的间隔,您可以捕获需要观察峰值或要求每分钟监控一次的情况。

要更改间隔,请执行以下操作:

1.    访问 /etc/cron.d/sysstat 文件:

vim /etc/cron.d/sysstat

将运行时间从 10 更改为 5:

@reboot /usr/lib64/sa/sa1 --boot
*/5 * * * * root /usr/lib64/sa/sa1 1 1

注意:在上一个示例中,@reboot 行将会在操作系统重新启动时重置计数器。这是可选操作,但它是最佳做法。

用于根据需要生成性能报告的示例命令

CPU 使用情况报告

使用 sar 命令可生成 CPU 使用情况数据报告。以下示例命令每 2 秒生成 5 次使用情况数据报告。在以下命令中,-P 表示单个 CPU 或内核。使用 0、1、2、3 等数字指示要为其生成统计数据的 CPU 或内核。或者,您可以使用命令 -P ALL 显示所有 CPU 的统计数据。

sar 2 5 -P 0

内存统计数据报告

使用 -r 选项可生成内存统计数据报告。以下示例命令每 2 秒生成 5 次内存统计数据:

sar -r 2 5

块储存设备统计数据报告

使用 -d 选项可生成块储存设备统计数据报告。以下示例命令每 2 秒生成 5 次块储存设备统计数据。在以下示例中,-p 选项显示在 /dev 中显示的设备名称:

sar -d -p 2 5

网络统计数据报告

使用 -n 选项可生成网络统计数据报告。您可以为特定实体(如 TCP、UDP、NFS 等)或 ALL 生成统计数据,如以下示例所示:

sar -n TCP 2 5
sar -n UDP 2 5
sar -n ALL 2 5

读取最新的日志文件

运行 sar 命令可从 /var/log 下的最新日志文件中提取详细信息。要读取完整文件,请使用 -f 选项,如以下示例所示:

sar -f /var/log/sa

提取特定日期的日志详细信息

日志文件将按天保存。如果要提取特定日期的详细信息,请使用 -f 选项获取该日期的相关 sa 文件。例如,以下命令显示包含当月第 12 天数据的日志文件中的所有数据:

sar -f /var/log/sa/sa12

从日志文件中读取特定统计数据

内存统计数据

使用 -r 选项可读取所有内存统计数据。以下示例命令显示当月第 12 天生成的日志文件中的所有内存统计数据:

sar -f /var/log/sa/sa12 -r

I/O 活动

使用 -b 选项可显示所有组合的 I/O 活动。以下示例命令显示当月第 12 天生成的日志文件中的所有 I/O 活动。

sar -f /var/log/sa/sa12 -b

块储存设备统计数据

使用 -dp 选项可显示块储存设备统计数据。以下示例命令显示当月第 12 天生成的日志文件中的块储存设备统计数据。

sar -f /var/log/sa/sa12 -dp

网络统计数据

使用 -n 选项可显示网络统计数据。以下示例命令显示当月第 12 天生成的日志文件中的所有网络统计数据:

sar -f /var/log/sa/sa12 -n ALL

CPU 统计数据

使用 -P 选项可显示 CPU 统计数据。以下示例命令显示 CPU 0 的 CPU 统计数据。

sar -f /var/log/sa/sa12 -P 0

查看特定时间段的统计数据

使用 -s-e 选项可指定开始时间和结束时间。输入的时间必须采用 24 小时格式。默认结束时间为 18:00。以下示例命令显示当月第 30 天 2:00 至 5:00 之间生成的日志文件中的块储存设备统计数据。

sar -f /var/log/sa/sa30 -dp -s 02:00:00 -e 05:00:00

这篇文章对您有帮助吗?


您是否需要账单或技术支持?