应监控哪些指标?
通过以下 CloudWatch 指标可深入了解 ElastiCache 性能。在许多情况下,我们建议对这些指标设置 CloudWatch 告警,以便您可以在性能问题出现之前采取纠正措施。
监控指标
CPUUtilization
这是以百分比形式报告的主机级指标。有关更多信息,请参阅 主机级指标。
Valkey 和 Redis OSS
对于有 2 个或更少 vCPU 的较小节点类型,可使用 CPUUtilization 指标来监控工作负载。
一般来说,我们建议您将阈值设置为可用 CPU 的 90%。因为 Valkey 和 Redis OSS 都是单线程的,实际阈值应计算为节点总容量的一小部分。例如,假设您使用具有两个核心的节点类型。在这种情况下,CPU 使用率的阈值为 90/2,或 45%。
您需要根据所使用的缓存节点中的核心数,来确定自己的阈值。如果超过此阈值,并且主要工作负载来自读取请求,则请通过添加只读副本来扩展集群。如果主要工作负载来自写入请求,我们的建议取决于您的集群配置:
-
Redis(已禁用集群模式)集群:使用更大的缓存实例类型进行纵向扩展。
-
Redis(已启用集群模式)集群:添加更多分片,将写入工作负载分配给更多主节点。
提示
Valkey 和 Redis OSS 用户可能无法使用主机级指标 CPUUtilization,而可以使用指标 EngineCPUUtilization,该指标可以报告 Valkey 或 Redis OSS 引擎核心的使用百分比。要了解此指标在您的节点上是否可用并了解更多信息,请参阅 Valkey 和 Redis OSS 的指标。
对于有 4 个或更多 vCPU 的较大节点类型,您可能需要使用 EngineCPUUtilization 指标,该指标可报告 Valkey 或 Redis OSS 引擎核心的使用率百分比。要了解此指标在您的节点上是否可用并了解更多信息,请参阅 Redis OSS 的指标。
Memcached
因为 Memcached 是多线程的,所以此指标可能高达 90%。如果超过此阈值,请使用更大的缓存节点类型来纵向扩展集群,或通过添加更多缓存节点进行横向扩展。
EngineCPUUtilization
对于有 4 个或更多 vCPU 的较大节点类型,您可能需要使用 EngineCPUUtilization 指标,该指标可报告 Redis OSS 引擎核心的使用率百分比。要了解此指标在您的节点上是否可用并了解更多信息,请参阅 Valkey 和 Redis OSS 的指标。
有关更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon ElastiCache for Redis OSS 的最佳实践
SwapUsage(Valkey 和 Redis OSS)
这是以字节为单位报告的主机级指标。有关更多信息,请参阅 主机级指标。
如果 FreeableMemory CloudWatch 指标接近 0(即低于100MB)或 SwapUsage 指标大于 FreeableMemory 指标,则表示节点处于内存压力下。如果发生这种情况,请参阅以下主题:
移出
这是缓存引擎指标。我们建议您根据应用程序需求,为此指标确定自己的警报阈值。
如果您使用 Memcached 且超过您选择的阈值,请使用更大的节点类型来扩展集群,或通过添加更多节点进行横向扩展。
当前连接
这是缓存引擎指标。我们建议您根据应用程序需求,为此指标确定自己的警报阈值。
当前连接的数量不断增加,可能表示应用程序出现问题;您需要调查应用程序行为以解决此问题。
有关更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon ElastiCache for Redis OSS 的最佳实践
内存(Valkey 和 Redis OSS)
内存是 Valkey 和 Redis OSS 的核心指标。了解集群的内存利用率对于避免数据丢失和适应数据集的未来增长是必要的。有关节点内存利用率的统计数据可在 INFO
有关更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon ElastiCache for Redis OSS 的最佳实践
网络
集群网络带宽容量的决定因素之一是您选择的节点类型。有关节点的网络容量的更多信息,请参阅 Amazon ElastiCache 定价
有关更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon ElastiCache for Redis OSS 的最佳实践
延迟
根据所需的粒度级别,您可以通过多种方式衡量 ElastiCache for Valkey 实例的响应时间。影响 ElastiCache for Valkey 的整体服务器端响应时间的关键阶段包括命令预处理、命令执行和命令后处理。
源自 Valkey INFO
延迟指标 SuccessfulWriteRequestLatency 和 SuccessfulReadRequestLatency 衡量的是 ElastiCache for Valkey 引擎响应请求所花费的总时间。
注意
当使用 Valkey 管道传输且在 Valkey 客户端上启用 CLIENT REPLY 时,SuccessfulWriteRequestLatency 和 SuccessfulReadRequestLatency 指标的值可能会虚高。Valkey 管道传输是一种通过同时发出多个命令来提高性能的技术,无需等待每个命令的响应。为避免值虚高,我们建议您将 Valkey 客户端配置为在关闭 CLIENT REPLY
有关更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon ElastiCache 的最佳实践
复制
可通过 ReplicationBytes 指标了解被复制的数据量。尽管此指标表示复制组上的写入负载,但它不提供有关复制运行状况的信息。要了解此信息,您可以使用 ReplicationLag 指标。
有关更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon ElastiCache for Redis OSS 的最佳实践
流量管理(Valkey 和 Redis OSS)
当发送到节点的传入命令超过 Valkey 或 Redis OSS 可以处理的数量时,ElastiCache for Redis OSS 会自动管理节点的流量。这样做是为了保持引擎的最佳运行和稳定性。
在节点上主动管理流量时,指标 TrafficManagementActive 将发出为 1 的数据点。这表示节点对于所提供的工作负载而言可能规模过小。如果此指标在很长一段时间内保持为 1,请评估集群以确定是否需要纵向扩展或横向扩展。
有关更多信息,请参阅指标页面上的 TrafficManagementActive 指标。