

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# EC2 实例指标
<a name="ec2-metrics-analyzed"></a>

**Topics**
+ [为 EC2 实例分析的指标](#ec2-metrics-list)
+ [使用 CloudWatch 代理启用内存利用率](#cw-agent)
+ [通过 CloudWatch 代理启用 NVIDIA GPU 使用率](#nvidia-cw-agent)
+ [配置外部指标摄取](#external-metrics)

## 为 EC2 实例分析的指标
<a name="ec2-metrics-list"></a>

Compute Optimizer 会分析您的 EC2 实例的以下 CloudWatch 指标，包括属于 EC2 Auto Scaling 组的实例。


| 指标 | 说明 | 
| --- | --- | 
|  CPUUtilization  |  正在实例上使用的已分配 EC2 计算单位的百分比。此指标确定在实例上运行应用程序所需的处理能力。  | 
|  MemoryUtilization  |  采样期间使用的内存百分比。此指标确定在实例上运行应用程序所需的内存。 内存利用率指标是针对以下资源分析的： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/compute-optimizer/latest/ug/ec2-metrics-analyzed.html)  | 
|  GPUUtilization  |  实例上当前正在 GPUs 使用的已分配百分比。  要允许 Compute Optimizer 分析您的实例的 GPU 利用率指标，请在您的实例上安装 CloudWatch 代理。有关更多信息，请参阅 [通过 CloudWatch 代理启用 NVIDIA GPU 使用率](#nvidia-cw-agent)。   | 
|  GPUMemoryUtilization  |  当前正在实例上使用的总 GPU 内存的百分率。  | 
|  GPUEncoderStatsSessionCount  |  NVIDIA GPU 上活跃的编码会话数。  | 
|  NetworkIn  |  实例在所有网络接口上接收的字节数。此指标用于确定流向实例的传入网络流量。  | 
|  NetworkOut  |  实例在所有网络接口上发送的字节数。此指标用于确定来自实例的传出网络流量。  | 
|  NetworkPacketsIn  |  实例接收的数据包的数量。  | 
|  NetworkPacketsOut  |  实例发送的数据包的数量。  | 
|  DiskReadOps  |  实例的实例存储卷的每秒读取操作数。  | 
|  DiskWriteOps  |  实例的实例存储卷的每秒写入操作数。  | 
|  DiskReadBytes  |  实例的实例存储卷的每秒读取字节数。  | 
|  DiskWriteBytes  |  实例的实例存储卷的每秒写入字节数。  | 
|  VolumeReadBytes  |  附加到实例的 EBS 卷的每秒读取字节数。显示 KiBs 在控制台中。  | 
|  VolumeWriteBytes  |  附加到实例的 EBS 卷的每秒写入字节数。显示 KiBs 在控制台中。  | 
|  VolumeReadOps  |  附加到实例的 EBS 卷的每秒读取操作数。  | 
|  VolumeWriteOps  |  附加到实例的 EBS 卷的每秒写入操作数。  | 

有关实例指标的更多信息，请参阅 *Amazon Elastic Compute Cloud 用户指南*中[列出您的实例的可用 CloudWatch指标](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)。有关 EBS 交易量指标的更多信息，请参阅[亚马逊*弹性计算云用户指南中的亚马逊* EBS CloudWatch 指标](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cloudwatch_ebs.html)。

## 使用 CloudWatch 代理启用内存利用率
<a name="cw-agent"></a>

要让 Compute Optimizer 分析您的实例的内存利用率指标，请在您的实例上安装 CloudWatch 代理。使 Compute Optimizer 分析实例的内存利用率数据，可以对数据进行额外衡量，从而进一步改进 Compute Optimizer 的建议。有关安装 CloudWatch 代理的更多信息，请参阅《亚马逊* CloudWatch用户指南*》中的[使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标和日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。

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

**注意**  
建议您将 `CWAgent` 命名空间配置为使用 `Available MBytes` 作为 Windows 实例的内存指标。
Compute Optimizer 还支持 `Available KBytes` 和 `Available Bytes` 指标，并且在生成针对 Windows 实例的建议时，优先考虑这两个指标而不是 `Memory % Committed Bytes In Use` 指标。

此外，命名空间必须包含 `InstanceId` 维度。如果缺少 `InstanceId` 维度或者您使用自定义维度名称将其覆盖，则 Compute Optimizer 将无法收集实例的内存利用率数据。命名空间和维度在 CloudWatch 代理配置文件中定义。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[创建 CloudWatch代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html)。

**重要**  
所有的 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 使用率
<a name="nvidia-cw-agent"></a>

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

1. 在您的实例上安装 CloudWatch 代理。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[安装 CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。

1. 允许 CloudWatch 代理收集 NVIDIA GPU 指标。有关更多信息，请参阅*亚马逊 CloudWatch 用户指南*中的[收集 NVIDIA GPU 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-NVIDIA-GPU.html)。

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代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html)。

## 配置外部指标摄取
<a name="external-metrics"></a>

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