本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
注意事项
扩展时对 CPU 利用率的潜在影响
在节点类型之间向上或向下扩展时,请注意与增强 I/O 功能相关的对 CPU 利用率的潜在影响。对于支持的节点类型,默认情况下,将网络 I/O 和 TLS 操作 ElastiCache 卸载到专用线程,这些线程利用节点上可用的额外 CPU 内核。这些功能的可用性取决于您的引擎版本和节点类型:
-
增强 I/O (Redis 5.0.6+):网络 I/O 在专用线程上处理,在支持的节点类型上利用额外的 CPU 内核。
-
TLS 卸载(Redis 6.2.5+):TLS 操作被卸载到 I/O 线程,进一步利用可用的 CPU 内核。
-
增强的 I/O 多路复用(Redis OSS 7.0.4+ 或 Valkey 7.2.6+):多个客户端连接多路传输到线程上 I/O ,从而提高吞吐量并优化可用内核的 CPU 使用率。
这些功能将处理分配给节点上可用的额外 CPU 内核,这会通过以下方式影响 CPU 指标:
- 对 CPU 利用率指标的影响
-
CPUUtilization反映节点上所有内核(包括专用 I/O 线程)的聚合 CPU 使用率。由于增强 I/O 功能会消耗这些额外内核上CPUUtilization的 CPU,因此并不能可靠地指示引擎的实际容量和负载。 - 对 engineCPU 利用率指标的影响
-
EngineCPUUtilization仅测量 Redis 或 Valkey 主引擎线程。当增强 I/O 功能处于活动状态时,诸如网络 I/O 和 TLS 处理之类的操作将从主线程转移到专用 I/O 线程。这意味着EngineCPUUtilization可能会减少,因为主线程的工作量较少。EngineCPUUtilization准确反映您的实际工作负载容量以及您的实例是否接近其处理限制。
扩展场景
-
从不支持的节点类型扩展到支持的节点类型:当增强 I/O 功能在新节点类型上处于活动状态时,随着专用 I/O 线程开始使用额外的 CPU 内核,
CPUUtilization可能会增加。同时,随着操作从主引擎线程中卸载,EngineCPUUtilization可能会减少。 -
在支持的节点类型内向上扩展:提供更多的 CPU 内核,
CPUUtilization随着 I/O操作分布在更多资源上,CPU 内核可能会减少。 -
在支持的节点类型内缩小规模:可用于处理 I/O 操作的 CPU 内核较少,
CPUUtilization随着网络 I/O、TLS 处理和连接处理争夺有限的资源,这可能会增加。
推荐的监测方法
我们建议使用EngineCPUUtilization而不是CPUUtilization用于监控。 EngineCPUUtilization测量主引擎线程的性能并准确反映您的实例是否接近其处理限制。 CPUUtilization由于增强 I/O 功能利用可用内核的方式发生了变化,因此可能因引擎版本和节点类型而异,这使其成为容量规划的不可靠指标。