排查问题

本页面介绍了各种错误场景,并提供了解决这些错误的指导。

复制场景

本部分介绍了实例可能出现复制问题。

如何监控复制延迟?

Memorystore for Valkey 具有 /instance/replication/maximum_offset_diff 指标。此指标用于监控主实例中节点的复制偏移量差(以字节为单位)上限。

通过保持较低的复制偏移量差,副本可以更频繁地执行增量同步操作,并且与完全同步操作相比,费用更低。

建议您为 maximum_offset_diff 指标设置阈值。如果超出阈值,Memorystore for Valkey 可以通过提醒通知您。

根据实例的节点类型,我们建议您按如下方式设置阈值:

  • 如果节点类型为 shared-core-nanostandard-smallhighmem-medium,则将阈值设置为小于 64 MB。
  • 如果节点类型为 highmem-xlarge,则将阈值设置为小于 1 GB。

如果主实例及其副本之间存在复制延迟,您会怎么做?

如果主实例的写入操作过多,而副本无法及时复制这些操作,则可能会出现明显的复制延迟。为解决此问题,我们建议您通过增加实例的分片数量来扩容实例。

内存管理场景

本部分介绍了实例可能遇到的内存管理问题。

您可以使用哪个指标来确定实例是否内存不足?

如需监控 Memorystore for Valkey 实例的内存用量,建议您查看 /instance/memory/maximum_utilization 指标。如果实例的内存使用量接近 80%,并且您预计数据使用量会增加,那么请扩大实例的规模,以提高性能并为新数据腾出空间。

监控方案

本部分介绍了实例可能遇到的监控问题。

如何为 Memorystore for Valkey 设置提醒?

您可以使用 Cloud Monitoring 设置提醒,以便在任何指标超出您为实例设置的阈值时收到通知。如需详细了解如何在 Cloud Monitoring 中设置提醒,请参阅设置内存用量监控提醒

连接管理场景

本部分介绍了实例可能遇到的连接管理问题。

如果您达到连接上限或收到连接超时错误,该怎么办?

当您达到连接限制时,客户端将无法连接到服务器。这称为“连接拒绝”。

如果出现这种情况,请执行以下操作:

超时场景

本部分介绍了实例可能遇到的超时问题。

如果您收到 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 错误消息。如果您的应用连接到实例的读取端点,但该实例的所有读取副本都出现故障,您也会看到此错误消息。在这种情况下,应用应使用指数退避算法重试连接。