En esta página se explican varios casos de error 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 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 la réplica es pequeña, las réplicas pueden realizar operaciones de sincronización incremental con más frecuencia y a un coste menor 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 su instancia, le recomendamos que defina el umbral de la siguiente manera:
- Si el tipo de nodo es
shared-core-nano,standard-smallohighmem-medium, define 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 fragmentos 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:
- Asigna un valor menor al parámetro
maxmemory. - Usa la política
allkeys-lrumaxmemory.
Cuando la memoria de tu instancia esté llena y se produzca una nueva escritura, Memorystore for Valkey desalojará las claves para dejar espacio para la escritura según la política maxmemory de tu instancia. La política allkeys-lru expulsa 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 para 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és que el uso de datos aumentará, aumenta 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é ocurre 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_countpara 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_clientspara 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?
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_utilizationpara 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. Debes incluir todos los puertos en la lista de permitidos de ambos extremos de Private Service Connect de tu 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 la organización que bloquee las conexiones de Private Service Connect a tu instancia de Memorystore for Valkey.
Si tu política de organización usa la política .restrictPrivateServiceConnectProducer, añade a la lista de permitidos el número de la carpeta 672235397475, 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/672235397475
Si tu política de organización usa la política .disablePrivateServiceConnectCreationForConsumers, añade SERVICE_PRODUCERS a 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 ese caso, intenta conectar la aplicación al endpoint principal o añade réplicas de lectura a la instancia.En caso de conmutación por error, las conexiones existentes de tu aplicación se cierran y aparece el mensaje de error
ERR role change occurred. También verás 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.