En esta página, se describen las especificaciones de instancias y nodos para las instancias de Memorystore para Valkey. Si necesitas instrucciones para crear una instancia, consulta Crea instancias.
Elige un tipo de nodo
Todos los nodos de tu instancia usan el mismo tipo de nodo que elijas. El mejor tipo de nodo para tu instancia depende de tus requisitos de precio, rendimiento y capacidad del espacio de claves.
El tipo de nodo shared-core-nano
es para cargas de trabajo pequeñas. Este tipo de nodo proporciona un rendimiento variable y no tiene un ANS, lo que lo hace inadecuado para las cargas de trabajo de producción.
El tipo de nodo standard-small
te permite aprovisionar instancias pequeñas y aumentar tu instancia en incrementos más pequeños a costos potencialmente más bajos que otros tipos de nodos. standard-small
también ofrece la ventaja de distribuir tu keyspace en más nodos con un recuento total de CPU virtuales más alto. Esto ofrece una mejor relación precio-rendimiento en comparación con highmem-medium
, siempre y cuando la capacidad total del espacio de claves de los nodos más pequeños sea suficiente para tus necesidades de datos.
Solo recomendamos elegir el tipo de nodo highmem-xlarge
si necesitas más capacidad de instancias de la que proporciona highmem-medium
. Si bien el tipo de nodo highmem-xlarge
es cuatro veces más grande que el tipo highmem-medium
, el rendimiento no es cuatro veces mayor, ya que el rendimiento de Valkey 7.2 no se ajusta de forma lineal cuando se agregan CPU virtuales a nodos cada vez más grandes (escalamiento vertical). En cambio, para obtener un mejor rendimiento del precio, debes aumentar la escala agregando más nodos a una instancia.
Especificación del tipo de nodo
La capacidad y las características del nodo dependen del tipo de nodo que elijas entre los cuatro disponibles:
Capacidad del espacio de claves y sobrecarga reservada
Tipo de nodo | Capacidad predeterminada del espacio de claves grabable | Capacidad total de nodos |
---|---|---|
shared-core-nano | 1.12 GB | 1.4 GB |
standard-small | 5.2 GB | 6.5 GB |
highmem-medium | 10.4 GB | 13 GB |
highmem-xlarge | 46.4 GB | 58 GB |
Memorystore reserva automáticamente una parte de la capacidad de tu instancia para ayudar a evitar errores de memoria insuficiente (OOM). Esto garantiza una experiencia fluida de lectura y escritura de claves. Los límites de memoria y los detalles de almacenamiento son los siguientes:
Personaliza tu almacenamiento: Si bien te recomendamos que uses la configuración predeterminada, tienes la opción de ajustar la cantidad de almacenamiento reservado con la configuración de
maxmemory
. Para obtener información sobremaxmemory
, consulta Configuraciones de instancias compatibles.¿Cuánto espacio de almacenamiento obtienes? Consulta la columna Capacidad predeterminada del espacio de claves grabable de la tabla anterior. Aquí se muestra cuánto almacenamiento está disponible para tus llaves de forma predeterminada.
Maximizar el almacenamiento: Si deseas obtener el máximo almacenamiento posible, la columna Capacidad total de nodos muestra el límite de almacenamiento cuando configuras
maxmemory
en el 100%. Sin embargo, no recomendamos elegir un valor demaxmemory
superior al parámetro de configuración predeterminado.El tipo de nodo
shared-core-nano
tiene un límite fijo de 1.12 GB y no se puede cambiar con la configuración demaxmemory
.
Características del nodo
Tipo de nodo | Recuento de CPU virtuales | ANS ofrecido | Cantidad máxima de clientes | Memoria máxima para clientes (maxmemory-clients configuration) |
---|---|---|---|---|
shared-core-nano | 0.5 | No | 5,000 | 12% |
standard-small | 2 | Sí | 16,000 (predeterminado). El valor máximo es 32,000. | 7% |
highmem-medium | 2 | Sí | 32,000 (predeterminado). El valor máximo es 64,000. | 7% |
highmem-xlarge | 8 | Sí | 64,000 | 4% |
Escala una instancia
Como parte de la creación de una instancia de Memorystore para Valkey, debes elegir un tipo de nodo para la instancia y especificar la cantidad de fragmentos que tendrá. Después de crear la instancia y a medida que cambien las necesidades de capacidad de tu instancia, es posible que debas escalarla de las siguientes maneras:
- Cambia la cantidad de fragmentos de tu instancia. Esto se conoce como escalamiento horizontal.
Para escalar una instancia de forma horizontal, realiza una de las siguientes acciones:
- Agrega fragmentos a la instancia. Esto significa escalar horizontalmente la instancia.
- Quita fragmentos de la instancia. Esto significa escalar la instancia hacia adentro.
- Cambia el tipo de nodo de tu instancia. Esto se conoce como escalamiento vertical. Para escalar una instancia de forma vertical, cambia el tipo de nodo de la instancia a uno de los siguientes tipos de nodo:
- Cambia a un tipo de nodo más grande. Esto significa escalar la instancia verticalmente.
- Cambia a un tipo de nodo más pequeño. Esto reduce la escala de la instancia.
Especificación de la instancia
En esta sección, se muestran las capacidades mínimas y máximas de la instancia, según su forma, el tipo de nodo y la cantidad de réplicas.
Capacidad mínima de escritura
La capacidad de escritura es la cantidad de almacenamiento disponible para escribir claves. Es igual al tamaño de un nodo de instancia. Por lo tanto, según el tipo de nodo, la capacidad mínima de escritura es de 1.4 GB, 6.5 GB, 13 GB o 58 GB. La capacidad de escritura mínima no se ve afectada por la cantidad de réplicas que elijas.
Capacidad máxima de escritura
Tipo y tamaño del nodo | Capacidad máxima en el modo de clúster inhabilitado | Capacidad máxima en el modo de clúster habilitado, dada una forma de instancia de 250 nodos principales y 0 réplicas por nodo | Capacidad máxima en el modo de clúster habilitado para una forma de instancia determinada de 125 nodos principales y 1 réplica por nodo | Capacidad máxima en el modo de clúster habilitado para una forma de instancia determinada de 83 nodos principales y 2 réplicas por nodo |
---|---|---|---|---|
shared-core-nano: 1.4 GB | 1.12 GB | 350 GB | 175 GB | 116.2 GB |
standard-small: 6.5 GB | 5.2 GB | 1,625 GB | 812.5 GB | 539.5 GB |
highmem-medium: 13 GB | 10.4 GB | 3,250 GB | 1,625 GB | 1,079 GB |
highmem-xlarge: 58 GB | 46.4 GB | 14,500 GB | 7,250 GB | 4,814 GB |
Rendimiento
El uso de la herramienta de comparativas de OSS memtier en la región us-central1
produjo entre 120,000 y 130,000 operaciones por segundo por cada nodo de 2 CPU virtuales (standard-small
y highmem-medium
) con latencia de microsegundos y un tamaño de datos de 1 KiB.
Te recomendamos que realices tus propias comparativas con cargas de trabajo reales o sintéticas que se parezcan a tu tráfico de producción. Además, te recomendamos que dimensiones tus instancias con un búfer (o "espacio libre") para los picos de carga de trabajo o el tráfico inesperado. Para obtener más orientación, consulta las prácticas recomendadas.
Extremos de instancias para el modo de clúster habilitado
En esta sección, se explican los extremos de descubrimiento y de datos que tiene la instancia con el modo de clúster habilitado.
Extremo de detección
Cada instancia tiene un extremo de descubrimiento al que se conecta tu cliente. Es una combinación de una dirección IP y un número de puerto. Para obtener instrucciones sobre cómo encontrar el extremo de detección de tu instancia, consulta Cómo ver el extremo de detección de tu instancia.
Tu cliente también lo usa para el descubrimiento de nodos. Tu cliente usa el extremo de detección para recuperar la topología de nodos de tu instancia, inicializar clientes de terceros y mantenerlos actualizados en estado estable. La topología de nodos resultante proporciona extremos de nodos (combinaciones de IP y puerto) para que tu cliente externo los almacene en caché en la memoria. Luego, tu cliente se encarga de las actualizaciones y los redireccionamientos automáticamente sin necesidad de realizar ningún otro cambio en la aplicación. Para obtener información sobre el comportamiento de detección de clientes y las prácticas recomendadas, consulta Detección de clientes.
El extremo de detección tiene alta disponibilidad porque está respaldado por varios nodos en varias zonas para entregar la topología de nodos. La topología de entrega a través del extremo es sólida incluso cuando se enfrenta a fallas o actualizaciones de nodos de backend.
Tu extremo de detección tiene el siguiente comportamiento:
El extremo de detección de tu instancia permanece sin cambios durante todo el ciclo de vida de la instancia, incluso durante el mantenimiento o cualquier otra acción que realices, como el ajuste de escala vertical o horizontal, o el cambio en la cantidad de réplicas.
Los extremos de los nodos pueden cambiar y reciclarse a medida que se agregan y quitan nodos con el tiempo. Lo ideal es que uses un cliente externo que pueda controlar estos cambios automáticamente a través de redireccionamientos y actualizaciones de la topología. Puedes encontrar ejemplos de clientes externos en Muestras de código de la biblioteca cliente. Tu aplicación no debe tener dependencias ni suposiciones de que los extremos de los nodos permanecerán sin cambios para una instancia determinada.
Extremo de datos
Cada instancia también tiene un extremo de datos de Private Service Connect que Memorystore para Valkey usa para la conexión del cliente. No te conectes a este extremo directamente. En cambio, Memorystore para Valkey usa este extremo para conectar tu cliente a los nodos de tu instancia.
Extremos de instancias para el modo de clúster inhabilitado
En esta sección, se explican los extremos principales y de lector que tiene cada instancia con el modo de clúster inhabilitado.
Extremo principal
El extremo principal es una dirección IP a la que se conecta tu aplicación. Este extremo dirige el tráfico al nodo principal actual. Las conexiones al endpoint principal pueden enviar consultas de lectura y escritura.
Tu endpoint principal tiene el siguiente comportamiento:
- La dirección IP del extremo principal permanece sin cambios durante todo el ciclo de vida de la instancia. Si el nodo subyacente falla o experimenta una conmutación por error automática, Memorystore para Valkey ajusta la dirección IP automáticamente. Los clientes no requieren cambios con el extremo. Sin embargo, si los eventos no planificados provocan fallas en la conexión, los clientes intentan restablecerla.
- Si un nodo principal se convierte en la réplica, las conexiones a este nodo de réplica finalizan y Memorystore para Valkey redirecciona las conexiones nuevas al nuevo nodo principal a través de una conmutación por error automática. Se espera que los clientes reintenten las conexiones con la retirada exponencial.
- Si la instancia tiene 1 réplica, el extremo principal tiene una disponibilidad más alta que el extremo de lectura. Si la instancia tiene 2 réplicas aprovisionadas, tanto el extremo principal como el extremo de lectura tienen alta disponibilidad.
Extremo del lector
El extremo de lectura es una dirección IP a la que se conecta tu aplicación. Este extremo balancea las conexiones de carga entre las réplicas de la instancia de manera uniforme. Las conexiones a la réplica de lectura pueden enviar consultas de lectura, pero no de escritura. El extremo de lectura aumenta el rendimiento y proporciona aislamiento del tráfico del nodo principal. Para las aplicaciones que requieren acceso operativo, como los trabajos sin conexión y las secuencias de comandos riesgosas, te recomendamos que aísles el tráfico del nodo principal con el extremo de lectura.
Tu extremo de lectura tiene el siguiente comportamiento:
- Incluso cuando una instancia no tiene réplicas de lectura aprovisionadas, Memorystore para Valkey aprovisiona la dirección IP del extremo de lectura para permitir la adición dinámica de réplicas de lectura.
- Si el sistema no tiene réplicas de lectura disponibles a las que enrutar el tráfico, se finalizará la conexión al extremo de lectura. Sin embargo, no enrutará las conexiones realizadas al extremo del lector hacia el nodo principal.
- Si un nodo de réplica se convierte en el nodo principal, las conexiones a este nodo principal finalizan y Memorystore para Valkey redirecciona las conexiones nuevas al nuevo nodo de réplica. Los clientes reintentan estas conexiones con la retirada exponencial.
Para obtener información sobre cómo controlar errores comunes cuando te conectas a extremos con el modo de clúster inhabilitado, consulta Cómo controlar errores en el modo de clúster inhabilitado.