En esta página, encontrará respuestas a las siguientes preguntas frecuentes sobre el uso de Memorystore para Valkey:
- ¿Cuánta CPU y memoria te recomendamos que uses?
- ¿Cómo monitorizáis la cantidad de CPU y memoria que usáis?
- ¿Cómo configuras alertas para monitorizar el uso de la CPU y la memoria?
- ¿Cuántas conexiones de tu aplicación cliente te recomendamos que mantengas abiertas?
- ¿Cómo monitorizas el número de conexiones de clientes de tu instancia?
- ¿Qué haces si tienes demasiadas conexiones de clientes?
- Supongamos que tienes un evento próximo que aumentará el tráfico de tu empresa. ¿Qué haces?
- ¿Cómo protegéis vuestros datos?
- ¿Cuáles son las prácticas recomendadas para el código de cliente?
- ¿Qué opciones tienes para proteger los datos?
- ¿Cómo se consigue el mejor rendimiento de una instancia?
- ¿Cómo puedes optimizar la alta disponibilidad de 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 mantengas una utilización media de la CPU del 60%. Por lo tanto, puedes tolerar la pérdida de una sola zona de disponibilidad, que es aproximadamente un tercio de tu capacidad total. En este caso, la utilización media de la CPU en los nodos restantes es de aproximadamente el 90%.
¿Cómo monitorizas la cantidad de CPU y memoria que utilizas?
Para monitorizar el uso de la CPU de tu nodo principal de Memorystore for 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 monitorizar 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 de tu instancia, de 0,0 (0%) a 1,0 (100%).
¿Cómo configuras alertas para monitorizar el uso de la CPU y la memoria?
Para configurar alertas de monitorización sobre el uso de la CPU y la memoria, utiliza Cloud Monitoring. Por ejemplo, puedes configurar una alerta para que te avise si la métrica /instance/memory/maximum_utilization
supera un umbral que hayas definido. Para obtener más información, consulta Definir 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 las comparativas para determinar la configuración óptima para tu cliente. El punto de partida recomendado para cada cliente es una conexión por nodo de Valkey. Para obtener más información, consulta Evitar la sobrecarga de conexiones en Valkey.
También te recomendamos que habilites el procesamiento en paralelo para que tu cliente pueda procesar más solicitudes y hacerlo más rápido.
¿Cómo monitorizas el número de conexiones de cliente de tu instancia?
Para monitorizar el número de conexiones de cliente que usas, utiliza la métrica /instance/node/clients/connected_clients
. Esta métrica mide el número de clientes que están conectados a cada nodo de tu instancia.
¿Qué haces si tienes demasiadas conexiones de cliente?
El número máximo de conexiones de cliente, que puede consultar con la métrica /instance/clients/maximum_connected_clients
, debe ser inferior al 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
. - Comprueba el tipo de nodo de tu instancia. Si el número máximo de clientes del 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 Evitar la sobrecarga de conexiones en Valkey.
Supongamos que tienes un evento próximo que aumentará el tráfico de tu empresa. ¿Qué harías?
Puedes configurar Memorystore para Valkey de forma que se adapte a las necesidades de tu empresa. En este caso, puedes aumentar la capacidad de tu instancia de las siguientes formas:
- Puedes añadir fragmentos a la instancia. De esta forma, la instancia puede usar más CPU para gestionar un mayor volumen de datos o tráfico. La capacidad de tu instancia se determina en función del número de particiones de la instancia. Al añadir fragmentos, tu aplicación puede gestionar una mayor demanda sin que el rendimiento se vea afectado.
- Puedes cambiar el tipo de nodo a un tipo de nodo más grande. De esta forma, la instancia tendrá más memoria. 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 fiabilidad de este proceso, hazlo durante los periodos de poco tráfico. Para saber cómo monitorizar el tráfico de las instancias, consulte Monitorizar instancias.
¿Cómo protegéis vuestros datos?
Para proteger tus datos, Memorystore para Valkey te ofrece los siguientes mecanismos:
- Autenticación de gestión de identidades y accesos (IAM): usa IAM para gestionar 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 las credenciales (tokens de IAM) sin problemas y sin depender de contraseñas estáticas.
- Cifrado en tránsito: cifra todo el tráfico de Valkey con el protocolo Seguridad en la capa de transporte (TLS). Cuando el cifrado en tránsito está habilitado, los clientes de Valkey se comunican de forma segura a través de una conexión. Los clientes de Valkey que no estén configurados para TLS se bloquearán.
¿Cuáles son las prácticas recomendadas para el código de cliente?
Para usar el código de cliente con Memorystore for Valkey de forma óptima, te recomendamos que sigas estas prácticas:
Para conectar tu aplicación a una instancia de Memorystore for Valkey con el modo clúster habilitado, usa un cliente que te recomendamos, como valkey-go, iovalkey, valkey-py o Valkey GLIDE.
Si usas otro cliente, asegúrate de usar un cliente de Valkey que sea compatible con clústeres y que mantenga un mapa de ranuras de hash a los nodos correspondientes de la instancia. Como resultado, las solicitudes se pueden enviar a los nodos correctos. De esta forma, se evita la sobrecarga de rendimiento causada por las redirecciones. Para obtener más información, consulta las prácticas recomendadas para clientes de Valkey.
Te recomendamos que definas intervalos de tiempo de espera de conexión de cinco segundos e intervalos de tiempo de espera de solicitud de 10 segundos. Si configuras los tiempos de espera en intervalos más pequeños, Memorystore para Valkey podría experimentar tormentas de reconexión, lo que puede poner en riesgo el servicio.
Utiliza el tiempo de espera exponencial como estrategia de gestión de errores estándar para las aplicaciones de red cuando el cliente vuelve a intentar una solicitud fallida periódicamente con retrasos cada vez mayores entre las solicitudes.
Usa nuestros ejemplos de código de bibliotecas de cliente. Por ejemplo, los valores predeterminados del cliente valkey-go cumplen todas nuestras recomendaciones, por lo que no tienes que configurar nada para este cliente.
¿Qué opciones tienes para la resiliencia de los datos?
Memorystore for Valkey te ofrece las siguientes funciones para la resiliencia de los datos:
Alta disponibilidad: Memorystore for Valkey proporciona capacidad redundante en los nodos de réplica. Si se produce un fallo, Memorystore for Valkey puede usar esta capacidad para funcionar sin tiempo de inactividad.
Persistencia: si tu entorno falla de forma inesperada, Memorystore for Valkey lo restaura automáticamente. Esto se conoce como persistencia.
Memorystore for Valkey ofrece el siguiente tipo de persistencia:
Persistencia de la base de datos Redis (RDB): protege tus datos guardando copias de tus datos en un almacenamiento duradero. Puedes elegir la frecuencia de estas capturas seleccionando un intervalo de capturas. Si se producen fallos en los nodos, puedes recuperar los datos aunque no sea posible la conmutación por error.
Persistencia de archivo de solo anexión (AOF): usa este tipo de persistencia cuando quieras priorizar la durabilidad de los datos. La persistencia AOF almacena los datos de forma duradera registrando cada comando de escritura en un archivo de registro llamado archivo AOF. Si se produce un fallo o un reinicio del sistema, el servidor reproduce los comandos del archivo AOF de forma secuencial para restaurar los datos.
Copias de seguridad: restaura manualmente tus instancias de Memorystore para Valkey a un momento dado. Además, puede usar las copias de seguridad para exportar y analizar datos.
Las copias de seguridad son útiles en los siguientes casos:
- Recuperación tras fallos: usa las copias de seguridad como parte de un plan de recuperación tras fallos. Si se produce un desastre, puedes restaurar tus datos en una nueva instancia de Memorystore para Valkey.
- Migración de datos: migra datos entre diferentes instancias de Memorystore para Valkey. Puede consolidar los datos o moverlos a otra región. También puedes restaurar copias de seguridad de instancias de Memorystore for Valkey.
- Compartir datos: comparte datos entre diferentes equipos o aplicaciones. De esta forma, se pueden colaborar, analizar datos sin conexión e intercambiar datos.
- Cumplimiento: crea copias de seguridad periódicas de los datos de la caché para cumplir los requisitos.
- Programar copias de seguridad: además de crear copias de seguridad bajo demanda, puedes configurar una programación de copias de seguridad para una instancia. Como resultado, Memorystore for Valkey inicia copias de seguridad periódicas de 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 los casos de recuperación tras fallos en caso de interrupciones regionales.
La replicación interregional en Memorystore for Valkey te ofrece las siguientes ventajas:
- Recuperación tras desastres: si la región de la instancia principal no está disponible, puedes separar o cambiar 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 conmutación o de separación.
- Datos distribuidos geográficamente: la distribución geográfica de los datos los acerca a ti y reduce la latencia de lectura.
- Balanceo de carga geográfico para el tráfico de lectura: si se producen conexiones lentas o sobrecargadas en una región, puedes dirigir el tráfico a otra región.
¿Cómo se consigue el mejor rendimiento de una instancia?
Para optimizar el rendimiento de tu instancia de Memorystore for Valkey, haz lo siguiente:
- Sigue las prácticas recomendadas para la gestión de la memoria y el uso de la CPU, ya que estas prácticas proporcionan el mejor rendimiento para tu instancia.
- Usa los registros de auditoría para monitorizar el acceso a tu instancia. De esta forma, puedes determinar si hay algún problema asociado a la actividad de los administradores de la instancia (el registro de auditoría
Admin Activity
) o a los usuarios que acceden a los datos de la instancia (el registro de auditoríaData Access
). - Usa réplicas de lectura. En Memorystore for Valkey, la replicación es asíncrona. Por lo tanto, los datos del nodo principal no aparecen en las réplicas inmediatamente. Si puedes gestionar datos que no estén completamente actualizados, usa réplicas de lectura. De esta forma, se consigue un rendimiento de lectura y una latencia considerablemente mejores.
Evita usar comandos de Valkey que consuman muchos recursos. El uso de estos comandos puede provocar los siguientes problemas de rendimiento:
- Latencia alta y tiempos de espera del cliente
- Presión de memoria causada por comandos que aumentan el uso de memoria
- Pérdida de datos durante la replicación y la sincronización de nodos porque el hilo principal de Valkey está bloqueado
- Comprobaciones del estado, observabilidad y replicación
En lugar de usar estos comandos, utiliza comandos que consuman menos recursos. Por ejemplo, para escanear 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 su empresa le permiten definir un tiempo de vencimiento para sus datos, le recomendamos que lo haga. Al definir un tiempo de vencimiento, se 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 incluyen mejoras de fiabilidad y rendimiento.
Modifica el valor del parámetro
maxmemory-policy
. Este parámetro especifica el comportamiento que sigue Valkey cuando los datos de tu instancia alcanzan el límite demaxmemory
.Cuando la memoria de tu instancia esté llena y se produzca una nueva escritura, Valkey eliminará claves para dejar espacio para la escritura en función de la
maxmemory
política de tu instancia. Si el valor del parámetro
maxmemory-policy
se define comonoeviction
, Memorystore para Valkey devuelve un error cuando la instancia alcanza su memoria máxima. Sin embargo, Memorystore for Valkey no sobrescribe ni expulsa datos. Para mejorar la disponibilidad de tu instancia, cambia el valor del parámetromaxmemory-policy
para que Memorystore for Valkey pueda desalojar claves.Para obtener más información sobre los distintos valores que puede definir para el parámetro
maxmemory-policy
, consulte Políticas de maxmemory. Para obtener más información sobre cómo actualizar este parámetro, consulte el artículo Actualizar un parámetro de configuración.Ajusta tu instancia de Memorystore for Valkey para que tenga la proporción de aciertos de caché que quieras. De esta forma, podrás ajustar el tamaño de tu base de datos para que pueda gestionar el porcentaje de hits adecuado.
Para optimizar una instancia, sigue estos pasos:
- Use las métricas de monitorización
total_keyspace_hits_count
ytotal_keyspace_misses_count
para determinar el número total de búsquedas de claves correctas y el número total de búsquedas de claves fallidas de la instancia, respectivamente. - Divide el número total de aciertos entre el número total de aciertos y fallos
(es decir, aciertos/(aciertos + fallos)). El cociente es tu tasa de aciertos. - Para ajustar la instancia y obtener la tasa de aciertos que más te convenga, escala la instancia. Puedes aumentar o reducir el número de particiones, o bien aumentar o reducir el tipo de nodo. Para obtener más información, consulta Acerca de la capacidad de las instancias de escalado.
Si aumentas la tasa de aciertos, mejorarás la latencia y el rendimiento de tu sistema. Encuentra el equilibrio que se adapte a tus objetivos de rendimiento, escalado y costes.
- Use las métricas de monitorización
De forma predeterminada, te recomendamos que ejecutes pruebas de rendimiento en tu instancia para determinar si un mayor número de conexiones aumenta el rendimiento sin saturar las conexiones. El punto de partida recomendado es configurar el cliente para que abra una conexión a cada nodo de Valkey.
Habilita el procesamiento simultáneo para que tu cliente pueda procesar más solicitudes y hacerlo más rápido. Para configurar el pipelining, usa la biblioteca del 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 multizona con alta disponibilidad en lugar de instancias de una sola zona, ya que ofrecen una mayor fiabilidad.
Si creas una instancia de alta disponibilidad, te recomendamos que uses la métrica /instance/node/replication/offset
. Con esta métrica, puede monitorizar el desfase de replicación (en bytes) de un solo nodo de su instancia. El desfase de replicación es el número de bytes que Memorystore para Valkey no ha replicado entre el nodo principal y las réplicas de lectura.