Tengo una instancia de Amazon Elastic Compute Cloud (Amazon EC2) y quiero encontrar el límite de paquetes de red por segundo (PPS) para esa instancia.
Descripción breve
Los PPS de una instancia EC2 depende de varias características de red de la instancia. Estas características incluyen los siguientes factores:
- Combinación de tráfico, TCP frente a UDP
- Número de flujos
- Tamaño del paquete
- Conexiones nuevas frente a conexiones existentes
- Reglas de grupos de seguridad aplicadas
La asignación de PPS se considera por separado de la asignación de ancho de banda general. Si bien es posible que una instancia esté por debajo del límite de ancho de banda total, puede superar el límite de PPS si el tamaño medio del paquete es demasiado pequeño. Para determinar si su instancia supera actualmente los PPS asignados, extraiga la información del controlador de ENA.
Resolución
Para realizar un análisis comparativo de PPS, utilice una prueba iperf2. Según las características de la red, los clientes pueden usar la prueba comparativa de iPerf para determinar el límite de PPS aproximado de cualquier instancia EC2.
Para llevar a cabo la prueba comparativa, siga estos pasos:
-
Utilice una imagen de Amazon Linux 2 o Amazon 2023 para crear dos instancias EC2 en la misma zona de disponibilidad.
Nota: Las instancias deben ser del mismo tipo de instancia.
-
Para instalar las herramientas de desarrollo y git en ambas instancias, ejecute los siguientes comandos:
sudo yum groupinstall "Development Tools" -y
sudo yum install git -y
-
Ejecute los siguientes comandos para cambiar el directorio al directorio /usr/local y clonar el código iPerf de Git en ambas instancias de EC2:
cd /usr/local/
sudo git clone https://git.code.sf.net/p/iperf2/code iperf2-code
-
Para crear e instalar el paquete en ambas instancias EC2, ejecute los siguientes comandos:
cd /usr/local/iperf2-codesudo
./configure
sudo make && make install
-
Para que la primera instancia actúe como el servidor de iPerf que se ejecuta en modo UDP para obtener el máximo rendimiento, ejecute iPerf:
sudo /usr/local/bin/iperf -s -u
El comando devuelve el siguiente resultado:
------------------------------------------------------------
Server listening on UDP port 5001
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
-
Para que el cliente de iPerf se conecte correctamente al servidor de iPerf, asegúrese de que el grupo de seguridad asociado al servidor permita las conexiones en 5001/UDP. Para obtener más información, consulte Ejemplo de grupo de seguridad.
-
En la segunda instancia, use el cliente de iPerf para conectarse con UDP al servidor de iPerf:
sudo /usr/local/bin/iperf -c <private_ip_of_server_instance> -u -i 1 -l 16 -b 20kpps -e -P64 -o /tmp/bw_test.txt && grep -i sum-64 /tmp/bw_test.txt
Nota: Sustituya <private_ip_of_server_instance> por la dirección IP interna del servidor de iPerf.
El resultado del comando se escribe en un archivo de registro en /tmp/bw_test.txt. Se muestra el resumen de cada segundo en que se ejecuta la prueba, así como los PPS.
El comando devuelve el siguiente resultado:
[SUM-64] 0.00-1.00 sec 9.42 MBytes 79.1 Mbits/sec 617416/2 617416 pps
[SUM-64] 1.00-2.00 sec 10.1 MBytes 84.3 Mbits/sec 658689/0 658692 pps
[SUM-64] 2.00-3.00 sec 10.1 MBytes 84.7 Mbits/sec 661837/0 661838 pps
[SUM-64] 3.00-4.00 sec 10.1 MBytes 84.6 Mbits/sec 661226/0 661226 pps
[SUM-64] 6.00-7.00 sec 9.73 MBytes 81.7 Mbits/sec 637975/0 637975 pps
[SUM-64] 7.00-8.00 sec 9.46 MBytes 79.4 Mbits/sec 620172/0 620172 pps
[SUM-64] 8.00-9.00 sec 9.46 MBytes 79.4 Mbits/sec 620150/0 620151 pps
Este resultado muestra los PPS máximos alcanzados para este tipo de instancia. Para obtener más información, consulte IPERF en el sitio web de iPerf.
Información relacionada
Documentación de usuario de iPerf2 en el sitio web de iPerf