Medicion del rendimiento de red con iPerf

0 Comments

A veces es necesario conocer de la tasa maxima de transferencia de la red, o simplemente asegurarnos de que la LAN o WLAN en la que estamos trabajando no tiene congestionamientos utilizamos la herramienta de consola iPerf.

Como recordatorio antes que empezemos a hablar de transferencia de datos; 1 byte es igual a 8 bits. Y en el mundo de las computadoras 1 kilo es igual a 1024 (2^10). Por ejemplo, 100’000’000 bytes no es igual a 100 Mbytes, mas bien 100’000’000/1024/1024 = 95.37 Mbytes.

Como utilizar iPerf

Del lado del servidor, y de preferencia con el usuario root levantamos el servicio de iperf escuchando en el puerto 5001, tecleando;

Servidor iperf

# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

Cliente iperf

Ahora en el lado del cliente, tecleamos;

:~$ iperf -c guatewireless.org
------------------------------------------------------------
Client connecting to guatewireless.org, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 10.4.0.16 port 42955 connected with 188.40.78.14 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.1 sec  15.5 MBytes  12.9 Mbits/sec

Con este sencillo comando podemos medir el rendimiento de la red, y perdidas de datagramas.

How to measure file transfer performance using iperf tool

Emulando Oracle database server

Con este utilitario tambien podemos testear puertos de servicios propietarios tales como Oracle. Si no podemos conectar al puerto donde escucha Oracle facilmente podemos ejecutar;

# iperf -s -p 1521

Asi mismo podemos verificar nuestra velocidad (ya que dicho sea de paso ancho de banda y velocidad de red son cosas distintas) en el puerto UDP, con datagramas de 200 bytes y con un tamaño de buffer UDP de 110kbyte, configurando el servidro de la siguiente forma;

:~$ iperf -su -i 1

  • La opcion -i genera un despliege de progreso o reportes cada segundo.
  • -p especifica o cambia el puerto de comunicaciones puerto en el que escucha el servidor
  • -u envio de UDP en vez de TCP por defecto.

El formato de presentacion de datos lo podemos cambiar con el argumento -f bits(b), bytes(B), kilobits(k), kilobytes(K), megabits(m), megabytes(M), gigabits(g) or gigabytes(G).

Ahora desde el cliente;

:~$ iperf -c 10.1.2.9 -u -l 200 -b 100m
------------------------------------------------------------
Client connecting to 10.1.2.9, UDP port 5001
Sending 200 byte datagrams
UDP buffer size:   110 KByte (default)
------------------------------------------------------------
[  3] local 10.1.0.16 port 44638 connected with 10.1.2.9 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  85.7 MBytes  71.9 Mbits/sec
[  3] Sent 449189 datagrams
[  3] Server Report:
[  3]  0.0-10.0 sec  85.6 MBytes  71.6 Mbits/sec  0.024 ms  607/449188 (0.14%)
[  3]  0.0-10.0 sec  1 datagrams received out-of-order

Como pueden ver, en el ejemplo anterior se han enviado datagramas de 200 bytes a 100Mbits. Hablando de VoIP (voz sobre IP)  lo importante es el valor de jitter, en este ejemplo de 0.024 milisegundos esta excelente para transmision de datos en tiempo real.

Y para estar seguros, en otra consola podemos ejecutar tcpdump para ver la transferencia de datos con el protocolo UDP;

# tcpdump -p udp

One Reply to “Medicion del rendimiento de red con iPerf”

  1. desde mi iperf en windows no me muestra el jitter, sera que en linux si lo muestra, o falta algo???. sl2.

Deja tus preguntas o comentarios