El iperf es una herramienta utilizada para probar el rendimiento de la red entre dos sistemas. La aplicación iperf proporciona más métricas para el rendimiento de una red. La aplicación iperf no está instalada de manera predeterminada, pero la proporciona el administrador de paquetes de la mayoría de las distribuciones.
Para los sistemas CentOS/RHEL/Fedora, utilice yum para instalar el paquete iperf.
# yum install iperf
iperf tiene la noción de un "cliente" y un "servidor" para probar el rendimiento de la red entre dos sistemas.
El siguiente ejemplo establece un gran tamaño de búfer de envío y recepción para maximizar el rendimiento y realiza una prueba durante 60 segundos, lo que debería ser suficiente para ejercitar completamente una red.
Servidor
En el sistema del servidor, se le dice a iperf que escuche la conexión de un cliente:
server # iperf3 -i 10 -s
Aquí,
-i – el intervalo para proporcionar actualizaciones periódicas de ancho de banda
-s – escuchar como un servidor
Consulte man iperf3 para obtener más información sobre opciones de línea de comandos específicas.
Cliente
En el sistema cliente, se le indica a iperf que se conecte al servidor de escucha a través del nombre de host o la dirección IP:
client # iperf3 -i 10 -w 1M -t 60 -c [server hostname or ip address]
Aquí,
-i – el intervalo para proporcionar actualizaciones periódicas de ancho de banda
-w – el tamaño del búfer del socket (que afecta a la ventana TCP). El tamaño del búfer también se establece en el servidor mediante este comando de cliente
-t – el tiempo para ejecutar la prueba en segundos
-c – conectarse a un servidor de escucha en…
Consulte man iperf3 para obtener más información sobre opciones de línea de comandos específicas.
Resultados de la prueba
Tanto el cliente como el servidor informan sus resultados una vez que se completa la prueba:
Servidor
server # iperf3 -i 10 -s ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.0.0.2, port 22216 [ 5] local 10.0.0.1 port 5201 connected to 10.0.0.2 port 22218 [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.00 sec 17.5 GBytes 15.0 Gbits/sec [ 5] 10.00-20.00 sec 17.6 GBytes 15.2 Gbits/sec [ 5] 20.00-30.00 sec 18.4 GBytes 15.8 Gbits/sec [ 5] 30.00-40.00 sec 18.0 GBytes 15.5 Gbits/sec [ 5] 40.00-50.00 sec 17.5 GBytes 15.1 Gbits/sec [ 5] 50.00-60.00 sec 18.1 GBytes 15.5 Gbits/sec [ 5] 60.00-60.04 sec 82.2 MBytes 17.3 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-60.04 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-60.04 sec 107 GBytes 15.3 Gbits/sec receiver
Cliente
client # iperf3 -i 10 -w 1M -t 60 -c 10.0.0.1 Connecting to host 10.0.0.1, port 5201 [ 4] local 10.0.0.2 port 22218 connected to 10.0.0.1 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-10.00 sec 17.6 GBytes 15.1 Gbits/sec 0 6.01 MBytes [ 4] 10.00-20.00 sec 17.6 GBytes 15.1 Gbits/sec 0 6.01 MBytes [ 4] 20.00-30.00 sec 18.4 GBytes 15.8 Gbits/sec 0 6.01 MBytes [ 4] 30.00-40.00 sec 18.0 GBytes 15.5 Gbits/sec 0 6.01 MBytes [ 4] 40.00-50.00 sec 17.5 GBytes 15.1 Gbits/sec 0 6.01 MBytes [ 4] 50.00-60.00 sec 18.1 GBytes 15.5 Gbits/sec 0 6.01 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-60.00 sec 107 GBytes 15.4 Gbits/sec 0 sender [ 4] 0.00-60.00 sec 107 GBytes 15.4 Gbits/sec receiver
Lectura de los resultados
Entre estos dos sistemas, podríamos lograr un ancho de banda de 15,4 gigabits por segundo o aproximadamente 1835 MiB (mebibytes) por segundo.
Aquí,
Intervalo significa el intervalo de prueba, el valor predeterminado es de 10 segundos y se muestra como "0.0-10.0 seg"
Transferir significa cuántos datos se transfieren entre los dos nodos en el proceso de prueba.
Ancho de banda es el indicador de rendimiento para el que utilizamos las pruebas iperf.
Prueba del rendimiento de la red con el protocolo UDP
El iperf predeterminado usa el protocolo TCP para las pruebas, como se muestra arriba. Agregue la opción "-u ” para utilizar el protocolo UDP para las pruebas de rendimiento.
1. El primer paso es iniciar el servidor.
# iperf -s -u ------------------------------------------------------------ Server listening on UDP port 5001 Receiving 1470 byte datagrams UDP buffer size: 124 KByte (default) ------------------------------------------------------------ [ 3] local 1.1.1.1 port 5001 connected with 1.1.1.2 port 51598 [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.004 ms 0/ 893 (0%)
2. El comando en el lado del cliente es como se muestra a continuación.
# iperf -u -c server ------------------------------------------------------------ Client connecting to 1.1.1.1, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 124 KByte (default) ------------------------------------------------------------ [ 3] local 1.1.1.2 port 51598 connected with 1.1.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec [ 3] Sent 893 datagrams [ 3] Server Report: [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.004 ms 0/ 893 (0%)
Cambiar el ancho de banda predeterminado en modo UDP
En el modo UDP, el cliente utiliza el ancho de banda predeterminado (1 Mbit/seg) para enviar los paquetes al servidor, por lo que podemos ver que el ancho de banda del resultado de la prueba UDP es de 1,05 Mbits/seg. Para obtener el mejor ancho de banda de red, podemos agregar la opción “-b value ” para aumentar el ancho de banda de envío:
# iperf -u -c server -b 1000M ------------------------------------------------------------ Client connecting to 1.1.1.1, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 124 KByte (default) ------------------------------------------------------------ [ 3] local 1.1.1.2 port 58097 connected with 1.1.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.10 GBytes 948 Mbits/sec [ 3] Sent 806540 datagrams [ 3] Server Report: [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.08 GBytes 929 Mbits/sec 0.010 ms 16203/806540 (2%)
Medición del tamaño máximo de transferencia (MTU)
La opción -m indica a iperf que también encuentre el Tamaño máximo de transferencia (MTU):
# iperf -mc 192.168.10.12 ------------------------------------------------------------ Client connecting to 192.168.10.12, TCP port 5001 TCP window size: 19.3 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.10.13 port 46558 connected with 192.168.10.12 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 113 MBytes 94.7 Mbits/sec [ 3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)