Solucionar problemas

En esta página se explican varios casos en los que se producen errores y se ofrecen directrices para resolverlos.

Situaciones de replicación

En esta sección se explican los problemas de replicación que pueden producirse en tu instancia.

¿Cómo monitorizas los retrasos de la réplica?

Memorystore for Valkey tiene la métrica /instance/replication/maximum_offset_diff. Esta métrica monitoriza la diferencia máxima de desfase de replicación (en bytes) de un nodo de una instancia principal.

Si la diferencia de desfase de replicación es pequeña, las réplicas pueden realizar operaciones de sincronización incremental con más frecuencia y a un coste inferior que las operaciones de sincronización completa.

Te recomendamos que definas un umbral para la métrica maximum_offset_diff. Si se supera el umbral, Memorystore for Valkey puede enviarte una alerta.

En función del tipo de nodo de tu instancia, te recomendamos que definas el umbral de la siguiente manera:

  • Si el tipo de nodo es shared-core-nano, standard-small o highmem-medium, defina el umbral en menos de 64 MB.
  • Si el tipo de nodo es highmem-xlarge, el umbral debe ser inferior a 1 GB.

¿Qué haces si hay un retraso en la replicación entre tu instancia principal y sus réplicas?

Puede haber un retraso de replicación significativo si la instancia principal tiene demasiadas operaciones de escritura y las réplicas no pueden ponerse al día para replicar estas operaciones. Para solucionar este problema, le recomendamos que aumente la capacidad de la instancia incrementando el número de particiones de la instancia.

Situaciones de uso de CPU

En esta sección se explican los problemas de uso de CPU que puede tener tu instancia.

¿Qué haces si el búfer de salida de tu instancia se queda sin espacio?

Si el búfer de salida de tu instancia de Memorystore para Valkey se queda sin espacio, haz lo siguiente:

Cuando la memoria de tu instancia esté llena y se produzca una nueva escritura, Memorystore para Valkey expulsará claves para dejar espacio para la escritura en función de la política maxmemory de tu instancia. La política allkeys-lru elimina las claves menos usadas recientemente (LRU) de todo el conjunto de claves.

Te recomendamos que monitorices la maxmemory y la memoria utilizada de tu instancia. De esta forma, sabrá si su instancia alcanza la capacidad de instancia aprovisionada. Además, si reduce el valor del parámetro maxmemory, tendrá más espacio para la sobrecarga.

Situaciones de gestión de la memoria

En esta sección se explican los problemas de gestión de memoria que puede tener tu instancia.

¿Qué métrica puedes usar para determinar si tu instancia está sometida a una carga de memoria excesiva?

Para monitorizar el uso de memoria de una instancia de Memorystore for Valkey, te recomendamos que consultes la métrica /instance/memory/maximum_utilization. Si el uso de memoria de la instancia se acerca al 80% y prevé que el uso de datos aumentará, aumente el tamaño de la instancia para mejorar el rendimiento y dejar espacio para los nuevos datos.

Situaciones de monitorización

En esta sección se explican los problemas de monitorización que pueden surgir en tu instancia.

¿Cómo se configuran las alertas de Memorystore for Valkey?

Puedes usar Cloud Monitoring para configurar alertas que te avisen si alguna métrica supera los umbrales que has definido para tu instancia. Para obtener más información sobre cómo configurar alertas en Cloud Monitoring, consulta Configurar una alerta de Monitoring para el uso de memoria.

Situaciones de gestión de conexiones

En esta sección se explican los problemas de gestión de conexiones que puede tener tu instancia.

¿Qué puedes hacer si alcanzas el límite de conexiones o se agota el tiempo de espera de una conexión?

Cuando alcances el límite de conexiones, el cliente no podrá conectarse al servidor. Este proceso se conoce como rechazo de conexión.

Si esto ocurre, haz lo siguiente:

Situaciones de tiempo de espera

En esta sección se explican los problemas de tiempo de espera que pueden surgir en tu instancia.

Si recibes un tiempo de espera de E/S, ¿qué debes hacer?

Cuando no se puede completar una operación de lectura o escritura en Memorystore for Valkey en un tiempo determinado, se produce un tiempo de espera de E/S. Este tiempo de espera puede deberse a varios motivos. Por ejemplo, puede que uno o varios nodos de tu instancia estén sobrecargados.

Si recibes un tiempo de espera de E/S, haz lo siguiente:

  • Usa la métrica instance/cpu/maximum_utilization para determinar la utilización de la CPU de un nodo de tu instancia, que va de 0,0 (0%) a 1,0 (100%). Recomendamos que todos los nodos tengan un porcentaje de uso de CPU inferior al 80%. Para obtener más información, consulta las prácticas recomendadas para el uso de la CPU.
  • Cuando el cliente se desconecta del servidor porque se agota el tiempo de espera del servidor, vuelve a intentarlo con retroceso exponencial y con Jitter. De esta forma, se evita que varios clientes sobrecarguen el servidor simultáneamente.

Situaciones de error de conectividad

En esta sección se explican los problemas de conectividad que puede tener tu instancia.

Error de conexión causado por reglas de cortafuegos

Las reglas de cortafuegos pueden provocar errores de conexión al bloquear los puertos que usa Memorystore para Valkey. Debe incluir en la lista de permitidos todos los puertos de ambos puntos de conexión de Private Service Connect de su instancia. Para obtener más información sobre los endpoints, consulta Direcciones de red reservadas.

Error de conexión debido a las políticas de la organización.

Puedes tener una política de organización que bloquee las conexiones de Private Service Connect a tu instancia de Memorystore for Valkey.

Si la política de tu organización usa la política .restrictPrivateServiceConnectProducer, incluye en la lista de permitidos el número de la carpeta 961333125034, que es una carpeta específica de Memorystore para Valkey. Por ejemplo:

name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
    rules:
      - values:
          allowedValues:
          - under:folders/961333125034

Si la política de tu organización usa la política .disablePrivateServiceConnectCreationForConsumers, debes incluir SERVICE_PRODUCERS en la lista de permitidos. Por ejemplo:

name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
    rules:
      - values:
          allowedValues:
          - SERVICE_PRODUCERS

Gestionar errores de instancias con el modo de clúster inhabilitado

  • Si la aplicación se conecta al endpoint de lectura de una instancia que no tiene réplicas de lectura, la conexión se cierra y aparece el mensaje de error ERR no replicas found. En este caso, intente conectar la aplicación al endpoint principal o añada réplicas de lectura a la instancia.

  • En caso de conmutación por error, se cerrarán las conexiones de tu aplicación y aparecerá el mensaje de error ERR role change occurred. También verías este mensaje de error si tu aplicación se conecta al endpoint de lectura de una instancia y todas las réplicas de lectura de la instancia fallan. En este caso, la aplicación debe volver a intentar la conexión con tiempo de espera exponencial.