如何配置和使用 SAR 来监控 Amazon EC2 Linux 实例的性能指标?
我想配置系统活动报告器 (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## - 系统活动文本文件。
**注意:**sa 和 sar 文件名中的 # 号字符代表月中的某天。有关详细信息,请参阅 ArchLinux 网站上的文件。
您还可以收集磁盘统计信息以外的数据,例如分区和文件系统统计信息。
要更改 sadc 操作收集的数据,请完成以下步骤:
-
要使用 vi 文本编辑器访问 /etc/sysconfig/sysstat 文件,请运行以下命令:
vi /etc/sysconfig/sysstat
-
要将 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 更改为每分钟运行一次或每五分钟运行一次。当您将时间值更改为较短的时间间隔时,可能会出现可观察到的峰值。
要更改间隔,请完成以下步骤:
-
要修改 /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 行会在操作系统重启时重置计数器。
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 官方已更新 9 个月前
- AWS 官方已更新 4 个月前
- AWS 官方已更新 2 年前