Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Elección del tamaño del nodo
El tamaño de nodo que seleccione para su ElastiCache clúster afecta a los costes, el rendimiento y la tolerancia a errores.
Tamaño del nodo (Valkey y OSS Redis)
Para obtener información sobre las ventajas de los procesadores Graviton, consulte Procesador AWS Graviton
Responder a las siguientes preguntas puede ayudarle a determinar el tipo de nodo mínimo que necesita para su implementación de Valkey o Redis: OSS
-
¿Espera cargas de trabajo limitadas por el rendimiento con múltiples conexiones de cliente?
Si este es el caso y utiliza la OSS versión 5.0.6 o superior de Redis, puede mejorar el rendimiento y la latencia con nuestra función de E/S mejorada, cuando está disponible, y CPUs se utiliza para reducir la carga de las conexiones de los clientes, en nombre del motor de Redis. OSS Si utiliza la OSS versión 7.0.4 o superior de Redis, además de la E/S mejorada, obtendrá una aceleración adicional con la multiplexación de E/S mejorada, en la que cada subproceso de E/S de red dedicado canaliza los comandos de varios clientes al OSS motor de Redis, aprovechando la capacidad de OSS Redis de procesar los comandos de manera eficiente en lotes. En ElastiCache (RedisOSS) v7.1 y versiones posteriores, ampliamos la funcionalidad mejorada de los subprocesos de E/S para gestionar también la lógica de la capa de presentación. Por capa de presentación, lo que queremos decir es que los subprocesos de E/S mejorados ahora no solo leen las entradas del cliente, sino que también las analizan en el formato de comandos OSS binarios de Redis, que luego se reenvían al subproceso principal para su ejecución, lo que mejora el rendimiento. Consulte la entrada de blog
y la página de versiones compatibles para obtener más información. -
¿Tiene cargas de trabajo que acceden regularmente a un pequeño porcentaje de sus datos?
Si este es el caso y utiliza la versión 6.2 o posterior OSS del motor Redis, puede aprovechar la organización de los datos por niveles eligiendo el tipo de nodo r6gd. Con la organización de datos por niveles, los datos utilizados menos recientemente se almacenan en. SSD Cuando se recupera, hay un pequeño costo de latencia, que se equilibra con el ahorro de costos. Para obtener más información, consulte Organización de datos por niveles en ElastiCache.
Para obtener más información, consulte Tipos de nodos compatibles.
-
¿Cuánta memoria total necesita para sus datos?
Para obtener una estimación general, tome el tamaño de los elementos que desea almacenar en la caché. Multiplique este tamaño por el número de elementos que desea conservar en la caché al mismo tiempo. Para obtener una estimación razonable del tamaño de los elementos, serialice los elementos de la caché y cuente los caracteres. A continuación, divida esto entre el número de particiones de su clúster.
Para obtener más información, consulte Tipos de nodos compatibles.
-
¿Qué versión de Redis utilizas? OSS
OSSLas versiones de Redis anteriores a la 2.8.22 requieren reservar más memoria para la conmutación por error, las instantáneas, la sincronización y la conversión de una réplica a las operaciones principales. Este requisito se debe a que debe disponer de suficiente memoria disponible para todas las operaciones de escritura que se producen durante el proceso.
OSSLa versión 2.8.22 y las posteriores de Redis utilizan un proceso de guardado sin bifurcación que requiere menos memoria disponible que el proceso anterior.
Para más información, consulte los siguientes temas:
-
¿Qué volumen de operaciones de escritura realiza su aplicación?
Las aplicaciones que realizan un elevado volumen de operaciones de escritura pueden requerir un mayor volumen de memoria disponible (memoria no usada por los datos) a la hora de tomar instantáneas o en casos de conmutación por error. Cuando se aplica el proceso
BGSAVE
, debe tener suficiente memoria que no sea utilizada por los datos para alojar todas las escrituras que se producen durante el procesoBGSAVE
. Algunos ejemplos son cuando se toma una instantánea, cuando se sincroniza un clúster principal con una réplica de un clúster y cuando se habilita la función de solo adjuntar archivos (). AOF Otro ejemplo es cuando se promueve una réplica a principal (si tiene habilitado Multi-AZ). El peor de los casos es cuando todos los datos se reescriben durante el proceso. En este caso, necesita un tamaño de instancia de nodo con el doble de la memoria necesaria solo para los datos.Para obtener información más detallada, consulte Asegurarse de tener suficiente memoria para hacer una instantánea de Valkey o Redis OSS.
-
¿Su implementación será un clúster independiente de Valkey o Redis OSS (modo de clúster desactivado), o un clúster de Valkey o Redis OSS (modo de clúster habilitado) con varios fragmentos?
Clúster de Valkey o Redis (modo de clúster desactivado) OSS
Si está implementando un clúster de Valkey o Redis OSS (modo de clúster deshabilitado), su tipo de nodo debe poder acomodar todos sus datos más la sobrecarga necesaria, tal como se describe en el punto anterior.
Por ejemplo, supongamos que estima que el tamaño total de todos los elementos es de 12 GB. En este caso, puede utilizar un nodo de
cache.m3.xlarge
con 13.3 GB de memoria o un nodo decache.r3.large
con 13.5 GB de memoria. Sin embargo, es posible que necesite más memoria para las operacionesBGSAVE
. Si la aplicación tiene un gran volumen de operaciones de escritura, duplique los requisitos de memoria a 24 GB como mínimo. Por lo tanto, utilice uncache.m3.2xlarge
con 27.9 GB de memoria o uncache.r3.xlarge
con 30.5 GB de memoria.Valkey o Redis OSS (modo de clúster activado) con varios fragmentos
Si va a implementar un clúster de Valkey o Redis OSS (habilitado para el modo de clúster) con varios fragmentos, el tipo de nodo debe poder alojar bytes de datos.
bytes-for-data-and-overhead / number-of-shards
Por ejemplo, suponga que estima que el tamaño total de todos los elementos es de 12 GB y tiene dos particiones. En este caso, puede utilizar un nodo de
cache.m3.large
con 6.05 GB de memoria (12 GB/2). Sin embargo, es posible que necesite más memoria para las operacionesBGSAVE
. Si la aplicación tiene un gran volumen de operaciones de escritura, duplique los requisitos de memoria a 12 GB por partición como mínimo. Por lo tanto, utilice uncache.m3.xlarge
con 13.3 GB de memoria o uncache.r3.large
con 13.5 GB de memoria. -
¿Utiliza Local Zones?
Las Zonas Locales le permiten colocar recursos, como un ElastiCache clúster, en varias ubicaciones cercanas a sus usuarios. Sin embargo, cuando elija el tamaño del nodo, tenga en cuenta que, independientemente de los requisitos de capacidad, los tamaños de nodo disponibles tienen los siguientes límites en este momento:
-
Generación actual:
Tipos de nodos M5:
cache.m5.large
,cache.m5.xlarge
,cache.m5.2xlarge
,cache.m5.4xlarge
,cache.m5.12xlarge
,cache.m5.24xlarge
Tipos de nodos R5:
cache.r5.large
,cache.r5.xlarge
,cache.r5.2xlarge
,cache.r5.4xlarge
,cache.r5.12xlarge
,cache.r5.24xlarge
Tipos de nodos T3:
cache.t3.micro
,cache.t3.small
,cache.t3.medium
-
Mientras el clúster está en ejecución, puede supervisar las métricas de uso de memoria, uso del procesador, aciertos y errores de caché publicadas en ellas. CloudWatch Es posible que observe que el clúster no tiene la tasa de aciertos que desea o que las claves se expulsan con demasiada frecuencia. En estos casos, puede elegir un tamaño de nodo diferente con especificaciones más grandes CPU y de memoria.
Al monitorear el CPU uso, recuerde que Valkey y Redis OSS son de un solo subproceso. Por lo tanto, multiplique el CPU uso informado por la cantidad de CPU núcleos para obtener ese uso real. Por ejemplo, un núcleo de cuatro núcleos que CPU reporta una tasa de uso del 20 por ciento es en realidad el núcleo que Redis OSS ejecuta con una utilización del 80 por ciento.
Tamaño del nodo (Memcached)
Los clústeres de Memcached contienen uno o varios nodos entre los que se particionan los datos del clúster. Por ello, las necesidades de memoria del clúster y la memoria de un nodo están relacionadas, pero no son la misma cosa. Puede alcanzar la capacidad de memoria del clúster necesaria con varios nodos de gran tamaño o varios nodos más pequeños. Además, a medida que cambien sus necesidades, puede agregar nodos al clúster o eliminarlos y, por lo tanto, pagar solo por aquello que necesite.
La capacidad total de memoria del clúster se calcula multiplicando el número de nodos del clúster por la RAM capacidad de cada nodo tras deducir la sobrecarga del sistema. La capacidad de cada nodo depende del tipo de nodo.
cluster_capacity = number_of_nodes * (node_capacity - system_overhead)
El número de nodos del clúster es un factor clave para la disponibilidad de su clúster con Memcached. El error de un único nodo puede repercutir en la disponibilidad de su aplicación y en la carga de la base de datos de backend. En tal caso, ElastiCache proporciona un reemplazo para un nodo defectuoso y este se rellena. Para reducir este impacto en la disponibilidad, distribuya su memoria y su capacidad informática en un mayor número de nodos, cada uno con menos capacidad, en lugar de usar menos nodos de mayor capacidad.
En un escenario en el que desea disponer de 35 GB de memoria caché, puede realizar cualquiera de las siguientes configuraciones:
-
11
cache.t2.medium
nodos con 3,22 GB de memoria y 2 subprocesos en cada uno = 35,42 GB y 22 subprocesos. -
6
cache.m4.large
nodos con 6,42 GB de memoria y 2 subprocesos en cada uno = 38,52 GB y 12 subprocesos. -
3
cache.r4.large
nodos con 12,3 GB de memoria y 2 subprocesos en cada uno = 36,90 GB y 6 subprocesos. -
3
cache.m4.xlarge
nodos con 14,28 GB de memoria y 4 subprocesos en cada uno = 42,84 GB y 12 subprocesos.
Tipo de nodo | Memoria (en GiB) | Núcleos | Costo por horas* | Nodos necesarios | Memoria total (en GiB) | Núcleos totales | Costo mensual |
---|---|---|---|---|---|---|---|
cache.t2.medium | 3.22 | 2 | 0,068 USD | 11 | 35,42 | 22 | 538,56 USD |
cache.m4.large | 6.42 | 2 | 0,156 USD | 6 | 38,52 | 12 | 673,92 USD |
cache.m4.xlarge | 14.28 | 4 | 0,311 USD | 3 | 42.84 | 12 | 671,76 USD |
cache.m5.xlarge | 12.93 | 4 | 0,311 USD | 3 | 38,81 | 12 | 671,76 USD |
cache.m6g.large | 6.85 | 2 | 0,147$ | 6 | 41,1 | 12 | 635$ |
cache.r4.large | 12.3 | 2 | 0,228 USD | 3 | 36,9 | 6 | 492,48 USD |
cache.r5.large | 13.07 | 2 | 0,216 USD | 3 | 39,22 | 6 | 466,56 USD |
cache.r6g.large | 13.07 | 2 | 0,205$ | 3 | 42.12 | 6 | 442$ |
* Costo por hora por nodo al 8 de octubre de 2020. | |||||||
Costo mensual con un 100 % de uso durante 30 días (720 horas). |
Estas opciones proporcionan una capacidad de memoria similar pero con diferencias de costo y capacidad de cómputo. Para comparar los costes de tus opciones específicas, consulta los ElastiCache precios de Amazon
Para clústeres que ejecutan Memcached, parte de la memoria disponible en cada nodo se usa para la conexión. Para obtener más información, consulte Capacidad adicional para conexiones de Memcached.
El uso de varios nodos requiere distribuir las claves entre ellos. Cada nodo tiene su propio punto de conexión. Para facilitar la administración de los puntos finales, puede utilizar ElastiCache la función de detección automática, que permite a los programas cliente identificar automáticamente todos los nodos de un clúster. Para obtener más información, consulte Identifique automáticamente los nodos de su clúster (Memcached).
En algunos casos, es posible que no se encuentre seguro de cuánta capacidad necesita. Si es así, para las pruebas recomendamos comenzar con un nodo cache.m5.large
. A continuación, supervise el uso de la memoria, CPU la utilización y la tasa de aciertos de la caché con ElastiCache las métricas que se publican en Amazon CloudWatch. Para obtener más información sobre CloudWatch las métricas de ElastiCache, consulteSupervisión del uso con CloudWatch métricas. Para cargas de trabajo de producción y de mayor tamaño, los nodos R5 ofrecen el mejor rendimiento y RAM rentabilidad.
Si su clúster no tiene la tasa deseada, podrá agregar más nodos fácilmente para aumentar la memoria total disponible en el clúster.
Si su clúster está limitado CPU pero tiene una tasa de aciertos suficiente, configure un clúster nuevo con un tipo de nodo que proporcione más potencia de procesamiento.