Comandos interesantes, iperf

En esta entrada del blog voy a explicar de forma breve cómo medir la velocidad de conexión entre dos equipos. Aunque en redes locales no suele ser un problema, en algunos cosas, especialmente en equipos virtualizados, la red puede ser un cuello de botella importante en los servidores, así que para comprobar y garantizar que esto no es así, qué mejor que asegurarse, pero con números. Para realizar estas comprobaciones vamos a emplear iperf, un  sencillo programa que sirve para medir el ancho de banda entre dos nodos. Aunque esta es la funcionalidad básica, es capaz de hacer más cosas, así que no dudéis en leer la ayuda.
Lo primero es instalar el software, tanto en el servidor como en un par de clientes, ya que para comprobar las velocidades, lo mejor es hacer varias pruebas.
shell> apt-get install iperf
Luego, arrancamos el servidor en el equipo que queramos medir su ancho de banda, tal que así.
shell> iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

Y desde cualquier de los clientes, lanzamos una conexión contra el servidor. Por cada conexión nos ofrecerá un report, ya que no hemos indicado nada de que nos lo deje en un fichero.
shell> iperf -c 192.168.1.101
------------------------------------------------------------
Client connecting to 192.168.1.1.1, TCP port 5001
TCP window size: 22.9 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.33 port 44888 connected with 192.168.1.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3] 0.0-10.0 sec   1.04 GBytes  892 Mbits/sec
Por defecto, el tiempo de conexión es de 10 segundos. Si lo queremos ampliar para ver cómo se comporta el equipo con más carga de red durante más tiempo,
shell> iperf -t40 -c 192.168.1.101
------------------------------------------------------------
Client connecting to 192.168.1.101, TCP port 5001
TCP window size: 22.9 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.33 port 45317 connected with 192.168.1.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3] 0.0-40.0 sec   4.22 GBytes  906 Mbits/sec
Por supuesto, si os interesa saber todas las opciones que están disponibles, aquí os dejo la ayuda.
shell> iperf --help
Usage: iperf [-s|-c host] [options]
       iperf [-h|--help] [-v|--version]

Client/Server:
  -f, --format    [kmKM] format to report: Kbits, Mbits, KBytes, MBytes
  -i, --interval  #      seconds between periodic bandwidth reports
  -l, --len       #[KM]  length of buffer to read or write (default 8 KB)
  -m, --print_mss        print TCP maximum segment size (MTU - TCP/IP header)
  -o, --output    file   output the report or error message to this specified file
  -p, --port      #      server port to listen on/connect to
  -u, --udp              use UDP rather than TCP
  -w, --window    #[KM]  TCP window size (socket buffer size)
  -B, --bind      host   bind to host, an interface or multicast address
  -C, --compatibility    for use with older versions does not sent extra msgs
  -M, --mss       #      set TCP maximum segment size (MTU - 40 bytes)
  -N, --nodelay          set TCP no delay, disabling Nagle's Algorithm
  -V, --IPv6Version      Set the domain to IPv6

Server specific:
  -s, --server           run in server mode
  -U, --single_udp       run in single threaded UDP mode
  -D, --daemon           run the server as a daemon

Client specific:
  -b, --bandwidth #[KM]  for UDP, bandwidth to send at in bits/sec
  -c, --client    host   run in client mode, connecting to host
  -d, --dualtest         Do a bidirectional test simultaneously
  -n, --num       #[KM]  number of bytes to transmit (instead of -t)
  -r, --tradeoff         Do a bidirectional test individually
  -t, --time      #      time in seconds to transmit for (default 10 secs)
  -F, --fileinput name   input the data to be transmitted from a file
  -I, --stdin            input the data to be transmitted from stdin
  -L, --listenport #     port to receive bidirectional tests back on
  -P, --parallel  #      number of parallel client threads to run
  -T, --ttl       #      time-to-live, for multicast (default 1)
  -Z, --linux-congestion set TCP congestion control algorithm (Linux only)

Miscellaneous:
  -x, --reportexclude [CDMSV] exclude Connec, Data, Multicast, Settings, Vserver
  -y, --reportstyle C         report as a Comma-Separated Values
  -h, --help                  print this message and quit
  -v, --version               print version information and quit
Espero que si os hace falta comprobar vuestra conexión de red, esta entrada os haya ayudado.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios