Soluciona problemas

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 mantienes baja la diferencia de compensación de replicación, las réplicas pueden realizar operaciones de sincronización incrementales 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-medium o standard-large, establece el umbral en menos de 64 MB.

  • Si el tipo de nodo es highmem-xlarge o highmem-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 ponerse al día para 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 maxmemory parámetro.
  • Usa la allkeys-lru maxmemory polí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, obtendrás 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 si 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.

¿Cómo aíslas la fuente de la latencia de tu instancia?

Para determinar si la latencia que experimentas se origina en tu instancia, tu aplicación cliente o tu entorno de red, usa la herramienta valkey-cli para ejecutar una prueba de latencia continua.

Para aislar la fuente de la latencia de tu instancia, haz lo siguiente:

  1. Conéctate a una VM de Compute Engine que se encuentre en la misma región y red de VPC que tu instancia.

  2. Si aún no está instalada, instala la herramienta valkey-cli en tu VM.

    • Para las VMs basadas en Debian o Ubuntu, ejecuta el siguiente comando:

      sudo apt-get install valkey-tools
      
    • Para las VMs basadas en RHEL o CentOS, ejecuta el siguiente comando:

      sudo yum install valkey-tools
      
  3. Para medir la latencia de la instancia en milisegundos, ejecuta el siguiente comando:

    redis-cli --latency -h ENDPOINT_ADDRESS -p PORT
    

    Si tu instancia usa encriptación en tránsito, agrega la marca --tls y especifica tus autoridades certificadoras (CA) para conectarte.

    Realiza los siguientes reemplazos:

    • ENDPOINT_ADDRESS: la dirección IP del extremo de tu instancia
    • PORT: el número de puerto reservado para el extremo de tu instancia Por lo general, este número de puerto es 6379.
  4. Deja que el comando se ejecute durante unos minutos. La herramienta hace ping al servidor de forma continua y calcula los valores de latencia mínimos, máximos y promedio.

  5. Para detener el comando y ver los resultados, presiona Ctrl+C.

Si el comando muestra una latencia promedio baja de manera constante (por lo general, 1 milisegundo o menos), la instancia funciona correctamente y responde con rapidez.

Si el comando muestra una latencia baja de manera constante, pero tu aplicación cliente aún experimenta demoras, es posible que los siguientes problemas causen la latencia:

  • Red: El tráfico enrutado a través de diferentes regiones o zonas entre tu cliente y la instancia puede generar retrasos significativos en la red.
  • Cliente: El uso alto de CPU o memoria en el cliente, los grupos de conexiones agotados o los cuellos de botella de la lógica de la aplicación pueden aumentar el tiempo total de ida y vuelta que experimenta el cliente.

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:

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, es posible que uno o más 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 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ífica 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 interval y TCP keepalive probes para que los clientes detecten y descarten las conexiones que no responden de forma proactiva, incluso cuando las conexiones están inactivas. Por ejemplo, si estableces el parámetro TCP keepalive time en 30 segundos, TCP keepalive interval en 10 segundos y TCP keepalive probes en 3, los clientes restablecen las conexiones inactivas que no responden en un minuto.
  • Configura los tiempos de espera de 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.

Control de 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 agregar 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ó medidas 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 sostenida.