本页面介绍了各种错误场景,并提供了解决这些错误的指南。
复制场景
本部分介绍了集群可能出现的复制问题。
如何监控复制延迟?
Memorystore for Redis Cluster 具有 /cluster/replication/maximum_offset_diff 指标。此指标用于监控主集群中节点的最大复制偏移差(以字节为单位)。
通过保持较低的复制偏移差,副本可以比完整同步操作更频繁地执行增量同步操作,并且费用更低。
我们建议您为 maximum_offset_diff 指标设置阈值。如果超出阈值,Memorystore for Redis Cluster 可以通过提醒通知您。
根据集群的节点类型 ,我们建议您按如下方式设置阈值:
如果节点类型为
redis-shared-core-nano、redis-standard-small、redis-highmem-medium、redis-highcpu-medium或redis-standard-large,则将阈值设置为小于 64 MB。如果节点类型为
redis-highmem-xlarge或redis-highmem-2xlarge,则将阈值设置为小于 1 GB。
连接错误场景
本部分介绍了实例可能遇到的连接问题。
由防火墙规则导致的连接错误
防火墙规则可能会阻止 Memorystore for Redis Cluster 使用的端口,从而导致连接错误。对于实例的两个 Private Service Connect 端点,请将端口 11000 到 13047 列入许可名单。如需详细了解这些 端点,请参阅预留的网络地址。
由组织政策导致的连接错误
您可以制定 组织政策 ,以阻止 Private Service Connect 连接到 Memorystore for Redis Cluster 实例。
如果您的组织政策使用 .restrictPrivateServiceConnectProducer 政策,请将 961333125034 文件夹编号列入许可名单,该文件夹专门用于 Memorystore for Redis Cluster。例如:
name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
rules:
- values:
allowedValues:
- under:folders/961333125034
如果您的组织政策使用 .disablePrivateServiceConnectCreationForConsumers 政策,您应将 SERVICE_PRODUCERS 列入许可名单。例如:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
rules:
- values:
allowedValues:
- SERVICE_PRODUCERS
由无响应的连接导致的连接错误
我们强烈建议您将客户端应用配置为检测与 Memorystore for Redis Cluster 的无响应连接。检测到无响应的连接后,客户端必须重置该连接。为了构建弹性应用,我们建议您进行以下客户端配置:
- 配置 TCP keep-alive 参数:设置
TCP keepalive time、TCP keepalive interval和TCP keepalive probes参数,以便客户端 主动检测并丢弃无响应的连接,即使连接处于 空闲状态也是如此。例如,如果您将TCP keepalive time参数设置为 30 秒,将TCP keepalive interval设置为 10 秒,并将TCP keepalive probes设置为 3,则客户端会在一分钟内重置无响应的空闲连接。 - 配置 TCP 用户超时:在客户端中设置此超时,以重置 有未完成请求且停止响应的连接。例如,如果您将超时设置为 15 秒,则客户端会在 15 秒后重置有未完成请求的无响应连接。
CPU 使用率场景
本部分介绍了集群可能遇到的 CPU 使用率问题。
集群的输出缓冲区空间不足
如果集群的输出缓冲区空间不足,请执行以下操作:
- 为
maxmemory参数设置较小的值。 - 使用
allkeys-lrumaxmemory政策。
当集群的内存已满且有新的写入时,Memorystore for Redis Cluster 会根据集群的 maxmemory 政策逐出键,为写入腾出空间。allkeys-lru 政策会从整个键集中逐出最近最少使用的 (LRU) 键。
我们建议您监控集群的 maxmemory 和已用内存。这有助于您了解集群是否达到预配的集群容量。
此外,通过减小 maxmemory 参数的值,您可以为开销腾出更多空间。
为什么集群可能缺少外部指标?
如果集群的 CPU 利用率过高,或者集群的资源耗尽(例如,连接过多),则集群可能会出现异常行为,并且可能会缺少外部指标。
持久性场景
本部分介绍了集群可能出现的持久性问题。
写入流量超出 Memorystore for Redis Cluster 通过 AOF 重写来压缩和回收空间的能力
如果出现这种情况,则仅追加文件 (AOF) 的增长速度会快于重写过程的管理速度。这会导致磁盘耗尽、写入失败,并阻止需要创建副本和完全同步的操作。
Memorystore for Redis Cluster 实现了防护措施来规范写入吞吐量。 这可确保 AOF 重写能够跟上持续的高写入工作负载。