¿Cómo puedo elegir el tipo y el tamaño de instancia correctos para mi clúster de ElastiCache para Redis?

Última actualización: 27-06-2022

¿Cómo puedo seleccionar el tamaño del nodo de Amazon ElastiCache para Redis y la configuración del clúster para que mis cargas de trabajo obtengan el mejor rendimiento?

Descripción corta

Al seleccionar el tamaño de los nodos para su clúster de ElastiCache y su configuración de clúster, tenga en cuenta lo siguiente:

  • ¿Cuánta potencia de procesamiento de la CPU necesito?
  • ¿Qué cantidad de datos necesito almacenar?
  • ¿Podrá el tamaño del nodo seleccionado gestionar el tráfico de red previsto?
  • ¿Qué modo de clúster debo elegir?

Resolución

¿Cuánta potencia de procesamiento de la CPU necesito?

Revisar las opciones de los nodos

Revise las opciones de nodo disponibles. Como Redis es un proceso de subproceso único, el rendimiento no aumenta al añadir CPU al nodo. La potencia del único núcleo de la CPU en el nodo determina el rendimiento. Cada tipo de nodo tiene su propio rendimiento de referencia. Los tipos de nodos de la generación actual proporcionan más memoria y potencia informática a un costo menor en comparación con las versiones anteriores. Por ejemplo, las instancias M5 y R5 ofrecen un mayor rendimiento a un menor costo en comparación con las M4 y R4.

Análisis comparativo de los nodos

Es una práctica recomendada hacer un análisis comparativo de los nodos para obtener una estimación del rendimiento de la instancia para la carga de trabajo prevista. Para ello, utilice la utilidad redis-benchmark. Para obtener información sobre las recomendaciones de referencia, consulte Cinco características de la carga de trabajo a tener en cuenta a la hora de dimensionar correctamente los clústeres de Amazon ElastiCache Redis.

Al realizar el análisis comparativo, simule la carga de trabajo del tráfico de la aplicación, incluyendo el número de solicitudes, la distribución de las claves y el tamaño de los elementos. Supervise las métricas de Amazon CloudWatch para el uso de la memoria, la utilización del procesador, los aciertos y los errores de la caché. Es posible que note que el clúster no tiene la tasa de aciertos que desea o que las claves se expulsan con demasiada frecuencia. Si esto ocurre, elija un tamaño de nodo diferente con especificaciones de CPU y memoria mayores.

Como Redis es un subproceso único, multiplique el uso de la CPU registrado por el número de núcleos de la CPU para obtener el uso real. Por ejemplo, una CPU de cuatro núcleos que registra una tasa de uso del 20 por ciento es en realidad un núcleo único que Redis está ejecutando al 80 por ciento de utilización.

¿Qué cantidad de datos necesitaré almacenar?

Para calcular las necesidades de almacenamiento, multiplique el tamaño medio de los elementos a almacenar en caché por el número de elementos que se encuentran en la caché al mismo tiempo. Para calcular el tamaño de los elementos, serialice los elementos de la caché, cuente los caracteres y, a continuación, divida esta suma por el número de particiones del clúster.

Tenga en cuenta el parámetro de grupo de porcentaje de memoria reservada o memoria reservada de la versión de Redis. Este parámetro reserva memoria para usos no relacionados con los datos, como las copias de seguridad del sistema y la estabilidad general del mismo. De forma predeterminada, este valor se establece en el 25 % de la memoria máxima. Tenga en cuenta este factor a la hora de determinar qué tamaño es el adecuado para los datos.

Por ejemplo, cache.r4.large tiene 12,3 GB de memoria disponible para su uso. Como su memoria reservada se ha establecido en un 25 %, el nodo almacena hasta 9,2 GB (12,3 x 75 %) de datos. El resto se reserva para otras funciones de Redis y la estabilidad del sistema.

¿Será el tipo de nodo que he seleccionado capaz de gestionar el tráfico de red previsto?

Asegúrese de que el tipo de nodo que seleccione pueda gestionar la cantidad de datos que se envían sin alcanzar el máximo de la red.

Para determinar el rendimiento máximo de un nodo de ElastiCache, ejecute un análisis comparativo en un nodo similar de Amazon Elastic Compute Cloud (Amazon EC2).

Por ejemplo, para un nodo cache.m4.large, ejecute sus pruebas en una instancia EC2 m4.large. Al ejecutar esta prueba se comprueba el rendimiento máximo teórico del nodo. También proporciona una estimación de la cantidad de ancho de banda que se puede utilizar entre el cliente y el nodo Redis. Un efecto secundario común de maximizar su red es una línea plana en el gráfico de ancho de banda, lo que indica que está agotando su hardware. Para consultar las instrucciones sobre el uso de iperf3 en la medición del rendimiento de la red entre instancias, consulte ¿Cómo puedo analizar el rendimiento de la red entre instancias Linux de Amazon EC2 en la misma VPC de Amazon?

Dado que los nodos de ElastiCache son similares a sus homólogos de EC2, observe el Rendimiento de red que aparece para cada tipo de instancia. Si el rendimiento de la red del nodo está al máximo, es posible que tenga que seleccionar un tamaño de nodo superior para mejorar el rendimiento de la red. Por ejemplo, una instancia m4.large tiene redes moderadas. Sin embargo, si la carga de trabajo está llevando al máximo la red y está recibiendo un rendimiento insuficiente, identifique un nuevo tipo de nodo que tenga un mejor rendimiento de red. El mejor rendimiento de red puede indicarse como Alto o 10 Gigabit en la columna Rendimiento de red de la página de precios.

Tenga en cuenta que el rendimiento de la red también se aplica al cliente. Si el cliente es un t2.micro con un rendimiento de red de bajo a moderado y está enviando datos a un m4.10xlarge, tendrá que maximizar el rendimiento de la red en el cliente.

¿Qué modo de clúster debe elegir?

La elección del modo adecuado para la carga de trabajo de la aplicación depende del tráfico:

Si la carga principal del clúster consiste en aplicaciones que leen datos, puede elegir un clúster Redis (modo clúster deshabilitado). A continuación, escale el clúster para que sea compatible con más operaciones de lectura agregando réplicas de lectura. Hay un máximo de 5 réplicas de lectura. Tenga en cuenta que los clústeres deshabilitados en modo clúster solo tienen una partición. Por lo tanto, el tipo de nodo debe ser lo suficientemente grande como para alojar todos los datos del clúster, así como la sobrecarga necesaria.

Si la carga del clúster es de escritura y la carga de trabajo de escritura excede lo que un nodo puede ofrecer, entonces utilice un clúster Redis (modo clúster habilitado). Los clústeres habilitados para el modo clúster distribuyen las claves entre varios nodos principales. Así, el rendimiento de escritura se distribuye entre varios nodos en lugar de un único nodo.

Si tiene una gran carga de trabajo que necesita un rendimiento extremo, utilice un clúster habilitado en modo clúster con múltiples fragmentos y múltiples réplicas de lectura para cada partición. Por ejemplo, puede crear un clúster con 15 particiones y 5 réplicas por nodo principal.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?