Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
如何配置和使用 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 手册页
