¿Cómo puedo comparar el rendimiento de la red entre instancias de Linux de Amazon EC2 en la misma VPC?

8 minutos de lectura
0

Quiero medir el ancho de banda de la red entre instancias de Linux de Amazon Elastic Compute Cloud (Amazon EC2) que están en la misma Amazon Virtual Private Cloud (Amazon VPC).

Resolución

Definición del tipo, el tamaño y la configuración de la instancia que se utilizará para probar el rendimiento de la red

Cuando las instancias están en la misma VPC, varios factores pueden provocar diferencias significativas en el rendimiento de la red entre los diferentes entornos de nube. Se recomienda evaluar periódicamente el rendimiento de la red de su entorno y utilizarlo como referencia para mejorar el rendimiento de las aplicaciones. Las pruebas de rendimiento de la red proporcionan información valiosa para determinar los mejores tipos, tamaños y configuraciones de instancias de EC2 para sus necesidades.

Modificación de las instancias para mejorar el rendimiento de la red

Mantener las instancias cerca unas de otras

Asegúrese de que sus instancias estén cerca. Las instancias que están físicamente más cerca proporcionan un mejor rendimiento. Las instancias que están más alejadas unas de otras pueden provocar latencia en la red. Las instancias de la misma zona de disponibilidad o región de AWS tienen un mejor rendimiento de red que las instancias de EC2 de diferentes zonas de disponibilidad o regiones. En los siguientes escenarios, las instancias se alejan progresivamente unas de otras:

  • Instancias en la misma zona de disponibilidad en la misma región
  • Instancias en zonas de disponibilidad diferentes en la misma región
  • Instancias en regiones diferentes en el mismo continente
  • Instancias en regiones diferentes en continentes distintos

Aumento de la MTU de la instancia

Aumente su unidad de transmisión máxima (MTU). Todos los tipos de instancias de EC2 admiten 1500 MTU. Todas las instancias de la generación actual y las instancias C3, G2, I2, M3 y R3 de la generación anterior admiten tramas gigantes. Las tramas gigantes permiten más de 1500 MTU. Sin embargo, las instancias que admiten tramas gigantes se pueden limitar a 1500 MTU en ciertos escenarios.

Aumento del tamaño de la instancia

Aumente el tamaño de la instancia. Los tamaños de instancia más grandes para un tipo de instancia suelen ofrecer un mejor rendimiento de red que los tamaños de instancia más pequeños del mismo tipo.

Uso de la compatibilidad con redes mejoradas para Linux

Use redes mejoradas. Las redes mejoradas proporcionan un mayor rendimiento y una latencia consistentemente más baja entre las instancias. Todas las instancias de la generación actual utilizan los controladores Elastic Network Adapter (ENA) o ENA Express para activar las redes mejoradas de forma predeterminada.

Los tipos de instancia de generaciones anteriores que admiten redes mejoradas pueden requerir configuraciones adicionales para usar redes mejoradas.

Para obtener más información, consulte ¿Cómo puedo activar y configurar las redes mejoradas en mis instancias de EC2?

Colocar las instancias en grupos de ubicación

Inicie instancias interdependientes en un grupo de ubicación para satisfacer las necesidades de su carga de trabajo. La computación de alto rendimiento (HPC) proporciona un ancho de banda de bisección completa y baja latencia, y admite velocidades de red de hasta 100 GB, según el tipo de instancia.

Uso de un mecanismo de crédito de E/S de red para asignar el ancho de banda de la red

Para comprobar si el tipo de instancia puede usar un crédito de red de E/S para superar el ancho de banda básico, consulte Especificaciones de red.

Configuración de las instancias de prueba

Siga estos pasos:

  1. Inicie dos instancias de Linux de prueba.
  2. Compruebe que las instancias admitan redes mejoradas para Linux y que estén en la misma VPC.
  3. (Opcional) Si va a realizar pruebas de red entre instancias que no admiten tramas gigantes, configure la MTU de red en su instancia.
  4. Use SSH para conectarse a las instancias para comprobar si puede acceder a ellas.

Instalación de la herramienta de comparación de red iperf3 en ambas instancias

En algunas distribuciones, como Amazon Linux, iperf3 forma parte del repositorio Extra Packages for Enterprise Linux (EPEL). Para activar el repositorio EPEL, consulte ¿Cómo puedo activar el repositorio EPEL para mi instancia de Amazon EC2 que ejecuta CentOS, RHEL o Amazon Linux?

Para obtener más información sobre la herramienta iperf3, consulte iperf2/iperf3 en el sitio web de ESnet.

Utilice SSH para conectarse a sus instancias de Linux. A continuación, ejecute uno de los siguientes comandos en su sistema operativo (SO) para instalar iperf3.

Red Hat Enterprise Linux (RHEL) 9:

$ sudo dnf -y install iperf3

Debian o Ubuntu:

$ sudo apt-get install -y iperf3

CentOS 6/7:

$ sudo yum -y install epel-release && yum -y install iperf3

Amazon Linux 2023:

$ sudo yum -y install iperf3

Comprobación del rendimiento de la red TCP entre las instancias

De forma predeterminada, iperf3 se comunica a través del puerto 5001 cuando prueba el rendimiento de TCP. Sin embargo, puede usar el modificador -p para cambiar el puerto. Asegúrese de configurar los grupos de seguridad para permitir la comunicación a través del puerto que utiliza iperf3.

Para configurar la primera instancia como servidor para escuchar en un puerto TCP específico, ejecute el siguiente comando:

$ sudo iperf3 -s -p 5001

Nota: Si decide cambiar el puerto, sustituya 5001 por su número de puerto.

Configure la segunda instancia como cliente y, a continuación, ejecute una prueba en el servidor con los parámetros pertinentes. Por ejemplo, el siguiente comando inicia una prueba de TCP en la instancia de servidor especificada con 40 conexiones paralelas:

$ sudo iperf3 -c 172.31.30.41 --parallel 40 -i 1 -t 2

El resultado muestra el intervalo y los datos que se transfieren en cada flujo de cliente y el ancho de banda que utiliza cada flujo de cliente. El siguiente resultado de iperf3 muestra los resultados de las pruebas de dos instancias de EC2 de Linux c5n.18xlarge iniciadas en un grupo con ubicación en clúster. El ancho de banda total transmitido en todas las conexiones es de 97,6 Gbps.

Resultado de ejemplo:

------------------------------------------------------------------------------------Client connecting to 172.31.30.41, TCP port 5001
TCP window size:  975 KByte (default)
------------------------------------------------------------------------------------
[  8] local 172.31.20.27 port 49498 connected with 172.31.30.41 port 5001
[ 38] local 172.31.20.27 port 49560 connected with 172.31.30.41 port 5001
[ 33] local 172.31.20.27 port 49548 connected with 172.31.30.41 port 5001
[ 40] local 172.31.20.27 port 49558 connected with 172.31.30.41 port 5001
[ 36] local 172.31.20.27 port 49554 connected with 172.31.30.41 port 5001
[ 39] local 172.31.20.27 port 49562 connected with 172.31.30.41 port 5001
...
[SUM]  0.0- 2.0 sec  22.8 GBytes  97.6 Gbits/sec

Comprobación del rendimiento de la red UDP entre las instancias

De forma predeterminada, iperf3 se comunica a través del puerto 5001 cuando prueba el rendimiento de UDP. Sin embargo, puede usar el modificador -p para cambiar el puerto. Asegúrese de configurar los grupos de seguridad para permitir la comunicación a través del puerto que utiliza iperf3.

Nota: El valor predeterminado para UDP es de 1 Mbps, a menos que especifique un ancho de banda diferente.

Para configurar la primera instancia como servidor para escuchar en un puerto UDP específico, ejecute el siguiente comando:

$ sudo iperf3 -s -u -p 5001

Nota: Si decide cambiar el puerto, sustituya 5001 por su número de puerto.

Configure una segunda instancia como cliente y, a continuación, ejecute una prueba en el servidor con los parámetros deseados. El siguiente ejemplo ejecuta una prueba de UDP en la instancia de servidor con el parámetro -b establecido en 5g. El parámetro -b cambia el ancho de banda a 5 Gbps respecto al valor predeterminado de UDP de 1 Mbps. 5 Gbps es el rendimiento de red máximo que puede proporcionar una instancia c5n.18xlarge para un único flujo de tráfico dentro de una VPC:

$ sudo iperf3 -c 172.31.1.152 -u -b 5g

Nota: UDP no tiene conexión y carece de los algoritmos de control de congestión de TCP. Cuando hace pruebas con iperf3, el ancho de banda que obtiene de UDP puede ser inferior al ancho de banda que obtiene de TCP.

Resultado de ejemplo:

$ sudo iperf3 -c 172.31.30.41 -u -b 5g
------------------------------------------------------------------------------------
Client connecting to 172.31.30.41, UDP port 5001
Sending 1470 byte datagrams, IPG target: 2.35 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------------------------------
[  3] local 172.31.20.27 port 39022 connected with 172.31.30.41 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3] 0.0-10.0 sec  5.82 GBytes  5.00 Gbits/sec
[  3] Sent 4251700 datagrams
[  3] Server Report:
[  3] 0.0-10.0 sec  5.82 GBytes  5.00 Gbits/sec   0.003 ms 1911/4251700 (0.045%)
[  3] 0.00-10.00 sec  1 datagrams received out-of-order

El resultado del ejemplo anterior muestra los siguientes valores:

  • Intervalo (tiempo)
  • Cantidad de datos transferidos
  • Ancho de banda alcanzado
  • Fluctuación (la desviación en el tiempo para la llegada periódica de los datagramas)
  • Pérdida y total de datagramas de UDP

Información relacionada

Disk Testing using iperf3 (Pruebas en el disco con iperf3) en el sitio web de ESnet

Network tuning (Ajuste de red) en el sitio web de ESnet

Throughput Tool Comparison (Comparación de herramientas de rendimiento) en el sitio web de ESnet

Iperf2 en el sitio web de SourceForge

iperf3 FAQ (Preguntas frecuentes sobre iperf3) en el sitio web de ESnet

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 6 meses