Medir rendimiento de red en Linux RHEL/CentOS/SL

qperf: Medir rendimiento de red en Linux RHEL/CentOS/SL

qperf es una herramienta que nos permites hacer numerosas pruebas de rendimiento de conectividad entre 2 nodos, estas pruebas pueden ir desde ancho de banda hasta latencia del vinculo.

Instalar la herramienta

Antes de comenzar debemos de instalar nuestra herramienta de benchmark qperf, la misma se encuentra dentro de los repositorios oficiales de CentOS/RHEL, por lo tanto podemos instalarlo via yum

yum install -y qperf

Una vez instalada la herramienta debemos tener en cuenta un par de aspectos sobre el funcionamiento de la misma.

Basicamente qperf trabaja de la siguiente manera:

  • Paso 1: En uno de los nodos (puede ser cualquier de los 2), debemos ejecutar el comando qperf solo. Al ejecutarlo de esa manera el qperf abre el puerto 19765.
    qperf
  • Paso 2: En el otro nodo debemos ejecutar el comando qperf con la sintaxis de prueba de rendimiento que seria la siguiente:
    qperf SERVERNODE [OPTIONS] TESTS

    Al ejecutarlo lo que hace es conectarse al puerto 19765 del otro nodo y realizar la prueba solicitada por el usuario.

Lo mas importante a tener en cuenta con el qperf es que establece una conexion entre los dos nodos, por lo tanto en caso de que los equipos tengan cortafuegos habilitados podrian bloquear las pruebas

Pruebas que puede realizar qperf

La herramienta qperf tiene una gran lista de pruebas que puede realizar, podemos consultar dicha lista con el siguiente comando:

qperf --help tests

En este caso nos enfocaremos en 2 pruebas:

tcp_bw: Ancho de banda utilizable para conexiones TCP
tcp_lat: Latencia al abrir una conexion TCP

Ejemplo de uso de qperf

TCP Bandwith

Primero ejecutamos qperf en el nodo 2

[root@node2 ~]# qperf

Luego ejecutamos la prueba en el otro nodo

[root@node1 ~]#   qperf node2 tcp_bw
tcp_bw:
    bw  =  53.6 MB/sec

En este ejemplo nuestro ancho de banda para conexiones TCP es de 53,6 MB/s

TCP Latency

Primero ejecutamos qperf en el nodo 2

[root@node2 ~]# qperf

Luego ejecutamos la prueba en el otro nodo

[root@node1 ~]# qperf node2 tcp_lat
tcp_lat:
    latency  =  35.7 us

En este ejemplo nuestra latencia es de 35.7 us

Es muy importante tener en cuenta que la carga de red al momento de las pruebas puede afectar a los resultados