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 replicación?
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
ohighmem-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 escale la capacidad de la instancia aumentando el número de fragmentos de la instancia.
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?
Puede usar Cloud Monitoring para configurar alertas que le avisen si alguna métrica supera los umbrales que haya definido para su 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é debes 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:
- Usa la métrica
/instance/node/stats/rejected_connections_count
para determinar el número de conexiones que rechaza Memorystore para Valkey porque el nodo de la instancia alcanza el límite máximo de clientes. - Usa la métrica
/instance/node/clients/connected_clients
para determinar el número de clientes conectados al nodo de la instancia. De esta forma, puedes ver si todos los nodos de la instancia están por debajo del límite. - Detén las conexiones filtradas o no deseadas con el comando
client kill
. - Reduce el número de conexiones o el tamaño del grupo en la aplicación cliente. Para obtener más información, consulta la documentación asociada a la aplicación cliente.
- Ajusta el límite máximo de clientes. Para obtener más información, consulta Configurar una instancia.
- Aumenta la capacidad de tu instancia a un tipo de nodo más grande para que tenga un límite de conexiones más alto.
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?
Si una operación de lectura o escritura en Memorystore for Valkey no se completa 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 la 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 los dos 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 políticas de 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, prueba a conectar la aplicación al endpoint principal o añade 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.