本页面介绍了各种错误场景,并提供了解决这些错误的指导。
复制场景
本部分介绍了实例可能出现复制问题。
如何监控复制延迟?
Memorystore for Valkey 具有 /instance/replication/maximum_offset_diff
指标。此指标用于监控主实例中节点的复制偏移量差(以字节为单位)上限。
通过保持较低的复制偏移量差,副本可以更频繁地执行增量同步操作,并且与完全同步操作相比,费用更低。
建议您为 maximum_offset_diff
指标设置阈值。如果超出阈值,Memorystore for Valkey 可以通过提醒通知您。
根据实例的节点类型,我们建议您按如下方式设置阈值:
- 如果节点类型为
shared-core-nano
、standard-small
或highmem-medium
,则将阈值设置为小于 64 MB。 - 如果节点类型为
highmem-xlarge
,则将阈值设置为小于 1 GB。
如果主实例及其副本之间存在复制延迟,您会怎么做?
如果主实例的写入操作过多,而副本无法及时复制这些操作,则可能会出现明显的复制延迟。为解决此问题,我们建议您通过增加实例的分片数量来扩容实例。
内存管理场景
本部分介绍了实例可能遇到的内存管理问题。
您可以使用哪个指标来确定实例是否内存不足?
如需监控 Memorystore for Valkey 实例的内存用量,建议您查看 /instance/memory/maximum_utilization
指标。如果实例的内存使用量接近 80%,并且您预计数据使用量会增加,那么请扩大实例的规模,以提高性能并为新数据腾出空间。
监控方案
本部分介绍了实例可能遇到的监控问题。
如何为 Memorystore for Valkey 设置提醒?
您可以使用 Cloud Monitoring 设置提醒,以便在任何指标超出您为实例设置的阈值时收到通知。如需详细了解如何在 Cloud Monitoring 中设置提醒,请参阅设置内存用量监控提醒。
连接管理场景
本部分介绍了实例可能遇到的连接管理问题。
如果您达到连接上限或收到连接超时错误,该怎么办?
当您达到连接限制时,客户端将无法连接到服务器。这称为“连接拒绝”。
如果出现这种情况,请执行以下操作:
- 使用
/instance/node/stats/rejected_connections_count
指标可确定 Memorystore for Valkey 因实例节点达到客户端数量上限而拒绝的连接数。 - 使用
/instance/node/clients/connected_clients
指标确定连接到实例节点的客户端数量。这样,您就可以查看实例中的所有节点是否都在限制范围内。 - 使用
client kill
命令停止所有泄露或不需要的连接。 - 减少客户端应用中的连接数或连接池大小。如需了解详情,请参阅与客户端应用关联的文档。
- 调整客户端数量上限。如需了解详情,请参阅配置实例。
- 将实例扩容为更大的节点类型,以便实例具有更高的连接限制。
超时场景
本部分介绍了实例可能遇到的超时问题。
如果您收到 I/O 超时,该怎么办?
如果 Memorystore for Valkey 中的读取或写入操作未能在指定时间内完成,则会发生 I/O 超时。此超时可能是由多种原因造成的。例如,实例的一个或多个节点可能过载。
如果您收到 I/O 超时错误,请执行以下操作:
- 使用
instance/cpu/maximum_utilization
指标可确定实例中节点的 CPU 利用率,范围为 0.0(0%)到 1.0(100%)。建议所有节点的 CPU 利用率百分比都低于 80%。如需了解详情,请参阅 CPU 使用率最佳实践。 - 当客户端因服务器超时而与服务器断开连接时,使用指数退避和抖动进行重试。这有助于避免多个客户端同时使服务器过载。
连接错误场景
本部分介绍了实例可能遇到的连接问题。
由防火墙规则导致的连接错误
防火墙规则可能会阻止 Memorystore for Valkey 使用的端口,从而导致连接错误。您应允许列出实例的两个 Private Service Connect 端点的所有端口。如需详细了解端点,请参阅预留的网络地址。
组织政策导致的连接错误。
您可以制定组织政策,以阻止您的 Private Service Connect 连接连接到 Memorystore for Valkey 实例。
如果您的组织政策使用 .restrictPrivateServiceConnectProducer
政策,请将 961333125034
文件夹编号列入许可名单,该文件夹专门用于 Memorystore for Valkey。例如:
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
处理已停用集群模式的实例的错误
如果应用连接到没有读取副本的实例的读取端点,则连接会关闭,并显示
ERR no replicas found
错误消息。在这种情况下,您可以尝试将应用连接到主端点,也可以向实例添加只读副本。如果发生故障切换,应用中的现有连接会关闭,并显示
ERR role change occurred
错误消息。如果您的应用连接到实例的读取端点,但该实例的所有读取副本都出现故障,您也会看到此错误消息。在这种情况下,应用应使用指数退避算法重试连接。