En esta página, encontrarás respuestas a las siguientes preguntas frecuentes sobre el uso de Memorystore para Valkey:
- ¿Cuánta CPU y memoria te recomendamos que uses?
- ¿Cómo supervisas la cantidad de CPU y memoria que usas?
- ¿Cómo configuras alertas para supervisar el uso de CPU y memoria?
- ¿Cuántas conexiones de tu aplicación cliente te recomendamos que mantengas abiertas?
- ¿Cómo supervisas la cantidad de conexiones de clientes de tu instancia?
- ¿Qué sucede si tienes demasiadas conexiones de clientes?
- Supongamos que tienes un evento próximo que generará un aumento repentino en el tráfico de tu empresa. ¿Qué haces?
- ¿Cómo protegen mis datos?
- ¿Cuáles son las prácticas recomendadas para el código del cliente?
- ¿Cuáles son tus opciones de resiliencia de datos?
- ¿Cómo obtener el mejor rendimiento para tu instancia?
- ¿Cómo puedes optimizar la alta disponibilidad para tu instancia?
¿Cuánta memoria y CPU te recomendamos que uses?
Te recomendamos que el uso de memoria no supere el 80%. También te recomendamos que ejecutes el modelo con un uso promedio de la CPU del 60%. Como resultado, puedes tolerar la pérdida de una sola zona de disponibilidad, que representa aproximadamente un tercio de tu capacidad total. En este caso, el uso promedio de la CPU en los nodos restantes es de aproximadamente el 90%.
¿Cómo supervisas la cantidad de CPU y memoria que usas?
Para supervisar el uso de CPU de tu nodo principal de Memorystore para Valkey y de cualquiera de sus réplicas de lectura, usa la métrica /instance/cpu/maximum_utilization
. Esta métrica mide el uso máximo de CPU en todos los nodos de tu instancia, desde 0.0 (0%) hasta 1.0 (100%). Para obtener más información, consulta las prácticas recomendadas para el uso de la CPU.
Para supervisar la memoria que usan tu nodo principal de Memorystore for Valkey y sus réplicas de lectura, usa la métrica /instance/node/memory/utilization
. Esta métrica mide la utilización de memoria de un solo nodo en tu instancia, desde 0.0 (0%) hasta 1.0 (100%).
¿Cómo configuras alertas para supervisar el uso de CPU y memoria?
Para configurar alertas de supervisión para el uso de la CPU y la memoria, usa Cloud Monitoring. Por ejemplo, puedes configurar una alerta para que te notifique si la métrica /instance/memory/maximum_utilization
supera un umbral que estableciste. Para obtener más información, consulta Configura una alerta de Monitoring para el uso de memoria.
¿Cuántas conexiones de tu aplicación cliente te recomendamos que mantengas abiertas?
Te recomendamos que uses comparativas para determinar el parámetro de configuración óptimo para tu cliente. El punto de partida recomendado desde cada cliente es una conexión por nodo de Valkey. Para obtener más información, consulta Cómo evitar la sobrecarga de conexiones en Valkey.
También te recomendamos que habilites el encauzamiento para tu cliente, de modo que pueda procesar más solicitudes y hacerlo más rápido.
¿Cómo supervisas la cantidad de conexiones de clientes para tu instancia?
Para supervisar la cantidad de conexiones de cliente que usas, usa la métrica /instance/node/clients/connected_clients
. Esta métrica mide la cantidad de clientes conectados a cada nodo de tu instancia.
¿Qué debes hacer si tienes demasiadas conexiones de clientes?
La cantidad máxima de conexiones de tu cliente, que puedes encontrar con la métrica /instance/clients/maximum_connected_clients
, debe ser menor que el valor asociado al parámetro maxclients
. Si los valores son iguales, haz lo siguiente:
- Detén las conexiones filtradas o innecesarias con el comando
client kill
. - Verifica el tipo de nodo de tu instancia. Si la cantidad máxima de clientes para el tipo de nodo es igual al valor máximo que admite Memorystore para Valkey para el tipo de nodo, cambia el tamaño del grupo de conexiones de tu cliente o usa un tipo de nodo más grande. Para obtener más información, consulta Evita la sobrecarga de conexiones en Valkey.
Supongamos que tienes un evento próximo que generará un aumento repentino del tráfico para tu empresa. ¿Qué deberías hacer?
Puedes configurar Memorystore para Valkey de modo que satisfaga las necesidades de tu empresa. En este caso, puedes aumentar la capacidad de tu instancia de las siguientes maneras:
- Puedes agregar fragmentos a la instancia. Esto le da a la instancia un mayor uso de CPU para controlar un mayor volumen de datos o tráfico. La capacidad de tu instancia se determina según la cantidad de fragmentos que contiene. Si agregas fragmentos, tu aplicación podrá controlar una mayor demanda sin que se degrade el rendimiento.
- Puedes cambiar el tipo de nodo a uno más grande. Esto le da más memoria a la instancia. La capacidad de tu instancia se determina según el tipo de nodo de la instancia. Por ejemplo, puedes cambiar el tipo de nodo de
standard-small
ahighmem-medium
.
Te recomendamos que aumentes la capacidad de tu instancia varios días antes del evento. Además, para ayudarte a escalar la capacidad de tu instancia y aumentar la velocidad y la confiabilidad de su escalamiento, hazlo durante períodos de tráfico bajo. Si deseas obtener información para supervisar el tráfico de las instancias, consulta Supervisa instancias.
¿Cómo protegen mis datos?
Para proteger tus datos, Memorystore para Valkey te proporciona los siguientes mecanismos:
- Autenticación de Identity and Access Management (IAM): Usa IAM para administrar el acceso de inicio de sesión de tus usuarios y cuentas de servicio. La autenticación basada en IAM se integra con Valkey AUTH, lo que te permite rotar credenciales (tokens de IAM) sin problemas y sin depender de contraseñas estáticas.
- Encriptación en tránsito: Encripta todo el tráfico de Valkey con el protocolo de seguridad de la capa de transporte (TLS). Cuando se habilita la encriptación en tránsito, los clientes de Valkey se comunican a través de una conexión segura. Se bloquean los clientes de Valkey que no están configurados para TLS.
¿Cuáles son las prácticas recomendadas para el código del cliente?
Para usar el código del cliente de forma óptima con Memorystore para Valkey, te recomendamos que apliques las siguientes prácticas recomendadas:
Para conectar tu aplicación a una instancia de Memorystore para Valkey con Cluster Mode Enabled, usa un cliente que recomendamos, como valkey-go, iovalkey, valkey-py o Valkey GLIDE.
Si usas un cliente diferente, asegúrate de usar un cliente de Valkey compatible con clústeres que mantenga un mapa de las ranuras de hash para los nodos correspondientes en la instancia. Como resultado, las solicitudes se pueden enviar a los nodos correctos. Esto evita la sobrecarga de rendimiento que provocan los redireccionamientos. Para obtener más información, consulta las prácticas recomendadas para el cliente de Valkey.
Te recomendamos que establezcas los intervalos de tiempo de espera de conexión en cinco segundos y los intervalos de tiempo de espera de solicitud en 10 segundos. Si configuras los tiempos de espera en intervalos más pequeños, es posible que Memorystore para Valkey experimente tormentas de reconexión, lo que puede poner en riesgo el servicio.
Usa la retirada exponencial como estrategia estándar de manejo de errores para aplicaciones de red cuando el cliente reintente una solicitud con errores de forma periódica, cada vez con más demoras entre las solicitudes.
Usa nuestras muestras de código de la biblioteca cliente. Por ejemplo, los valores predeterminados del cliente valkey-go cumplen con todas nuestras recomendaciones, por lo que no tienes que configurar nada para este cliente.
¿Cuáles son tus opciones para la resiliencia de los datos?
Memorystore para Valkey te proporciona las siguientes funciones para la resiliencia de los datos:
Alta disponibilidad: Memorystore para Valkey proporciona capacidad redundante en los nodos de réplica. Si se produce una falla, Memorystore for Valkey puede usar esta capacidad para operar sin tiempo de inactividad.
Persistencia: Cuando tu entorno falla de forma inesperada, Memorystore para Valkey lo restablece automáticamente. Esto se conoce como persistencia.
Memorystore para Valkey ofrece el siguiente tipo de persistencia:
Persistencia de la base de datos de Redis (RDB): Protege tus datos guardando instantáneas de ellos en un almacenamiento duradero. Para elegir la frecuencia de estas instantáneas, selecciona un intervalo de instantáneas. Si se producen fallas en los nodos, puedes recuperar los datos incluso cuando no es posible la conmutación por error.
Persistencia de archivo de solo anexar (AOF): Usa este tipo de persistencia cuando quieras priorizar la durabilidad de los datos. La persistencia de AOF almacena datos de forma duradera registrando cada comando de escritura en un archivo de registro llamado archivo AOF. Si se produce una falla o un reinicio del sistema, el servidor reproduce los comandos del archivo AOF de forma secuencial para restablecer tus datos.
Copias de seguridad: Restaura tus instancias de Memorystore para Valkey a un momento específico de forma manual. Además, puedes usar copias de seguridad para exportar y analizar datos.
Las copias de seguridad son útiles en las siguientes situaciones:
- Recuperación ante desastres: Usa copias de seguridad como parte de un plan de recuperación ante desastres. Si ocurre un desastre, puedes restablecer tus datos en una nueva instancia de Memorystore para Valkey.
- Migración de datos: Migra datos entre diferentes instancias de Memorystore para Valkey. Puedes consolidar los datos o moverlos a otra región. También puedes restablecer copias de seguridad desde instancias de Memorystore para Valkey.
- Compartir datos: Comparte datos entre diferentes equipos o aplicaciones. Esto permite la colaboración, el análisis de datos sin conexión y el intercambio de datos.
- Cumplimiento: Crea copias de seguridad periódicas de los datos de la caché para fines de cumplimiento.
- Programar copias de seguridad: Además de crear una copia de seguridad a pedido, puedes configurar un programa de copias de seguridad para una instancia. Como resultado, Memorystore para Valkey inicia copias de seguridad periódicas para la instancia.
Replicación entre regiones: Crea instancias secundarias a partir de una instancia principal para que tu instancia esté disponible para lecturas en diferentes regiones. Las instancias secundarias también proporcionan redundancia para situaciones de recuperación ante desastres en caso de interrupciones regionales.
La replicación entre regiones en Memorystore para Valkey te brinda los siguientes beneficios:
- Recuperación ante desastres: Si la región de la instancia principal deja de estar disponible, puedes desconectar o conmutar por error a una instancia secundaria en otra región para atender las solicitudes de lectura y escritura. Las instancias secundarias atienden las solicitudes de lectura sin emitir un comando de cambio o separación.
- Datos distribuidos geográficamente: La distribución geográfica de los datos los acerca a ti y disminuye la latencia de lectura.
- Balanceo de cargas geográfico para el tráfico de lectura: Si se producen conexiones lentas o sobrecargadas en una región, puedes enrutar el tráfico a otra región.
¿Cómo obtener el mejor rendimiento para tu instancia?
Para optimizar el rendimiento de tu instancia de Memorystore para Valkey, haz lo siguiente:
- Sigue las prácticas recomendadas para la administración de memoria y el uso de CPU, ya que estas prácticas generan el mejor rendimiento para tu instancia.
- Usa los registros de auditoría para supervisar el acceso a tu instancia. Como resultado, puedes determinar si hay problemas asociados con la actividad del administrador de la instancia (el registro de auditoría
Admin Activity
) o con los usuarios que acceden a los datos de la instancia (el registro de auditoríaData Access
). - Usa réplicas de lectura. En Memorystore para Valkey, la replicación es asíncrona. Por lo tanto, los datos del nodo principal no aparecen en las réplicas de inmediato. Si puedes manejar datos que estén un poco desactualizados, usa réplicas de lectura. Esto te proporciona mejoras significativas en la latencia y la capacidad de procesamiento de lectura.
Evita usar comandos de Valkey que consuman muchos recursos. El uso de estos comandos puede generar los siguientes problemas de rendimiento:
- Latencia alta y tiempos de espera del cliente
- Presión en la memoria causada por comandos que aumentan el uso de memoria
- Pérdida de datos durante la replicación y sincronización de nodos porque el subproceso principal de Valkey está bloqueado
- Verificaciones de estado, observabilidad y replicación insuficientes
En lugar de usar estos comandos, usa comandos que sean más eficientes en el uso de recursos. Por ejemplo, para analizar todo tu espacio de claves, no uses el comando
KEYS
. En su lugar, usaSCAN
.Para obtener más información sobre los comandos de Valkey que consumen muchos recursos y sus alternativas eficientes, consulta Comandos de Valkey que consumen muchos recursos.
Si las necesidades de tu empresa te permiten establecer un tiempo de vencimiento para tus datos, te recomendamos que lo hagas, ya que esto reduce el consumo de memoria.
Actualiza la versión de tu instancia de Memorystore para Valkey a la versión más reciente. Las versiones de software más recientes tienen mejoras de confiabilidad y rendimiento.
Modifica el valor del parámetro
maxmemory-policy
. Este parámetro especifica el comportamiento que sigue Valkey cuando los datos de la instancia alcanzan el límite demaxmemory
.Cuando la memoria de tu instancia está llena y llega una escritura nueva, Valkey expulsa las claves para dejar espacio para la escritura según la política de
maxmemory
de tu instancia. Si el valor del parámetro
maxmemory-policy
se establece ennoeviction
, Memorystore para Valkey devuelve un error cuando tu instancia alcanza su memoria máxima. Sin embargo, Memorystore para Valkey no reemplaza ni expulsa datos. Para mejorar la disponibilidad de tu instancia, cambia el valor del parámetromaxmemory-policy
para que Memorystore para Valkey pueda expulsar claves.Para obtener más información sobre los diferentes valores que puedes establecer para el parámetro
maxmemory-policy
, consulta Políticas de Maxmemory. Para obtener más información sobre cómo actualizar este parámetro, consulta Actualiza un parámetro de configuración.Ajusta tu instancia de Memorystore para Valkey para que tenga la proporción de aciertos de caché que deseas. Esto te ayuda a que tu base de datos tenga el tamaño adecuado para que pueda controlar el porcentaje apropiado de hits.
Para ajustar una instancia, haz lo siguiente:
- Usa las métricas de supervisión
total_keyspace_hits_count
ytotal_keyspace_misses_count
para determinar la cantidad total de búsquedas correctas de claves para la instancia y la cantidad total de búsquedas fallidas de claves para la instancia, respectivamente. - Divide la cantidad total de aciertos entre la cantidad total de aciertos y errores
(es decir, aciertos/(aciertos + errores)). El cociente es tu tasa de aciertos. - Para ajustar la instancia y obtener la proporción de aciertos adecuada para ti, escálala. Puedes aumentar o disminuir la cantidad de fragmentos, o bien aumentar o disminuir el tipo de nodo. Para obtener más información, consulta Acerca del ajuste de la capacidad de instancias.
Aumentar la proporción de aciertos mejora la latencia y la capacidad de procesamiento de tu sistema. Encuentra el equilibrio que funcione para tus objetivos de rendimiento, expansión y costos.
- Usa las métricas de supervisión
De forma predeterminada, te recomendamos que ejecutes comparativas de rendimiento en tu instancia para determinar si una mayor cantidad de conexiones aumenta el rendimiento sin saturar la conexión. El punto de partida recomendado es configurar tu cliente para que abra una conexión a cada nodo de Valkey.
Habilita la canalización para tu cliente de modo que pueda procesar más solicitudes y hacerlo más rápido. Para configurar la canalización, usa la biblioteca cliente. Para obtener más información, consulta la documentación asociada a esta biblioteca.
¿Cómo puedes optimizar la alta disponibilidad de tu instancia?
Te recomendamos que crees instancias multizonales con alta disponibilidad en lugar de instancias zonales únicas debido a la mayor confiabilidad que proporcionan.
Si creas una instancia de alta disponibilidad, te recomendamos que uses la métrica /instance/node/replication/offset
. Con esta métrica, puedes supervisar el desplazamiento de la replicación (en bytes) de un solo nodo en tu instancia. El desplazamiento de replicación es la cantidad de bytes que Memorystore para Valkey no replicó entre el nodo principal y las réplicas de lectura.