如何配置和使用 SAR 来监控 EC2 Linux 实例的性能指标?
我想配置 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 操作分为两个部分:
- sa1 - 收集二进制数据并将其存储在系统活动每日数据文件中。
- 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
相关信息

相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 6 个月前
- AWS 官方已更新 4 年前