Be a happy coder

You are here

Medir el ancho de banda o velocidad de transmisión entre dos servidores

10 Ene 2012

A veces necesitamos conocer como se va a comportar la conexión entre dos servidores que están en redes diferentes para valorar si nos interesa realizar una conexión permanente, descartar futuros problemas de conectividad o simplemente por valorar otras alternativas.

Para realizar mediciones disponemos de la herramienta iperf. Se trata de una herramienta para medir el ancho de banda del protocolo IP. Permite medir el rendimiento ajustando varios parámetros e incluye bastantes características para conseguir la prueba de conexión tal como necesitamos. Algunas son:

  • Medición del ancho de banda, pérdida de paquetes y retraso en la transmisión
  • Soporte para el tamaño de la ventana TCP a través de buffers de los conectores.
  • Multihebra. Cliente y servidor pueden tener múltiples conexiones simultáneas.
  • El cliente puede crear flujos UDP de ancho de banda especificado.
  • Multicast y habilitado para IPv6.

En primer lugar instalamos el paquete en los servidores entre los que queramos hacer la medición:

$sudo aptitude install iperf

Para hacer la medición hay que lanzar un servidor (recibe tráfico) y un cliente (genera tráfico). En el servidor lanzamos el siguiente comando para tener iperf en modo servidor:

jdiaz@server1:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

Y desde el otro servidor lanzamos iperf como cliente y apuntando al servidor con el que vamos a realizar la medición:

jdiaz@endor:~$ iperf -c 172.27.0.125
------------------------------------------------------------
Client connecting to 172.27.0.125, TCP port 5001
TCP window size: 118 KByte (default)
------------------------------------------------------------
[ 3] local 85.61.3.227 port 56456 connected with 172.27.0.125 port 5001
[ ID] Interval      Transfer    Bandwidth
[ 3] 0.0-10.0 sec   112 MBytes 94.0 Mbits/sec

Y en el lado servidor aparecerá la conexión que estamos realizado y su medición:

jdiaz@server1:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 172.27.0.125 port 5001 connected with 85.61.3.227 port 56456
[ ID] Interval      Transfer    Bandwidth
[ 4] 0.0-10.1 sec   112 MBytes 93.1 Mbits/sec

Comprobamos que tenemos una tasa de transferencia entre servidores de 93.1 Mb/s.