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

3 分钟阅读
0

我想配置系统活动报告器 (SAR) 并使用 SAR 命令来监控我的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例性能指标。

简短描述

使用 SAR 监控工具收集 CPU、内存和 I/O 使用情况的性能数据,并配置 SAR 以收集历史指标。

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

解决方法

查看并编辑配置文件

配置文件包含多个控制 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) 操作执行数据收集。有关详细信息,请参阅 ArchLinux 网站上的 SADC(8)。收集的数据格式为文本,包含在 /var/log/sa/ 目录下的 sar## 文件中。

sadc 操作包含下列操作:

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

/var/log/sa/ 目录包含以下两种类型的文件:

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

**注意:**sasar 文件名中的 # 号字符代表月中的某天。有关详细信息,请参阅 ArchLinux 网站上的文件

您还可以收集磁盘统计信息以外的数据,例如分区和文件系统统计信息。

要更改 sadc 操作收集的数据,请完成以下步骤:

  1. 要使用 vi 文本编辑器访问 /etc/sysconfig/sysstat 文件,请运行以下命令:

    vi /etc/sysconfig/sysstat
  2. 要将 SADC_OPTIONS-S Disk 更改为 -S XALL,请进行以下变更:

    SADC_OPTIONS=" -S XALL"

设置数据收集间隔

Amazon Linux 1 和 Amazon Linux 2

要查看 SAR 实用程序在 crontab 中运行以生成数据的脚本,请运行以下命令:

cat /etc/cron.d/sysstat

由于 cron 默认每 10 分钟运行一次,因此 SAR 也每 10 分钟生成一次数据。要让 SAR 间隔更短或更长时间生成一次数据,请编辑此时间值。以下示例命令显示了一个 crontab 文件,其中数据设置为每 10 分钟生成一次:

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

最佳实践是将 cron 更改为每分钟运行一次或每五分钟运行一次。当您将时间值更改为较短的时间间隔时,可能会出现可观察到的峰值。

要更改间隔,请完成以下步骤:

  1. 要修改 /etc/cron.d/sysstat 文件,请运行以下命令:

    vim /etc/cron.d/sysstat
  2. 要将时间间隔由 10 分钟更改为 5 分钟,请进行以下变更:

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

    注意:在前面的示例命令中,@reboot 行会在操作系统重启时重置计数器。

Amazon Linux 2023

要编辑单元文件并创建 drop-in 文件 /etc/systemd/system/sysstat-collect.timer.d/override.conf,请运行以下命令:

# systemctl edit sysstat-collect.timer

要添加条目,请进行以下变更:

### Editing /etc/systemd/system/sysstat-collect.timer.d/override.conf
### Anything between here and the comment below will become the new contents of the file

[Unit]
Description=Run system activity accounting tool every 1 minute

[Timer]
OnCalendar=
OnCalendar=*:00/1

### Lines below this comment will be discarded

在前面的命令中,空白的“OnCalendar=”行删除了先前的设置,然后创建了一个新设置。

要重新加载更改,请运行以下 systemctl daemon-reload 命令:

# systemctl daemon-reload

要检查计时器的状态,请运行以下命令:

# systemctl status sysstat-collect.timer
sysstat-collect.timer - Run system activity accounting tool every 1 minute
     Loaded: loaded (/usr/lib/systemd/system/sysstat-collect.timer; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/sysstat-collect.timer.d
             └─override.conf
     Active: active (running) since Thu 2023-07-20 08:49:55 UTC; 18s ago
      Until: Thu 2023-07-20 08:49:55 UTC; 18s ago
    Trigger: n/a
   Triggers: ● sysstat-collect.service

生成性能报告

CPU 使用率报告

要生成 CPU 使用率数据报告,请使用 sar 命令。以下示例命令每两秒生成五次使用率数据报告:

sar 2 5 -P 0

注意: 在前面的命令中,-P 表示单个 CPU 或核心。键入表示要生成统计信息的 CPU 或核心的数字。例如,1、2 或 3。或者,使用命令 -P ALL 显示所有 CPU 的统计数据。

内存统计报告

要生成内存统计报告,请使用 -r 选项。以下示例命令每两秒生成五次内存统计信息:

sar -r 2 5

块设备统计报告

要生成块设备统计报告,请使用 -d 选项。以下示例命令每两秒生成五次块设备统计信息。在以下示例中,-p 选项显示在 /dev 中显示的设备名称:

sar -d -p 2 5

网络统计报告

要生成网络统计报告,请使用 -n 选项。以下示例命令为特定类别生成统计信息:

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

注意: 上述命令可以生成 TCP、UDP、网络文件系统 (NFS) 或 ALL 的统计信息。

读取最新的日志文件

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

sar -f /var/log/sa

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

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

sar -f /var/log/sa/sa12

从日志文件中读取特定统计信息

内存统计信息

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

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

I/O 活动

要显示所有 I/O 活动的综合,请使用 -b 选项。以下示例命令显示了当月第 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 统计信息

要显示网络统计信息 CPU 统计信息,请使用 -P 选项。以下示例命令显示了 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

相关信息

Linux 网站上的 sar(1) -Linux 手册页

AWS 官方
AWS 官方已更新 7 个月前