
Persiguiendo los cuellos de botella
He hecho un vídeo en el cual hablo de esto. Está en este artículo por si no lo has visto.
La descarga
La descarga de los binarios de iperf, para todas las plataformas, se puede realizar desde esta web del proyecto donde están los ejecutables para windows, mac, android, y muchas más plataformas.
Es posible que los paquetes para linux estén más actualizados en este sitio que en los repositorios de la distribución. En principio podemos usarlos indistintamente.
Sintaxis
La documentación oficial la podéis consultar en la web del proyecto y es de donde he tirado para documentarlo todo.
Lo primero, es que trabajamos en un modo. Modo servidor, o modo cliente.
Sintaxis | Usado en el vídeo | Descripción |
---|---|---|
iperf3 -s |
Si | Iniciar el programa en modo servidor. Pedirá permiso en el firewall. |
iperf3 -s -D |
No | Iniciar en modo servidor además como demonio de sistema. Pendiente de ver como se usa. |
iperf3 -s -p X |
No | Iniciar en modo servidor escuchando en puerto X. Se puede combinar con -u para escuchar en UDP. |
iperf3 -s -F Fichero |
Si | Iniciar el programa en modo servidor. Lo que se recibe se escribe en el fichero Fichero . |
iperf3 -c IP |
Si | Modo básico del cliente. Con una IPv4 o IPv6 realiza peticiones al servidor y las va mostrando en pantalla. |
iperf3 -c IP -f [bkmgABKMGA] |
No | Muestra los resultados con conversión de unidades de medida, minúsculas en bites y mayúsculas en bytes, también A o a de forma adaptativa por defecto. |
iperf3 -c IP -u |
No | Modo de cliente para enviar el tráfico por UDP. |
iperf3 -c IP -F Fichero |
Si | Modo cliente leyendo del fichero Fichero . Con una IPv4 o IPv6 y leerá todo o parte del fichero para enviarlo al servidor. |
Parámetros adicionales como -w, para el tamaño de la ventana o -b para determinar el ancho de banda podrían ser interesantes pero nos quedan lejos en este momento.
También resulta interesante el parámetro -R que invierte el flujo, produciendo el envío de datos desde el servidor al cliente.
Hay muchísimas más opciones. Podéis verlas en la web del proyecto.
Arquitectura de red
La arquitectura es simple.
Tengo 2 equipos de momento, y un tercero, que pertenece a otro segmento de red en casa, que se comunican gracias al router WRT.
En realidad es un viejo router Ar-5387un de Jazztel al que le he puesto un firmware de OpenWRT y me está sirviendo como separación entre mis redes domésticas junto con otros equipos y en este caso, para practicar también con IPv6.
La “pega” es que los puertos ethernet son de 100 Mbps y por lo tanto poco voy a sacar de ahí. Esos enlaces están representados en gris.
El switch de mesa conecta con los equipos a 1 Gbps, por lo tanto los enlaces en negro son bastante más rápidos.
En este caso, podría servir cualquiera de estos:
Enlace | Tipo |
---|---|
D-Link DGS-108GL | Switch básico de 8 puertos gigabit |
D-Link DGS-108 | Switch doméstico de 8 puertos gigabit |
D-Link DGS-1100-08 | Switch profesional/gama de entrada de 8 puertos gigabit con QoS y VLAN |
Las pruebas
Pues tal como se puede apreciar en el vídeo las pruebas se realizan entre ambos Windows por las tarjetas de placa y las de USB.
Prueba 1
De las líneas de 100 Mbps, con los adaptadores PCIe Gb de realtek
Cliente en el equipo W11 y servidor W10.
Lado servidor:
PS C:\users\equipo\Downloads> .\iperf3.exe -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.202, port 53191
[ 5] local 192.168.1.201 port 5201 connected to 192.168.1.202 port 53192
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 11.1 MBytes 93.4 Mbits/sec
[ 5] 1.00-2.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 2.00-3.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 3.00-4.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 4.00-5.00 sec 11.3 MBytes 94.8 Mbits/sec
[ 5] 5.00-6.00 sec 11.3 MBytes 95.0 Mbits/sec
[ 5] 6.00-7.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 7.00-8.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 8.00-9.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 9.00-10.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 10.00-10.03 sec 378 KBytes 92.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.03 sec 113 MBytes 94.8 Mbits/sec receiver
Lado cliente:
PS C:\Users\Sistemas\Downloads> .\iperf3.exe -c 192.168.1.201
Connecting to host 192.168.1.201, port 5201
[ 4] local 192.168.1.202 port 53192 connected to 192.168.1.201 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.01 sec 11.6 MBytes 96.8 Mbits/sec
[ 4] 1.01-2.00 sec 11.2 MBytes 94.9 Mbits/sec
[ 4] 2.00-3.00 sec 11.2 MBytes 94.2 Mbits/sec
[ 4] 3.00-4.00 sec 11.4 MBytes 95.6 Mbits/sec
[ 4] 4.00-5.01 sec 11.4 MBytes 94.9 Mbits/sec
[ 4] 5.01-6.00 sec 11.2 MBytes 94.9 Mbits/sec
[ 4] 6.00-7.01 sec 11.4 MBytes 94.9 Mbits/sec
[ 4] 7.01-8.00 sec 11.2 MBytes 94.9 Mbits/sec
[ 4] 8.00-9.01 sec 11.4 MBytes 94.9 Mbits/sec
[ 4] 9.01-10.00 sec 11.2 MBytes 94.9 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 113 MBytes 95.1 Mbits/sec sender
[ 4] 0.00-10.00 sec 113 MBytes 95.1 Mbits/sec receiver
iperf Done.
Prueba 2
De las líneas de 1 Gbps, con los adaptadores USB Gb de realtek
Cliente en el equipo W11 y servidor W10.
Lado Servidor:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 169.254.207.66, port 58307
[ 5] local 169.254.161.219 port 5201 connected to 169.254.207.66 port 58308
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 41.6 MBytes 349 Mbits/sec
[ 5] 1.00-2.00 sec 42.0 MBytes 352 Mbits/sec
[ 5] 2.00-3.00 sec 42.2 MBytes 354 Mbits/sec
[ 5] 3.00-4.00 sec 42.3 MBytes 355 Mbits/sec
[ 5] 4.00-5.00 sec 42.2 MBytes 354 Mbits/sec
[ 5] 5.00-6.00 sec 42.2 MBytes 354 Mbits/sec
[ 5] 6.00-7.00 sec 42.3 MBytes 355 Mbits/sec
[ 5] 7.00-8.00 sec 42.3 MBytes 355 Mbits/sec
[ 5] 8.00-9.00 sec 42.2 MBytes 354 Mbits/sec
[ 5] 9.00-10.00 sec 42.3 MBytes 355 Mbits/sec
[ 5] 10.00-10.01 sec 583 KBytes 347 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.01 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.01 sec 422 MBytes 354 Mbits/sec receiver
Lado cliente:
PS C:\Users\Sistemas\Downloads> .\iperf3.exe -c 169.254.161.219
Connecting to host 169.254.161.219, port 5201
[ 4] local 169.254.207.66 port 58308 connected to 169.254.161.219 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 42.2 MBytes 354 Mbits/sec
[ 4] 1.00-2.00 sec 42.0 MBytes 352 Mbits/sec
[ 4] 2.00-3.00 sec 42.1 MBytes 354 Mbits/sec
[ 4] 3.00-4.00 sec 42.4 MBytes 355 Mbits/sec
[ 4] 4.00-5.00 sec 42.2 MBytes 354 Mbits/sec
[ 4] 5.00-6.00 sec 42.2 MBytes 354 Mbits/sec
[ 4] 6.00-7.00 sec 42.2 MBytes 355 Mbits/sec
[ 4] 7.00-8.00 sec 42.4 MBytes 355 Mbits/sec
[ 4] 8.00-9.00 sec 42.1 MBytes 354 Mbits/sec
[ 4] 9.00-10.00 sec 42.2 MBytes 354 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 422 MBytes 354 Mbits/sec sender
[ 4] 0.00-10.00 sec 422 MBytes 354 Mbits/sec receiver
iperf Done.
Prueba 3
De las líneas de 1 Gbps, con los adaptadores PCIe Gb de realtek
Cliente en el equipo W11 y servidor W10.
Lado Servidor:
PS C:\Users\Sistemas\Downloads> .\iperf3.exe -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 169.254.76.145, port 51660
[ 5] local 169.254.124.136 port 5201 connected to 169.254.76.145 port 51661
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 108 MBytes 907 Mbits/sec
[ 5] 1.00-2.00 sec 112 MBytes 938 Mbits/sec
[ 5] 2.00-3.00 sec 113 MBytes 949 Mbits/sec
[ 5] 3.00-4.00 sec 113 MBytes 948 Mbits/sec
[ 5] 4.00-5.00 sec 113 MBytes 948 Mbits/sec
[ 5] 5.00-6.00 sec 113 MBytes 948 Mbits/sec
[ 5] 6.00-7.00 sec 113 MBytes 947 Mbits/sec
[ 5] 7.00-8.00 sec 113 MBytes 948 Mbits/sec
[ 5] 8.00-9.00 sec 113 MBytes 947 Mbits/sec
[ 5] 9.00-10.00 sec 113 MBytes 948 Mbits/sec
[ 5] 10.00-10.00 sec 314 KBytes 881 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.00 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec receiver
Lado cliente:
PS C:\users\equipo\Downloads> .\iperf3.exe -c 169.254.124.136
Connecting to host 169.254.124.136, port 5201
[ 4] local 169.254.76.145 port 51661 connected to 169.254.124.136 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 108 MBytes 909 Mbits/sec
[ 4] 1.00-2.00 sec 112 MBytes 938 Mbits/sec
[ 4] 2.00-3.00 sec 113 MBytes 949 Mbits/sec
[ 4] 3.00-4.00 sec 113 MBytes 948 Mbits/sec
[ 4] 4.00-5.00 sec 113 MBytes 948 Mbits/sec
[ 4] 5.00-6.00 sec 113 MBytes 948 Mbits/sec
[ 4] 6.00-7.00 sec 113 MBytes 947 Mbits/sec
[ 4] 7.00-8.00 sec 113 MBytes 947 Mbits/sec
[ 4] 8.00-9.00 sec 113 MBytes 948 Mbits/sec
[ 4] 9.00-10.00 sec 113 MBytes 947 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec sender
[ 4] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec receiver
iperf Done.
Prueba 4
De las líneas de 100 Mbps, con los adaptadores USB Gb de realtek
Cliente en el equipo W11 y servidor W10.
Lado servidor:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.203, port 51662
[ 5] local 192.168.1.234 port 5201 connected to 192.168.1.203 port 51663
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 10.7 MBytes 89.9 Mbits/sec
[ 5] 1.00-2.00 sec 11.3 MBytes 94.8 Mbits/sec
[ 5] 2.00-3.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 3.00-4.00 sec 11.3 MBytes 94.8 Mbits/sec
[ 5] 4.00-5.00 sec 11.3 MBytes 95.0 Mbits/sec
[ 5] 5.00-6.00 sec 11.3 MBytes 94.8 Mbits/sec
[ 5] 6.00-7.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 7.00-8.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 8.00-9.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 9.00-10.00 sec 11.3 MBytes 94.9 Mbits/sec
[ 5] 10.00-10.02 sec 205 KBytes 89.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.02 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.02 sec 113 MBytes 94.4 Mbits/sec receiver
Lado cliente:
PS C:\users\equipo\Downloads> .\iperf3.exe -c 192.168.1.234
Connecting to host 192.168.1.234, port 5201
[ 4] local 192.168.1.203 port 51663 connected to 192.168.1.234 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 11.0 MBytes 92.1 Mbits/sec
[ 4] 1.00-2.00 sec 11.2 MBytes 94.6 Mbits/sec
[ 4] 2.00-3.00 sec 11.2 MBytes 94.4 Mbits/sec
[ 4] 3.00-4.01 sec 11.5 MBytes 95.7 Mbits/sec
[ 4] 4.01-5.00 sec 11.2 MBytes 95.0 Mbits/sec
[ 4] 5.00-6.00 sec 11.2 MBytes 94.5 Mbits/sec
[ 4] 6.00-7.00 sec 11.2 MBytes 94.3 Mbits/sec
[ 4] 7.00-8.01 sec 11.5 MBytes 95.8 Mbits/sec
[ 4] 8.01-9.00 sec 11.2 MBytes 94.9 Mbits/sec
[ 4] 9.00-10.00 sec 11.2 MBytes 94.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 113 MBytes 94.6 Mbits/sec sender
[ 4] 0.00-10.00 sec 113 MBytes 94.6 Mbits/sec receiver
iperf Done.
Prueba 5 ya solo por curiosidad
De las líneas de 1 Gbps, cruzando los adaptadores PCIe Gb de realtek y USB Gb de realtek.
Esta vez analizo los dos sentidos y me quedo con los logs del lado cliente.
Lado cliente PCIe Gb:
Connecting to host 169.254.207.66, port 5201
[ 4] local 169.254.76.145 port 51668 connected to 169.254.207.66 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 40.1 MBytes 336 Mbits/sec
[ 4] 1.00-2.00 sec 42.1 MBytes 353 Mbits/sec
[ 4] 2.00-3.00 sec 42.1 MBytes 353 Mbits/sec
[ 4] 3.00-4.00 sec 42.0 MBytes 352 Mbits/sec
[ 4] 4.00-5.00 sec 42.1 MBytes 354 Mbits/sec
[ 4] 5.00-6.00 sec 42.1 MBytes 353 Mbits/sec
[ 4] 6.00-7.00 sec 42.1 MBytes 353 Mbits/sec
[ 4] 7.00-8.00 sec 42.0 MBytes 353 Mbits/sec
[ 4] 8.00-9.00 sec 42.1 MBytes 353 Mbits/sec
[ 4] 9.00-10.00 sec 42.1 MBytes 353 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 419 MBytes 351 Mbits/sec sender
[ 4] 0.00-10.00 sec 419 MBytes 351 Mbits/sec receiver
iperf Done.
Lado cliente USB Gb:
PS C:\Users\Sistemas\Downloads> .\iperf3.exe -c 169.254.76.145
Connecting to host 169.254.76.145, port 5201
[ 4] local 169.254.207.66 port 62508 connected to 169.254.76.145 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 42.9 MBytes 359 Mbits/sec
[ 4] 1.00-2.00 sec 42.6 MBytes 358 Mbits/sec
[ 4] 2.00-3.00 sec 42.8 MBytes 359 Mbits/sec
[ 4] 3.00-4.00 sec 42.8 MBytes 359 Mbits/sec
[ 4] 4.00-5.00 sec 42.9 MBytes 359 Mbits/sec
[ 4] 5.00-6.00 sec 42.6 MBytes 358 Mbits/sec
[ 4] 6.00-7.00 sec 42.6 MBytes 358 Mbits/sec
[ 4] 7.00-8.00 sec 42.8 MBytes 358 Mbits/sec
[ 4] 8.00-9.00 sec 42.8 MBytes 359 Mbits/sec
[ 4] 9.00-10.00 sec 42.6 MBytes 358 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 427 MBytes 358 Mbits/sec sender
[ 4] 0.00-10.00 sec 427 MBytes 358 Mbits/sec receiver
iperf Done.
Resumen, si es que hace falta
Pues tal como se ha podido ver tanto en vídeo como en los logs de este artículo, el tema es que las tarjetas USB no dan lo que prometen y se quedan alrededor de 1/3 del caudal esperado.
La solución entonces pasará por dejar el adaptador de 1Gb de placa base, el PCIe Gb de realtek contra el switch de D-Link, y los adaptadores USB contra el punto de acceso WRT.
Con esto y hemos visto y disipado un cuello de botella en la red. Ahora toca seguir buscando más para afinar más aún.
YoVirtualizador en formato podcast. Ahora también en Sospechosos Habituales: https://feedpress.me/sospechososhabituales
Y sin más, os dejo los enlaces:
Web: https://www.yovirtualizador.com
Grupo de telegram: https://t.me/grupovirtualizador
Podcast: https://www.ivoox.com/podcast-yovirtualizador_fg_f1563806_filtro_1.xml
Canal de youtube: https://www.youtube.com/channel/UC0R70cABSsmC6TFyXth0qPg
Enlace de afiliados de amazon: https://amzn.to/3gX3HmK
Enlace de referidos de la Asociación Podcast: https://www.asociacionpodcast.es/registrarse/socio/?coupon=SB6A70