AWS Compute Optimizer 分析的指标 - AWS Compute Optimizer

AWS Compute Optimizer 分析的指标

选择加入后,AWS Compute Optimizer 会分析过去 14 天内运行的资源的规格(例如 vCPU、内存或存储)以及 CloudWatch 指标。如果激活增强型基础设施指标建议首选项,则 AWS Compute Optimizer 会分析长达 93 天期间的资源。

分析可能需要长达 24 小时才能完成。分析完成后,结果会显示在 Compute Optimizer 控制台的控制面板页面上。有关更多信息,请参阅使用 AWS Compute Optimizer 控制面板

注意
  • 为生成针对 Amazon EC2 实例、自动扩缩组、Amazon EBS 卷、Lambda 函数和商用软件许可证的建议,Compute Optimizer 在回顾期内使用每 5 分钟时间间隔内的最大利用率点。为生成针对 Fargate 上 ECS 服务的建议,Compute Optimizer 使用每 1 分钟时间间隔内的最大利用率点。

  • AWS 可能会使用利用率数据来帮助提高 Compute Optimizer 建议的整体质量。要使 AWS 停止使用利用率数据,请联系 AWS Support

EC2 实例指标

为 EC2 实例分析的指标

Compute Optimizer 会分析 EC2 实例(包括属于自动扩缩组的实例)的以下 CloudWatch 指标。

指标 描述
CPUUtilization

正在实例上使用的已分配 EC2 计算单位的百分比。此指标确定在实例上运行应用程序所需的处理能力。

MemoryUtilization

采样期间使用的内存百分比。此指标确定在实例上运行应用程序所需的内存。

内存利用率指标是针对以下资源分析的:

GPUUtilization

当前正在实例上使用的已分配 GPU 的百分率。

注意

要允许 Compute Optimizer 分析实例的 GPU 利用率指标,请在实例上安装 CloudWatch 代理。有关更多信息,请参阅使用 CloudWatch 代理启用 NVIDIA GPU 利用率

GPUMemoryUtilization

当前正在实例上使用的总 GPU 内存的百分率。

NetworkIn

实例在所有网络接口上接收的字节数。此指标用于确定流向实例的传入网络流量。

NetworkOut

实例在所有网络接口上发送的字节数。此指标用于确定来自实例的传出网络流量。

NetworkPacketsIn

实例接收的数据包的数量。

NetworkPacketsOut

实例发送的数据包的数量。

DiskReadOps

实例的实例存储卷的每秒读取操作数。

DiskWriteOps

实例的实例存储卷的每秒写入操作数。

DiskReadBytes

实例的实例存储卷的每秒读取字节数。

DiskWriteBytes

实例的实例存储卷的每秒写入字节数。

VolumeReadBytes

附加到实例的 EBS 卷的每秒读取字节数。在控制台中以 KiB 为单位显示。

VolumeWriteBytes

附加到实例的 EBS 卷的每秒写入字节数。在控制台中以 KiB 为单位显示。

VolumeReadOps

附加到实例的 EBS 卷的每秒读取操作数。

VolumeWriteOps

附加到实例的 EBS 卷的每秒写入操作数。

有关实例指标的更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的列出实例的可用 CloudWatch 指标。有关 EBS 卷指标的更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的 Amazon EBS 的 Amazon CloudWatch 指标

使用 CloudWatch 代理启用内存利用率

要使 Compute Optimizer 分析实例的内存利用率指标,请在实例上安装 CloudWatch 代理。使 Compute Optimizer 分析实例的内存利用率数据,可以对数据进行额外衡量,从而进一步改进 Compute Optimizer 的建议。有关安装 CloudWatch 代理的更多信息,请参阅《Amazon CloudWatch 用户指南》中的使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标和日志

在 Linux 实例上,Compute Optimizer 会分析 CWAgent 命名空间中的 mem_used_percent 指标或 System/Linux 命名空间中的旧 MemoryUtilization 指标。在 Windows 实例上,Compute Optimizer 会分析 CWAgent 命名空间中的 Available MBytes 指标。如果在 CWAgent 命名空间中同时配置了 Available MBytesMemory % Committed Bytes In Use 指标,则 Compute Optimizer 会选择 Available MBytes 作为主要内存指标来生成建议。

注意
  • 建议您将 CWAgent 命名空间配置为使用 Available MBytes 作为 Windows 实例的内存指标。

  • Compute Optimizer 还支持 Available KBytesAvailable Bytes 指标,并且在生成针对 Windows 实例的建议时,优先考虑这两个指标而不是 Memory % Committed Bytes In Use 指标。

此外,命名空间必须包含 InstanceId 维度。如果缺少 InstanceId 维度或者您使用自定义维度名称将其覆盖,则 Compute Optimizer 将无法收集实例的内存利用率数据。命名空间和维度在 CloudWatch 代理配置文件中定义。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的创建 CloudWatch 代理配置文件

示例:用于内存收集的 CloudWatch 代理配置

{ "agent": { "metrics_collection_interval": 60, "run_as_user": "root" }, "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 } } } }

使用 CloudWatch 代理启用 NVIDIA GPU 利用率

允许 Compute Optimizer 分析实例的 NVIDIA GPU 利用率指标:

  1. 在实例上安装 CloudWatch 代理。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的安装 CloudWatch 代理

  2. 允许 CloudWatch 代理收集 NVIDIA GPU 指标。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的收集 NVIDIA GPU 指标

Compute Optimizer 分析以下 NVIDIA GPU 指标:

  • nvidia_smi_utilization_gpu

  • nvidia_smi_memory_used

  • nvidia_smi_encoder_stats_session_count

  • nvidia_smi_encoder_stats_average_fps

  • nvidia_smi_encoder_stats_average_latency

  • nvidia_smi_temperature_gpu

命名空间必须包含 InstanceId 维度和 index 维度。如果缺少这些维度或者您使用自定义维度名称将其覆盖,则 Compute Optimizer 将无法收集实例的 GPU 利用率数据。命名空间和维度在 CloudWatch 代理配置文件中定义。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的创建 CloudWatch 代理配置文件

配置外部指标摄取

您可以使用外部指标摄取功能配置 AWS Compute Optimizer,以便从以下四种可观测性产品之一中摄取 EC2 内存利用率指标:Datadog、Dynatrace、Instana 和 New Relic。启用外部指标摄取后,Compute Optimizer 会分析外部 EC2 内存利用率指标以及 CPU、磁盘、网络、IO 和吞吐量数据,以生成 EC2 大小优化建议。这些建议可以为您节省更多成本并提高性能。有关更多信息,请参阅外部指标摄取

EBS 卷指标

Compute Optimizer 会分析 EBS 卷的以下 CloudWatch 指标。

指标 描述
VolumeReadBytes

EBS 卷的每秒读取字节数。

VolumeWriteBytes

EBS 卷的每秒写入字节数。

VolumeReadOps

EBS 卷的每秒读取操作数。

VolumeWriteOps

EBS 卷的每秒写入操作数。

有关这些指标的更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的 Amazon EBS 的 Amazon CloudWatch 指标

Lambda 函数指标

Compute Optimizer 会分析 Lambda 函数的以下 CloudWatch 指标。

指标 描述
Invocations

函数代码的执行次数,包括成功的执行和导致出现函数错误的执行。

Duration

函数代码处理事件所花费的时间量。

Errors

导致出现函数错误的调用的次数。函数错误包括您的代码所引发的异常和 Lambda 运行时所引发的异常。运行时返回因超时和配置错误等问题导致的错误。

Throttles

受限制的调用请求数。

有关这些指标的更多信息,请参阅《AWS Lambda 开发人员指南》中的使用 AWS Lambda 函数指标

除了这些指标外,Compute Optimizer 还会分析函数在回顾期间的内存利用率。有关 Lambda 函数的内存利用率的更多信息,请参阅 AWS 管理和治理博客 中的使用 Amazon CloudWatch Logs Insights 了解 AWS Lambda 行为和《AWS Lambda 开发人员指南》中的在 CloudWatch 中使用 Lambda Insights

Fargate 上 Amazon ECS 服务的指标

Compute Optimizer 会分析 Fargate 上 Amazon ECS 服务的以下 CloudWatch 和 Amazon ECS 利用率指标。

指标 描述
CPUUtilization

服务中使用的 CPU 容量的百分比。

MemoryUtilization

服务中使用的内存的百分比。

有关这些指标的更多信息,请参阅《适用于 AWS Fargate 的 Amazon ECS 用户指南》中的 Amazon ECS CloudWatch 指标

商用软件许可证的指标

Compute Optimizer 会分析以下指标,以为商用软件许可证生成建议。

mssql_enterprise_features_used - 所使用的 Microsoft SQL Server 企业版功能的数量。功能如下:

  • 128 GB 以上内存用于缓冲池扩展

  • 超过 48 个 vCPU

  • 包含 1 个以上数据库的 Always On 可用性组

  • 异步提交副本

  • 只读副本

  • 异步数据库镜像

  • tempdb 内存优化的元数据已启用

  • R 或 Python 扩展

  • 点对点复制

  • 资源管理器

RDS 数据库实例指标

Compute Optimizer 会分析 Amazon RDS 数据库实例的以下 CloudWatch 指标。

指标 描述
CPUUtilization

数据库实例上正在使用的已分配计算单元的百分比。此指标确定在实例上运行应用程序所需的处理能力。

DatabaseConnections

连接到数据库实例的客户端会话数。

NetworkReceiveThroughput

数据库实例的传入(接收)网络流量,包括用于监控和复制的客户数据库流量和 Amazon RDS 流量。

NetworkTransmitThroughput

数据库实例的传出(传输)网络流量,包括用于监控和复制的客户数据库流量和 Amazon RDS 流量。

ReadIOPS

每秒平均磁盘读取 I/O 操作数。

WriteIOPS

每秒平均磁盘写入 I/O 操作数。

ReadThroughput

每秒从磁盘读取的平均字节数。

WriteThroughput

每秒写入磁盘的平均字节数。

EBSIOBalance%

RDS 数据库突增存储桶中剩余的 I/O 积分的百分比 此指标仅对基本监控可用。

EBSByteBalance%

RDS 数据库突增存储桶中剩余的吞吐量积分的百分比 此指标仅对基本监控可用。

FreeStorageSpace

可用存储空间的大小。

如果启用了 Amazon RDS 性能详情,Compute Optimizer 还会分析 Amazon RDS 数据库实例的以下指标。要为您的数据库实例启用性能详情,请参阅《Amazon Relational Database Service 用户指南》中的为 Amazon RDS 打开和关闭 Performance Insights

注意

如果未启用性能详情,则 Compute Optimizer 不会为过度预置的 RDS 数据库实例提供建议。

指标 描述
DBLoad

数据库中的会话活动级别。有关更多信息,请参阅《Amazon Relational Database Service 用户指南》中的数据库负载

os.swap.in

从磁盘换入的内存量(以 KB 为单位)。

os.swap.out

换出到磁盘的内存量(以 KB 为单位)。

有关 Amazon RDS 指标的更多信息,请参阅《Amazon Relational Database Service 用户指南》中的 Amazon RDS 的指标参考