

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

# 应监控哪些指标？
<a name="metrics.whichshouldimonitor"></a>

通过以下 CloudWatch 指标可深入了解 MemoryDB 性能。在许多情况下，我们建议对这些指标设置 CloudWatch 告警，以便您可以在性能问题出现之前采取纠正措施。

**Topics**
+ [CPUUtilization](#metrics-cpu-utilization)
+ [EngineCPUUtilization](#metrics-engine-cpu-utilization)
+ [SwapUsage](#metrics-swap-usage)
+ [移出](#metrics-evictions)
+ [当前连接](#metrics-curr-connections)
+ [内存](#metrics-memory)
+ [网络](#metrics-network)
+ [延迟](#metrics-latency)
+ [复制](#metrics-replication)

## CPUUtilization
<a name="metrics-cpu-utilization"></a>

这是以百分比形式报告的主机级指标。有关更多信息，请参阅 [主机级指标](metrics.HostLevel.md)。

 对于有 2 个或更少 vCPU 的较小节点类型，可使用 `CPUUtilization ` 指标来监控工作负载。

一般来说，我们建议您将阈值设置为可用 CPU 的 90%。因为 Valkey 和 Redis OSS 是单线程的，实际阈值应计算为节点总容量的一小部分。例如，假设您使用具有两个核心的节点类型。在这种情况下，CPU 使用率的阈值为 90/2，或 45%。要查找您的节点类型具有的核心（vCPU）数量，请参阅 [ MemoryDB 定价](https://aws.amazon.com/memorydb/pricing/?p=ps)。

您需要根据所使用的节点中的核心数，来确定自己的阈值。如果超过此阈值，并且主要工作负载来自读取请求，则请通过添加只读副本来扩展集群。如果主要工作负载来自写入请求，我们建议您添加更多分片，以在更多主节点中分配写入工作负载。

**提示**  
您可能可以使用向您报告有关 Valkey 或 Redis OSS 引擎核心的使用率百分比的指标 `EngineCPUUtilization`，而不是使用主机级指标 `CPUUtilization`。要了解此指标在您的节点上是否可用并了解更多信息，请参阅 [MemoryDB 的指标](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)。

对于有 4 个或更多 vCPU 的较大节点类型，您可能希望使用 `EngineCPUUtilization` 指标，该指标可以向您报告 Valkey 或 Redis OSS 引擎核心的使用率百分比。要了解此指标在您的节点上是否可用并了解更多信息，请参阅 [MemoryDB 的指标](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)。

## EngineCPUUtilization
<a name="metrics-engine-cpu-utilization"></a>

对于有 4 个或更多 vCPU 的较大节点类型，您可能希望使用 `EngineCPUUtilization` 指标，该指标可以向您报告 Valkey 或 Redis OSS 引擎核心的使用率百分比。要了解此指标在您的节点上是否可用并了解更多信息，请参阅 [MemoryDB 的指标](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)。

## SwapUsage
<a name="metrics-swap-usage"></a>

这是以字节为单位报告的主机级指标。有关更多信息，请参阅 [主机级指标](metrics.HostLevel.md)。

如果 `FreeableMemory` CloudWatch 指标接近 0（即低于 100MB），或者 `SwapUsage` 指标大于 `FreeableMemory` 指标，则节点可能正承受内存压力。

## 移出
<a name="metrics-evictions"></a>

这是引擎指标。我们建议您根据应用程序需求，为此指标确定自己的警报阈值。

## 当前连接
<a name="metrics-curr-connections"></a>

这是引擎指标。我们建议您根据应用程序需求，为此指标确定自己的警报阈值。

*当前连接*的数量不断增加，可能表示应用程序出现问题；您需要调查应用程序行为以解决此问题。

## 内存
<a name="metrics-memory"></a>

内存是 Valkey 和 Redis OSS 的核心。了解集群的内存利用率对于避免数据丢失和适应数据集的未来增长是必要的。有关节点内存利用率的统计信息可在 [INFO](https://valkey.io/commands/info) 命令的内存部分中找到。

## 网络
<a name="metrics-network"></a>

集群网络带宽容量的决定因素之一是您选择的节点类型。有关节点的网络容量的更多信息，请参阅 [Amazon MemoryDB 定价](https://aws.amazon.com/memorydb/pricing/)。

## 延迟
<a name="metrics-latency"></a>

延迟指标 `SuccessfulWriteRequestLatency` 和 `SuccessfulReadRequestLatency` 测量 Valkey 引擎的 MemoryDB 响应请求所需的总时间。

**注意**  
当在 Valkey 客户端上启用 CLIENT REPLY 并使用 Valkey 流水线技术时，可能会出现 `SuccessfulWriteRequestLatency` 和 `SuccessfulReadRequestLatency` 指标数值偏高的情况。Valkey 流水线技术是一种通过一次性发出多个命令而不等待每个单独命令的响应来提高性能的技术。为避免数值偏高，我们建议将您的 Redis 客户端配置为使用 [CLIENT REPLY OFF](https://valkey.io/commands/client-reply/) 来流水线化命令。

## 复制
<a name="metrics-replication"></a>

可通过 `ReplicationBytes` 指标了解被复制的数据量。您可以根据复制吞吐量监控 `MaxReplicationThroughput`。建议在达到最大复制吞吐量时添加更多分片。

`ReplicationDelayedWriteCommands` 还可以提示工作负载是否超过最大复制吞吐量。有关在 MemoryDB 中使用复制的更多信息，请参阅[了解 MemoryDB 复制](https://docs.aws.amazon.com/memorydb/latest/devguide/replication.html)