En esta página, se explican varios casos de error y se proporcionan instrucciones para resolverlos.
Situaciones de replicación
En esta sección, se explican los problemas de replicación que pueden ocurrir con tu instancia.
¿Cómo supervisas los retrasos de replicación?
Memorystore for Valkey tiene la métrica /instance/replication/maximum_offset_diff. Esta métrica supervisa la diferencia máxima de compensación de replicación (en bytes) para un nodo en una instancia principal.
Si se mantiene baja la diferencia de compensación de replicación, las réplicas pueden realizar operaciones de sincronización incremental con mayor frecuencia y a un costo menor que las operaciones de sincronización completa.
Te recomendamos que establezcas un umbral para la métrica maximum_offset_diff. Si se supera el umbral, Memorystore for Valkey puede notificarte con una alerta.
Según el tipo de nodo de tu instancia, te recomendamos que establezcas el umbral de la siguiente manera:
Si el tipo de nodo es
shared-core-nano,custom-pico,custom-micro,custom-mini,standard-small,highmem-medium,highcpu-mediumostandard-large, establece el umbral en menos de 64 MB.Si el tipo de nodo es
highmem-xlargeohighmem-2xlarge, establece el umbral en menos de 1 GB.
¿Qué haces si hay un retraso de replicación entre tu instancia principal y sus réplicas?
Es posible que haya un retraso de replicación significativo si la instancia principal tiene demasiadas operaciones de escritura y las réplicas no pueden alcanzar a replicar estas operaciones. Para resolver este problema, te recomendamos que aumentes la capacidad de la instancia aumentando la cantidad de fragmentos para 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 for Valkey se queda sin espacio, haz lo siguiente:
- Establece un valor más pequeño para el
maxmemoryparámetro. - Usa la
allkeys-lrumaxmemorypolítica.
Cuando la memoria de tu instancia está llena y llega una escritura nueva, Memorystore for Valkey expulsa 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 usadas con menor frecuencia (LRU) de todo el conjunto de claves.
Te recomendamos que supervises la maxmemory de tu instancia y la memoria usada. Esto te ayuda a saber si tu instancia alcanza la capacidad de instancia aprovisionada.
Además, si reduces el valor del parámetro maxmemory, obtienes más espacio para la sobrecarga.
¿Por qué podrían faltar métricas externas para tu instancia?
Si tu instancia experimenta un uso de CPU alto o se agotan los recursos de la instancia (por ejemplo, por tener demasiadas conexiones), es posible que la instancia no funcione correctamente y que falten métricas externas.
Situaciones de administración de memoria
En esta sección, se explican los problemas de administración de memoria que puede tener tu instancia.
¿Qué métrica puedes usar para determinar que tu instancia está bajo estrés de memoria?
Para supervisar el uso de memoria
de una instancia de Memorystore for Valkey, te recomendamos que veas la
/instance/memory/maximum_utilization métrica. Si el uso de memoria
de la instancia se acerca al 80% y esperas que el uso de datos crezca, entonces
escala verticalmente el tamaño de la instancia
para mejorar el rendimiento y dejar espacio para los datos nuevos.
Situaciones de supervisión
En esta sección, se explican los problemas de supervisión que puede tener tu instancia.
¿Cómo configuras alertas para Memorystore for Valkey?
Puedes usar Cloud Monitoring para configurar alertas que te notifiquen si alguna métrica supera los umbrales que estableciste para tu instancia. Para obtener más información sobre cómo configurar alertas en Cloud Monitoring, consulta Configura una alerta de Monitoring para el uso de memoria.
Situaciones de administración de conexiones
En esta sección, se explican los problemas de administración de conexiones que puede tener tu instancia.
Si alcanzas el límite de conexión o recibes un tiempo de espera de conexión, ¿qué haces?
Cuando alcanzas el límite de conexión, tu cliente no puede conectarse a tu servidor. Esto se conoce como rechazo de conexión.
Si esto sucede, haz lo siguiente:
- Usa la métrica
/instance/node/stats/rejected_connections_countpara determinar la cantidad de conexiones que rechaza Memorystore for Valkey porque el nodo de instancia alcanza el límite máximo de clientes. - Usa la métrica
/instance/node/clients/connected_clientspara determinar la cantidad de clientes conectados al nodo de instancia. De esta manera, puedes ver si todos los nodos de la instancia están dentro del límite. - Detén las conexiones filtradas o no deseadas con el
client killcomando. - Reduce el recuento de conexiones o el tamaño del grupo en la aplicación cliente. Para obtener más información, consulta la documentación asociada con la aplicación cliente.
- Ajusta el límite máximo de clientes. Para obtener más información, consulta Configura una instancia.
- Aumenta la escala de tu instancia a un tipo de nodo más grande para que tenga un límite de conexión más alto.
Situaciones de tiempo de espera
En esta sección, se explican los problemas de tiempo de espera que puede tener tu instancia.
Si recibes un tiempo de espera de E/S, ¿qué haces?
Cuando una operación de lectura o escritura en Memorystore for Valkey no se completa dentro de un tiempo especificado, se produce un tiempo de espera de E/S. Este tiempo de espera puede ocurrir por varios motivos. Por ejemplo, uno o más nodos de tu instancia podrían estar sobrecargados.
Si recibes un tiempo de espera de E/S, haz lo siguiente:
- Usa la métrica
instance/cpu/maximum_utilizationpara determinar el uso de CPU de un nodo en tu instancia, de 0.0 (0%) a 1.0 (100%). Te 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 CPU. - Cuando el cliente se desconecta del servidor porque se agota el tiempo de espera del servidor, vuelve a intentarlo con una retirada exponencial y con Jitter. Esto ayuda a evitar que varios clientes sobrecarguen el servidor de forma simultánea.
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 firewall
Las reglas de firewall pueden causar errores de conexión si bloquean los puertos que usa Memorystore for Valkey. Debes permitir todos los puertos para ambos extremos de Private Service Connect de tu instancia. Para obtener más información sobre los extremos, consulta Direcciones de red reservadas.
Error de conexión causado por políticas de la organización
Puedes tener una política de la organización que bloquee tus conexiones de Private Service Connect a tu instancia de Memorystore for Valkey.
Si tu política de la organización usa la política .restrictPrivateServiceConnectProducer, permite el número de carpeta 672235397475, que es una carpeta específicamente para Memorystore for Valkey. Por ejemplo:
name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
rules:
- values:
allowedValues:
- under:folders/672235397475
Si tu política de la organización usa la política .disablePrivateServiceConnectCreationForConsumers, permite SERVICE_PRODUCERS. Por ejemplo:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
rules:
- values:
allowedValues:
- SERVICE_PRODUCERS
Error de conexión causado por conexiones que no responden
Te recomendamos que configures tu aplicación cliente para detectar conexiones que no responden a Memorystore for Valkey. Cuando se detecta una conexión que no responde, el cliente debe restablecerla. Para compilar una aplicación resistente, te recomendamos las siguientes configuraciones de cliente:
- Configura los parámetros de keep-alive de TCP: establece los parámetros
TCP keepalive time,TCP keepalive intervalyTCP keepalive probespara que los clientes detecten y descarten de forma proactiva las conexiones que no responden, incluso cuando las conexiones están inactivas. Por ejemplo, si estableces el parámetroTCP keepalive timeen 30 segundos,TCP keepalive intervalen 10 segundos yTCP keepalive probesen 3, los clientes restablecen las conexiones inactivas que no responden en un minuto. - Configura los tiempos de espera del usuario de TCP: Establece este tiempo de espera en tus clientes para restablecer las conexiones que tienen solicitudes pendientes y dejan de responder. Por ejemplo, si estableces el tiempo de espera en 15 segundos, los clientes restablecen las conexiones que no responden que tienen solicitudes pendientes después de 15 segundos.
Cómo controlar errores para instancias con el modo de clúster inhabilitado
Si la aplicación se conecta al extremo 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, intenta conectar la aplicación al extremo principal o agrega réplicas de lectura a la instancia.En caso de una conmutación por error, se cierran las conexiones existentes de tu aplicación 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 extremo de lectura de una instancia y fallan todas las réplicas de lectura de la instancia. En este caso, la aplicación debe reintentar la conexión con una retirada exponencial.
Situaciones de persistencia
En esta sección, se explican los problemas de persistencia que pueden ocurrir con tu instancia.
Tu tráfico de escritura supera la capacidad de Memorystore for Valkey para compactar y recuperar espacio a través de la reescritura de AOF
Si se produce esta situación, el archivo de solo anexos (AOF) crece más rápido de lo que puede administrar el proceso de reescritura. Esto provoca el agotamiento del disco, causa fallas de escritura y bloquea las operaciones que requieren la creación de réplicas y la sincronización completa.
Memorystore for Valkey implementó barreras de protección para regular el rendimiento de escritura. Esto garantiza que la reescritura de AOF pueda mantener el ritmo de las cargas de trabajo de escritura alta y sostenida.