Tengo una red gigabit configurada en mi casa y algunas cajas basadas en Ubuntu. Por pura curiosidad me gustaría comprobar la velocidad entre las dos cajas. No estoy teniendo ningún problema con la velocidad ni nada, realmente es solo el geek que hay en mí que es curioso. Además, tal vez los resultados me permitan saber si hay margen de mejora o si tengo algo mal configurado.
Entonces, ¿cómo se prueba correctamente la velocidad de la red entre las cajas de Ubuntu?
Mejor respuesta
Yo uso iperf
. Es un arreglo de servidor de cliente en el que lo ejecuta en modo servidor en un extremo y se conecta desde otra computadora en el otro lado de la red.
Una de las dos máquinas ejecuta:
sudo apt-get install iperf
Iniciaremos un iperf
servidor en una de las máquinas:
iperf -s
Y luego en la otra computadora, dile a iperf
para conectarse como cliente:
iperf -c <address of other computer>
En la máquina cliente, verá algo como esto:
[email protected]:~$ iperf -c tim
------------------------------------------------------------
Client connecting to tim, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.4 port 37248 connected with 192.168.0.5 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.04 GBytes 893 Mbits/sec
Por supuesto, si está ejecutando un firewall en la máquina del servidor, deberá permitir las conexiones en el puerto 5001 o cambiar el puerto con -p
bandera.
Puedes hacer más o menos lo mismo con el viejo nc
(netcat) si tienes esa inclinación. En la máquina del servidor:
nc -vvlnp 12345 >/dev/null
Y el cliente puede canalizar un gigabyte de ceros a través de dd
sobre el nc
túnel.
dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Como demostración:
$ dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Connection to 10.10.0.2 12345 port [tcp/*] succeeded!
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.11995 s, 118 MB/s
El tiempo allí está dado por dd
pero debe ser lo suficientemente preciso, ya que solo puede generar la salida tan rápido como la tubería lo tome. Si no está satisfecho con eso, puede terminar todo en un time
llamar.
Recuerda que el resultado está en megabytes así que multiplícalo por 8 para obtener un megabits -velocidad por segundo. La demostración anterior se ejecuta a 944 Mbps.