Mejorar el rendimiento de la red entre las instancias de EC2 con ENA Express
ENA Express funciona con la tecnología Scalable Reliable Datagram (SRD) de AWS. SRD es un protocolo de transporte de red de alto rendimiento que utiliza el enrutamiento dinámico para aumentar el rendimiento y minimizar la latencia de cola. Con ENA Express, puede establecer comunicación entre dos instancias de EC2 en la misma zona de disponibilidad.
Ventajas de ENA Express
-
Aumenta el ancho de banda máximo que puede utilizar un único flujo de 5 Gbps a 25 Gbps en la zona de disponibilidad, hasta el límite de instancias agregado.
-
Reduce la latencia final del tráfico de red entre instancias de EC2, especialmente durante periodos de alta carga de red.
-
Detecta y evita las rutas de red sobrecargadas.
-
Gestiona algunas tareas directamente en la capa de red, como la reordenación de paquetes en el extremo receptor y la mayoría de las retransmisiones necesarias. Esto libera la capa de aplicación para otras tareas.
nota
-
Si su aplicación envía o recibe un gran volumen de paquetes por segundo y necesita optimizar la latencia la mayor parte del tiempo, especialmente durante los períodos en los que no hay congestión en la red, Redes mejoradas podría ser una mejor opción para su red.
-
El tráfico de ENA Express no puede enviarse a través de subredes en una zona local.
Después de habilitar ENA Express para el adjunto de interfaz de red en una instancia, la instancia de envío inicia la comunicación con la instancia de recepción y el SRD detecta si ENA Express funciona tanto en la instancia de envío como en la de recepción. Si ENA Express funciona, la comunicación puede utilizar la transmisión de SRD. Si ENA Express no funciona, la comunicación vuelve a la transmisión ENA estándar.
Durante los periodos en los que el tráfico de red sea bajo, es posible que observe un ligero aumento en la latencia de los paquetes (decenas de microsegundos) cuando el paquete utilice ENA Express. Durante esos momentos, las aplicaciones que priorizan características específicas de rendimiento de la red pueden beneficiarse de ENA Express de la siguiente manera:
-
Los procesos pueden beneficiarse del aumento del ancho de banda máximo de flujo único de 5 Gbps a 25 Gbps dentro de la misma zona de disponibilidad, hasta el límite de instancias agregado. Por ejemplo, si un tipo de instancia específico admite hasta 12,5 Gbps, el ancho de banda de flujo único también está limitado a 12,5 Gbps.
-
Los procesos que se ejecutan durante más tiempo deberían experimentar una latencia de cola reducida durante los períodos de congestión de la red.
-
Los procesos pueden beneficiarse de una distribución más uniforme y estándar de los tiempos de respuesta de la red.
Temas
- Cómo funciona ENA Express
- Tipos de instancia compatibles con ENA Express
- Requisitos previos para instancias de Linux
- Ajuste el rendimiento de la configuración de ENA Express en la instancia de Linux
- Revise los ajustes de ENA Express para su instancia de EC2
- Configurar los ajustes de ENA Express para su instancia de EC2
Cómo funciona ENA Express
ENA Express funciona con la tecnología Scalable Reliable Datagram (SRD) de AWS. Distribuye los paquetes para cada flujo de red a través de diferentes rutas de red de AWS y ajusta dinámicamente la distribución cuando detecta indicios de congestión. También gestiona la reordenación de paquetes en el extremo receptor.
Para garantizar que ENA Express pueda gestionar el tráfico de red según lo previsto, las instancias emisoras y receptoras, y la comunicación entre dichas instancias deben cumplir todos los requisitos siguientes:
-
Se admiten los tipos de instancia de envío y recepción. Para obtener más información, consulte la tabla Tipos de instancia compatibles con ENA Express.
-
Tanto las instancias de envío como las de recepción deben tener configurado ENA Express. Si hay diferencias en la configuración, puede encontrarse con situaciones en las que el tráfico adopte por defecto la transmisión ENA estándar. El siguiente escenario muestra lo que puede ocurrir.
Escenario: diferencias en la configuración
instancia ENA Express habilitado UDP usa ENA Express instancia 1 Sí Sí instancia 2 Sí No En este caso, el tráfico TCP entre las dos instancias puede utilizar ENA Express, ya que ambas instancias lo habilitaron. Sin embargo, dado que una de las instancias no utiliza ENA Express para el tráfico de UDP, la comunicación entre estas dos instancias a través de UDP utiliza la transmisión ENA estándar.
-
Las instancias de envío y recepción deben ejecutarse en la misma zona de disponibilidad.
-
La ruta de red entre las instancias no debe incluir cajas de middleware. ENA Express no admite actualmente cajas de middleware.
-
(Solo instancias de Linux) Para aprovechar todo el potencial del ancho de banda, utilice la versión 2.2.9 o superior del controlador.
-
(Solo instancias de Linux) Para generar métricas, utilice la versión 2.8 o superior del controlador.
Si no se cumple algún requisito, las instancias utilizan el protocolo TCP/UDP estándar, pero sin SRD para comunicarse.
Para asegurarse de que el controlador de red de su instancia está configurado para un rendimiento óptimo, revise las prácticas recomendadas para los controladores ENA. Estas prácticas recomendadas también se aplican a ENA Express. Para obtener más información, consulte Guía sobre la optimización de rendimiento y las prácticas recomendadas para el controlador ENA de Linux
nota
Amazon EC2 se refiere a la relación entre una instancia y una interfaz de red conectada a ella como un adjunto. La configuración de ENA Express se aplica al adjunto. Si la interfaz de red se desvincula de la instancia, el adjunto deja de existir y la configuración de ENA Express que se le aplicaba deja de estar vigente. Lo mismo ocurre cuando se finaliza una instancia, aunque la interfaz de red permanezca.
Después de habilitar ENA Express para los adjuntos de interfaz de red tanto en la instancia de envío como en la de recepción, puede utilizar las métricas de ENA Express para asegurarse de que sus instancias aprovechen al máximo las mejoras de rendimiento que proporciona la tecnología SRD. Para obtener más información sobre las métricas de ENA Express, consulte Métricas para ENA Express.
Tipos de instancia compatibles con ENA Express
Las siguientes pestañas contienen los tipos de instancias compatibles con ENA Express.
Requisitos previos para instancias de Linux
Para asegurarse de que ENA Express puede funcionar eficazmente, actualice la configuración de la instancia de Linux de la siguiente manera.
-
Si la instancia usa marcos gigantes, ejecute el siguiente comando para establecer su unidad de transmisión máxima (MTU) en
8900
.[ec2-user ~]$
sudo ip link set dev
eth0
mtu8900
-
Aumente el tamaño del anillo del receptor (Rx), como se indica a continuación:
[ec2-user ~]$
ethtool -G
device
rx 8192 -
Para maximizar el ancho de banda de ENA Express, configure los límites de cola de TCP de la siguiente manera:
-
Establezca el límite de colas pequeñas de TCP en 1 MB o más. Esto aumenta la cantidad de datos que están en cola para su transmisión en un socket.
sudo sh -c 'echo
1048576
> /proc/sys/net/ipv4/tcp_limit_output_bytes' -
Deshabilite los límites de cola de bytes en el dispositivo eth si están habilitados para su distribución de Linux. Esto aumenta los datos en cola que se van a transmitir en la cola del dispositivo.
sudo sh -c 'for txq in /sys/class/net/
eth0
/queues/tx-*; do echo max > ${txq}/byte_queue_limits/limit_min; done'nota
El controlador ENA de la distribución de Amazon Linux desactiva los límites de cola de bytes de forma predeterminada.
-
Ajuste el rendimiento de la configuración de ENA Express en la instancia de Linux
A fin de comprobar la configuración de la instancia de Linux para un rendimiento óptimo de ENA Express, puede ejecutar el siguiente script que está disponible en el repositorio de Amazon GitHub:
https://github.com/amzn/amzn-ec2-ena-utilities/blob/main/ena-express/check-ena-express-settings.sh
El script ejecuta una serie de pruebas y sugiere cambios de configuración, tanto recomendados como necesarios.