En esta página se describen las especificaciones de las instancias y los nodos de Memorystore para instancias de Valkey. Para obtener instrucciones sobre cómo crear una instancia, consulta el artículo Crear instancias.
Elegir 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 de espacio de claves.
El tipo de nodo shared-core-nano
es para cargas de trabajo pequeñas. Este tipo de nodo ofrece un rendimiento variable y no tiene un SLA, por lo que no es adecuado para cargas de trabajo de producción.
El tipo de nodo standard-small
te permite aprovisionar instancias pequeñas y aumentar el tamaño de tu instancia en incrementos más pequeños a un coste potencialmente inferior que otros tipos de nodos. standard-small
también ofrece la ventaja de distribuir tu espacio de claves en más nodos con un mayor número total de vCPUs. Esto ofrece una mejor relación calidad-precio que highmem-medium
, siempre que 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 instancia que la que ofrece highmem-medium
. Aunque el tipo de nodo highmem-xlarge
es cuatro veces mayor que el tipo highmem-medium
, el rendimiento no es cuatro veces mayor, ya que el rendimiento de Valkey 7.2 no se escala de forma lineal cuando se añaden vCPUs a nodos cada vez más grandes (escalado vertical). En su lugar, para obtener un mejor rendimiento de los precios, debe ampliar la instancia añadiendo más nodos.
Especificación del tipo de nodo
La capacidad y las características de los nodos dependen del tipo de nodo que elijas de los cuatro disponibles:
Capacidad del espacio de claves y sobrecarga reservada
Tipo de nodo | Capacidad predeterminada del espacio de claves de escritura | Capacidad total de los 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 evitar errores de falta de memoria (OOM). De esta forma, la lectura y la escritura de claves se realizan sin problemas. Los límites de memoria y los detalles del almacenamiento son los siguientes:
Personalizar el almacenamiento: aunque te recomendamos que utilices la configuración predeterminada, puedes ajustar la cantidad de almacenamiento reservado mediante la configuración
maxmemory
. Para obtener información sobremaxmemory
, consulta Configuraciones de instancias admitidas.¿Cuánto almacenamiento obtienes? Consulta la columna Capacidad predeterminada del espacio de claves de escritura de la tabla anterior. Aquí se muestra la cantidad de almacenamiento disponible para tus claves de forma predeterminada.
Maximizar el almacenamiento: si quieres obtener el máximo almacenamiento posible, en la columna Capacidad total de los nodos se muestra el límite de almacenamiento cuando configuras
maxmemory
en 100%. Sin embargo, no recomiendes elegir un valor demaxmemory
superior al ajuste predeterminado.El tipo de nodo
shared-core-nano
tiene un límite de 1, 12 GB y no se puede cambiar con la configuraciónmaxmemory
.
Características de los nodos
Tipo de nodo | Número de vCPUs | SLA ofrecido | Número máximo de clientes | Memoria máxima para clientes (configuración maxmemory-clients) |
---|---|---|---|---|
shared-core-nano | 0,5 | No | 5000 | 12 % |
standard-small | 2 | Sí | 16.000 (predeterminado). El valor máximo es 32.000 | 7 % |
highmem-medium | 2 | Sí | 32.000 (valor predeterminado). El valor máximo es 64.000 | 7 % |
highmem-xlarge | 8 | Sí | 64.000 | 4 % |
Cuantas más vCPUs selecciones para tu instancia, mejor será el rendimiento. Si tu instancia ejecuta cargas de trabajo que requieren muchos recursos, selecciona un tipo de nodo con un número de vCPUs más alto (por ejemplo, highmem-xlarge
). Si tu instancia realiza tareas menos exigentes, selecciona un tipo de nodo con un número de vCPUs más bajo (por ejemplo, highmem-medium
).
Escalar una instancia
Al crear una instancia de Memorystore para Valkey, debes elegir un tipo de nodo para la instancia y especificar el número de fragmentos que quieres que tenga. Después de crear la instancia y a medida que cambien sus necesidades de capacidad, es posible que tengas que escalarla de las siguientes formas:
- Cambia el número de particiones de tu instancia. Esto se conoce como escalado horizontal.
Para escalar una instancia horizontalmente, puedes hacer lo siguiente:
- Añade fragmentos a la instancia. Esto significa que se está ampliando la instancia.
- Elimina fragmentos de la instancia. Esto significa que la instancia se está escalando hacia dentro.
- Cambia el tipo de nodo de tu instancia. Esto se denomina escalado vertical. Para escalar una instancia verticalmente, 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 que la instancia se está ampliando.
- 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 de instancia mínimas y máximas en función del perfil de instancia, el tipo de nodo y el número 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, en función del 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 el número de réplicas que elijas.
Capacidad máxima de escritura
Tipo y tamaño de nodo | Capacidad máxima en el modo Clúster inhabilitado | Capacidad máxima en el modo de clúster habilitado con una forma de instancia de 250 nodos principales y 0 réplicas por nodo | Capacidad máxima en el modo Clúster habilitado con una configuración de instancia de 125 nodos principales y 1 réplica por nodo | Capacidad máxima en el modo Clúster habilitado con una configuración de instancia 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 | 1625 GB | 812,5 GB | 539,5 GB |
highmem-medium - 13 GB | 10,4 GB | 3250 GB | 1625 GB | 1079 GB |
highmem-xlarge: 58 GB | 46,4 GB | 14.500 GB | 7250 GB | 4814 GB |
Rendimiento
Al usar la herramienta de comparativas de memtier de OSS en la región us-central1
, se obtuvieron entre 120.000 y 130.000 operaciones por segundo por cada nodo de 2 vCPUs (standard-small
y highmem-medium
) con una latencia de microsegundos y un tamaño de datos de 1 KiB.
Te recomendamos que hagas tus propias pruebas de rendimiento con cargas de trabajo reales o sintéticas que se parezcan al tráfico de producción. Además, le recomendamos que dimensione sus instancias con un margen de seguridad para picos de carga de trabajo o tráfico inesperado. Para obtener más información, consulta las prácticas recomendadas.
Endpoints de instancia con el modo de clúster habilitado
En esta sección se explican los endpoints de descubrimiento y de datos que tiene una instancia con el modo de clúster habilitado.
Punto de conexión de descubrimiento
Cada instancia tiene un endpoint de descubrimiento al que se conecta tu cliente. Es una combinación de una dirección IP y un número de puerto. Para ver instrucciones sobre cómo encontrar el endpoint de descubrimiento de tu instancia, consulta Ver el endpoint de descubrimiento de tu instancia.
Tu cliente también lo usa para detectar nodos. Tu cliente usa el endpoint de descubrimiento para obtener la topología de nodos de tu instancia, de modo que pueda inicializar clientes de terceros y mantenerlos actualizados en estado estable. La topología de nodos resultante proporciona los endpoints de los nodos (combinaciones de IP y puerto) para que tu cliente de terceros los almacene en caché en la memoria. A continuación, el cliente se encarga de las actualizaciones y las redirecciones automáticamente, sin que sea necesario cambiar ninguna otra aplicación. Para obtener información sobre el comportamiento de descubrimiento de clientes y las prácticas recomendadas, consulta Descubrimiento de clientes.
El endpoint de descubrimiento tiene una alta disponibilidad porque está respaldado por varios nodos en varias zonas para proporcionar la topología de nodos. La topología de servicio a través del endpoint es sólida incluso cuando se producen fallos o actualizaciones de nodos de backend.
Tu endpoint de descubrimiento se comporta de la siguiente manera:
El endpoint de descubrimiento de tu instancia no cambia durante el ciclo de vida de la instancia, ni siquiera durante el mantenimiento ni por ninguna otra acción que realices, como aumentar o reducir la escala o cambiar el número de réplicas.
Los endpoints de los nodos pueden cambiar y reciclarse a medida que se añaden y se quitan nodos con el tiempo. Lo ideal es que uses un cliente de terceros que pueda gestionar estos cambios automáticamente mediante actualizaciones de topología y redirecciones. Puedes consultar ejemplos de clientes de terceros en Ejemplos de código de bibliotecas de cliente. Tu aplicación no debe tener dependencias ni suposiciones de que los endpoints de los nodos no cambiarán en una instancia determinada.
Endpoint de datos
Cada instancia también tiene un endpoint de datos de Private Service Connect que Memorystore para Valkey usa para la conexión de clientes. No te conectes directamente a este endpoint. En su lugar, Memorystore for Valkey usa este endpoint para conectar tu cliente a los nodos de tu instancia.
Endpoints de instancia con el modo de clúster inhabilitado
En esta sección se explican los endpoints principales y de lectura que tiene cada instancia con el modo de clúster inhabilitado.
Punto final principal
El endpoint principal es una dirección IP a la que se conecta tu aplicación. Este endpoint dirige el tráfico al nodo principal actual. Las conexiones al endpoint principal pueden enviar consultas de escritura y de lectura.
Tu endpoint principal tiene el siguiente comportamiento:
- La dirección IP de tu endpoint principal no cambia durante el ciclo de vida de la instancia. Si el nodo subyacente falla o se somete a una conmutación por error automática, Memorystore for Valkey ajustará la dirección IP automáticamente. Los clientes no tienen que hacer ningún cambio en el endpoint. Sin embargo, si se producen eventos imprevistos que provocan errores de conexión, los clientes intentarán restablecer la conexión.
- Si un nodo principal se convierte en réplica, las conexiones a este nodo de réplica finalizan y Memorystore para Valkey redirige las nuevas conexiones al nuevo nodo principal mediante una conmutación por error automática. Los clientes deben volver a intentar las conexiones mediante un tiempo de espera exponencial.
- Si la instancia tiene una réplica, el endpoint principal tiene una disponibilidad mayor que el endpoint de lectura. Si la instancia tiene 2 réplicas aprovisionadas, tanto el endpoint principal como el de lectura tendrán alta disponibilidad.
Endpoint de lector
El endpoint del lector es una dirección IP a la que se conecta tu aplicación. Este endpoint balancea la carga de las conexiones entre las réplicas de la instancia de forma equitativa. Las conexiones a la réplica de lectura pueden enviar consultas de lectura, pero no de escritura. El endpoint de lectura aumenta el rendimiento y proporciona aislamiento del tráfico del nodo principal. En el caso de las aplicaciones que requieren acceso operativo, como las secuencias de comandos arriesgadas y los trabajos sin conexión, te recomendamos que aísles el tráfico del nodo principal mediante el endpoint de lectura.
Tu endpoint de lectura tiene el siguiente comportamiento:
- Aunque una instancia no tenga réplicas de lectura aprovisionadas, Memorystore para Valkey aprovisiona la dirección IP del endpoint 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 terminaría la conexión con el endpoint de lectura. Sin embargo, no dirigirá las conexiones realizadas al endpoint del lector al 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 redirige las nuevas conexiones al nuevo nodo de réplica. Los clientes vuelven a intentar estas conexiones mediante un tiempo de espera exponencial.
Para obtener información sobre cómo gestionar los errores habituales al conectarse a endpoints con el modo clúster inhabilitado, consulta Gestionar errores en el modo clúster inhabilitado.