[Notas de estudio] Herramienta de prueba de rendimiento de red Iperf3

[Notas de estudio] Herramienta de prueba de rendimiento de red Iperf3

La evaluación del rendimiento de la red es principalmente para monitorear la tasa de utilización del ancho de banda de la red, y maximizar la utilización del ancho de banda de la red es la base para garantizar el rendimiento de la red. Sin embargo, debido al diseño de red irrazonable y las vulnerabilidades de seguridad de la red, la utilización del ancho de banda de la red no será alta. Para encontrar la causa de la baja utilización del ancho de banda de la red, debe monitorear la transmisión de la red. En este momento, necesita usar algunas herramientas de evaluación del rendimiento de la red, e Iperf es una herramienta de prueba de ancho de banda de la red.

1. Introducción a Iperf

1. ¿Qué es iperf?

Iperf es una herramienta de prueba de rendimiento de red de código abierto desarrollada por la Universidad de Illinois. Se puede usar para probar el rendimiento de las conexiones TCP o UDP entre los nodos de la red (incluido el bucle invertido), incluido el ancho de banda, la fluctuación de fase y la tasa de pérdida de paquetes.

Iperf es una herramienta de prueba de rendimiento de la red basada en TCP / IP y UDP / IP. Se puede utilizar para medir el ancho de banda y la calidad de la red, y proporcionar información estadística como la fluctuación de fase de la red, la tasa de pérdida de paquetes y la unidad de transmisión máxima. Los administradores de red pueden comprender y juzgar los problemas de rendimiento de la red en función de esta información, ubicando así los cuellos de botella de la red y resolviendo fallas de la red.

Iperf es una herramienta de prueba de rendimiento de red basada en el modo de línea de comandos. Es multiplataforma y proporciona soporte completo de plataforma en Windows, Linux y Mac. iperf usa la memoria como un búfer de envío / recepción durante todo el proceso, no se ve afectado por el rendimiento del disco y tiene requisitos muy bajos para la configuración de la máquina. Sin embargo, debido a que es una herramienta de línea de comandos, iperf no admite la salida de patrones de prueba.

Iperf puede probar la calidad del ancho de banda de TCP y UDP, con una variedad de parámetros y características UDP, puede usarse para probar el rendimiento de algunos dispositivos de red como enrutadores, firewalls, conmutadores, etc.

2. Funciones de Iperf
(1) TCP

① Medición del ancho de banda de la red

② Informe el tamaño y la observación del valor de MSS / MTU

③ Admite el valor de la ventana TCP a través del buffer de socket

④ Cuando hay disponible un subproceso P o subproceso Win32, admite subprocesos múltiples. El cliente y el servidor admiten conexiones múltiples simultáneas

(2) UDP

① El cliente puede crear una secuencia UDP con un ancho de banda especificado

② Medir la pérdida de paquetes

③ Retraso de medición

④ Soporte multicast

⑤ Cuando el hilo P está disponible, admite múltiples hilos. El cliente y el servidor admiten múltiples conexiones simultáneas (Windows no es compatible)

(3) Otros aspectos

① Donde sea apropiado, K (kilo-) y M (mega-) pueden usarse como opciones. Por ejemplo, 131072 bytes se pueden reemplazar con 128K.

② Puede especificar el tiempo de ejecución total e incluso establecer la cantidad total de datos transferidos.

③ En el informe, seleccione la unidad más adecuada para los datos.

Server El servidor admite múltiples conexiones en lugar de esperar una prueba de subproceso único.

Display Muestra repetidamente el ancho de banda de la red, la fluctuación y la pérdida de paquetes a intervalos de tiempo especificados.

⑥ El servidor se puede ejecutar como un programa en segundo plano.

⑦ El servidor se puede ejecutar como un servicio de Windows.

⑧ Utilice el flujo de datos típico para probar el impacto de la compresión de la capa de enlace en el ancho de banda disponible.

En segundo lugar, la instalación de Iperf

1. La versión de iperf

Iperf tiene dos versiones, la versión de Windows y la versión de Linux.

(1) versión Unix / Linux

La versión de Unix / Linux se actualiza más rápido y la última versión, la última versión es iperf3.0.

Dirección de descarga de la versión de Linux: http://code.google.com/p/iperf/downloads/list

Para probar la precisión, intente utilizar la prueba de entorno de Linux.

(2) versión de Windows

La versión para Windows de iperf se llama jperf, o xjperf, cuya actualización es lenta. La última versión es actualmente 1.7 (empaquetada en jperf).

Dirección de descarga de la versión de Windows: http://sourceforge.net/projects/iperf/files/jperf/jperf 2.0.0 /

jperf es un programa de interfaz gráfica desarrollado sobre la base de iperf, que simplifica la construcción de parámetros complejos de línea de comandos y también puede guardar los resultados de la prueba, mientras muestra los resultados gráficamente en tiempo real.

2. Instalación de iperf para Windows

Para la versión de Windows de iperf, descargue el paquete de instalación y descomprímalo directamente, luego copie el iperf.exe descomprimido y cygwin1.dll al directorio% systemroot%.

3. Instalación de iperf para Linux
(1) Instalación en línea:

Instalación de CentOS:yum install -y iperf3

Instalación de Debian y Ubuntu:apt-get install iperf3

(2) Instalación sin conexión: descargue la versión correspondiente del paquete de instalación

gunzip -c iperf- .tar.gz | tar -xvf - cd iperf- ./configure make make install

Tres, el uso de Iperf

1. El modo de trabajo de Iperf

Iperf puede ejecutarse en cualquier red IP, incluyendo Ethernet local, acceso a Internet, red Wi-Fi, etc. En modo de trabajo, iperf se ejecuta en modo servidor y cliente. Su servidor se usa principalmente para escuchar las solicitudes de prueba entrantes , y el cliente se usa principalmente para iniciar sesiones de conexión de prueba . Por lo tanto, se requieren al menos dos servidores y uno para usar iperf Ejecutar en modo servidor, el otro se ejecuta en modo cliente.

Después de completar la instalación de iperf, ejecute "iperf3 -h" para mostrar el uso detallado de iperf. Las opciones de línea de comando de iperf se dividen en tres categorías, que son opciones comunes del lado del cliente y del lado del servidor, opciones especiales del lado del servidor y opciones especiales del lado del cliente.

2. Parámetros comunes de Iperf (prueba suficiente)

(1) -s, --server: modo de servidor iperf, el puerto de escucha predeterminado es 5201, por ejemplo: iperf -s

(2) -c, --client host: modo de cliente iperf, host es la dirección del servidor, por ejemplo: iperf -c 222.35.11.23

(3) -i, --interval: especifique el intervalo de tiempo entre cada informe, en segundos, por ejemplo: iperf3 -c 192.168.12.168 -i 2

(4) -p, --port: especifique el puerto que supervisa el servidor o el puerto al que se conecta el cliente. El valor predeterminado es el puerto 5001.

(5) -u, --udp: indica que el protocolo UDP se usa para enviar paquetes, sin este parámetro indica que se usa el protocolo TCP.

(6) -l, --len: establece la longitud del búfer de lectura-escritura, la unidad es Byte. El modo TCP por defecto es de 8 KB, y el modo UDP por defecto es de 1470 bytes. Por lo general, el valor es 16 cuando se prueba PPS y 1400 cuando se prueba BPS.

(7) -b, - ancho de banda [K | M | G]: especifique el ancho de banda utilizado en modo UDP, en bits / seg, el valor predeterminado es 1 Mbit / seg

(8) -t, --time: especifique el tiempo total para la transmisión de datos, es decir, envíe repetidamente paquetes de datos de la longitud especificada dentro del tiempo especificado. El valor predeterminado es 10 segundos.

(9) -A: afinidad de CPU, puede vincular el proceso iperf3 específico a la CPU lógica numerada correspondiente para evitar la programación del proceso iperf entre diferentes CPU.

3. Parámetros comunes (compartidos por el servidor y el cliente)

(1) -f, --farmat [k | m | g | K | M | G]: especifique la unidad de salida de ancho de banda, "[k | m | g | K | M | G]" significa Kbits, Mbits, Gbits, KBytes, MBytes, GBytes muestran los resultados de salida, los Mbits predeterminados, por ejemplo: iperf3 -c 192.168.12.168 -f M

(2) -p, --port: especifique el puerto que supervisa el servidor o el puerto al que está conectado el cliente. El valor predeterminado es el puerto 5001.

(3) -i, --interval: especifique el intervalo de tiempo entre cada informe, en segundos, por ejemplo: iperf3 -c 192.168.12.168 -i 2

(4) -F: especifique el archivo como flujo de datos para la prueba de ancho de banda. Por ejemplo: iperf3 -c 192.168.12.168 -F web-ixdba.tar.gz

4. Parámetros específicos del servidor

(1) -s, --server: modo de servidor iperf, el puerto de escucha predeterminado es 5201, por ejemplo: iperf -s

(2) -c, --client host: si iperf se ejecuta en modo servidor y especifica un host con el parámetro -c, iperf solo aceptará conexiones del host especificado. Este parámetro no puede funcionar en modo UDP.

(3) -D: Ejecuta Iperf como demonio de fondo en la plataforma Unix. Bajo la plataforma Win32, Iperf se ejecutará como un servicio.

(4) -R: desinstalar el servicio Iperf (solo para Windows).

(5) -o: redirige la salida al archivo especificado (solo para Windows).

(6) -P, --paralelo: el número de conexiones mantenidas antes de que se cierre el servidor. El valor predeterminado es 0, lo que significa que la conexión siempre se acepta.

5. Parámetros específicos del cliente

(1) -c, --client host: modo de cliente iperf, host es la dirección del servidor, por ejemplo: iperf -c 222.35.11.23

(2) -u, --udp: indica que el protocolo UDP se utiliza para enviar el mensaje, sin este parámetro indica que se utiliza el protocolo TCP.

(3) -b, - ancho de banda [K | M | G]: especifique el ancho de banda utilizado en modo UDP, en bits / seg. El valor predeterminado es 1 Mbit / seg.

(4) -t, --time: especifique el tiempo total para la transmisión de datos, es decir, envíe repetidamente paquetes de datos de la longitud especificada dentro del tiempo especificado. El valor predeterminado es 10 segundos.

(5) -l, --len: establece la longitud del búfer de lectura-escritura, la unidad es Byte. El valor predeterminado de TCP es 8 KB, el valor predeterminado de UDP es 1470 bytes. Por lo general, el valor es 16 cuando se prueba PPS y 1400 cuando se prueba BPS.

(6) -n, --num [K | M | G]: especifique el número de bytes del paquete de datos transmitido, por ejemplo: iperf3 -c 192.168.12.168 –n 100M

(7) -P, --paralelo: especifique el número de subprocesos utilizados entre el cliente y el servidor. El valor predeterminado es 1 hilo. El cliente y el servidor deben usar este parámetro al mismo tiempo.

(8) -w, --window: especifique el tamaño del búfer de socket. En el modo TCP, esta configuración es el tamaño de la ventana TCP. En el modo UDP, esta configuración es el tamaño del búfer para recibir paquetes UDP, que se utiliza para limitar el valor máximo de los paquetes que se pueden recibir

(9) -B, --bind: se utiliza para vincular una dirección o interfaz de host. Este parámetro solo se utiliza para hosts con múltiples interfaces de red. En el modo UDP, este parámetro se utiliza para enlazar y unirse a un grupo de multidifusión.

(10) -M, --mss: establece el valor del segmento de información máxima de TCP

(11) -N, --nodelay: establece TCP sin demora

(12) -V: enlazar una dirección IPv6.

(13) -d, --dualtest: ejecuta el modo de prueba dual. El servidor se conectará al cliente a la inversa, utilizando el puerto especificado en el parámetro -L (o el puerto utilizado por el cliente para conectarse al servidor de forma predeterminada). Use el parámetro -r para ejecutar el modo interactivo.

(14) -L, --listenport: especifique el puerto utilizado cuando el servidor se conecta de nuevo al cliente. Por defecto, el cliente se conecta al puerto del servidor.

(15) -r, --tradeoff: modo de prueba recíproca. Cuando finaliza la prueba de cliente a servidor, el servidor se conecta de nuevo al cliente. Cuando finaliza la conexión del cliente, la conexión inversa comienza inmediatamente. Si necesita realizar una prueba de dos vías al mismo tiempo, pruebe el parámetro -d.

6. Otros parámetros

(1) -h, --help: muestra la referencia de línea de comando y sale.

[root]# iperf3 -h  
Usage: iperf3  [-s|-c host] [options]  
iperf3 [-h|--help] [-v|--version]

(2) -v, --version: muestra la información de versión y la información de compilación y sale.

Cuatro, Iperf usa ejemplos

1. Preparación ambiental:

(1) Dirección IP del lado del servidor: 192.168.0.120

(2) Dirección IP del lado del servidor: 192.168.0.121

2. Probar el rendimiento de TCP
(1) En el lado del servidor, inicie el modo de servidor de iperf y especifique el puerto TCP:
[root@iperf-server  ~]# iperf3 -s -i 1 -p  520  
------------------------------------------------------------  
Server listening  on TCP port 520  
TCP window size:  85.3 KByte (default)  
------------------------------------------------------------ 
(2) El cliente inicia el modo de cliente iperf y se conecta al servidor
[root@iperf-client  ~]# iperf -c 192.168.0.120  -i 1 -t 60 -p 520  
------------------------------------------------------------  
Client connecting  to 192.168.0.120, TCP port 520  
TCP window size:  45.0 KByte (default)  
------------------------------------------------------------  
[ 3] local 192.168.0.121  port 50616 connected with 192.168.0.120 port 520  
[ ID] Interval  Transfer Bandwidth  
[ 3] 0.0-10.1 sec  1.27 GBytes 1.08 Gbits/sec     
(3) Resultados de monitoreo del lado del servidor
------------------------------------------------------------  
Server listening  on TCP port 5001  TCP window size:  85.3 KByte (default)  
------------------------------------------------------------  
[ 4] local 192.168.0.120  port 520 connected with 192.168.0.121 port 50616  
[ ID] Interval  Transfer Bandwidth  
[ 4] 0.0-10.1 sec  1.27 GBytes 1.08 Gbits/sec  

① Intervalo significa intervalo de tiempo.

② Transferencia representa la cantidad de datos transferidos en el intervalo de tiempo.

③ El ancho de banda es la velocidad de transmisión en el intervalo de tiempo.

(4) Pruebe el rendimiento de TCP multiproceso

Si no se especifica ningún método de envío, el cliente iPerf solo usará un solo hilo.

iperf3 -c 192.168.0.120 -P 30 -t 60  
(5) Realizar pruebas de ancho de banda aguas arriba y aguas abajo (transmisión bidireccional)
iperf3 -c 192.168.0.120 -d -t 60
(6) Detener el proceso de servicio de iperf3

Para detener el proceso del servicio iperf3, presione CTRL + z o CTRL + c

El SAR Ejecutivo comando para terminar el paquete estadístico servidor efectivamente recibidos como los resultados reales: sar -n DEV 1 320.

3. Pruebe el rendimiento UDP

La prueba de ancho de banda usualmente usa el modo UDP, ya que puede medir el ancho de banda límite, el jitter de retraso y la tasa de pérdida de paquetes. Al realizar la prueba, primero use el ancho de banda teórico del enlace como la velocidad de transmisión de datos. Por ejemplo, el ancho de banda teórico del enlace desde el cliente al servidor es de 100 Mbps. Use -b 100M para probar primero y luego en función de los resultados de la prueba (incluyendo Ancho de banda real, jitter de retardo y tasa de pérdida de paquetes), y luego use el ancho de banda real como la tasa de transmisión de datos para probar, encontrará que el jitter de retardo y la tasa de pérdida de paquetes son mucho mejores que la primera vez, repita la prueba varias veces, puede obtener una estabilidad Ancho de banda real.

(1) En el lado del servidor, inicie el modo de servidor de iperf y especifique el puerto UDP:
[root@iperf-server  ~]# iperf3 -s -i 1 -p  521  
------------------------------------------------------------  
Server listening  on port 521  
------------------------------------------------------------
(2) El cliente inicia el modo de cliente iperf y se conecta al servidor
[root@iperf-client  ~]# iperf3 -u -c 192.168.0.120  -b 100m -t 60 -p 521  
------------------------------------------------------------  
Client connecting  to 192.168.0.120, port 521  
------------------------------------------------------------  
[ 3] local 192.168.0.121  port 50616 connected with 192.168.0.120 port 521  
[ ID] Interval  Transfer Bandwidth TotalDatagrams   
[ 3] 0.0-10.1 sec  1.27 GBytes 1.08 Gbits/sec 82
(3) Resultados de monitoreo del lado del servidor
------------------------------------------------------------  
Server listening  on port 521  
------------------------------------------------------------  
[ 4] local 192.168.0.120  port 520 connected with 192.168.0.121 port 50616  
[ ID] Interval  Transfer Bandwidth Jitter Lost/Total Datagrams  
[ 4] 0.0-10.1 sec  1.27 GBytes 1.08 Gbits/sec 0.007 ms 0/82 (0%)

① Jitter es jitter, la diferencia promedio suave en la transmisión continua.

② Perdido es el número de paquetes perdidos.

③ Datagramas totales es el número de paquetes.

(4) Pruebe el rendimiento UDP de subprocesos múltiples

Si no se especifica ningún método de envío, el cliente iPerf solo usará un solo hilo.

iperf3 -u -c  192.168.1.1 -b 5M -P 30 -t 60  
(5) Realizar pruebas de ancho de banda aguas arriba y aguas abajo (transmisión bidireccional)
iperf3 -u -c  192.168.1.1 -b 100M -d -t 60 

V. Introducción a Jperf

1. Introducción a Jperf

jperf es un programa de interfaz gráfica desarrollado basado en iperf, que simplifica la construcción de parámetros complejos de línea de comandos, y también puede guardar los resultados de las pruebas, mientras muestra los resultados gráficamente en tiempo real. JPerf puede probar la calidad del ancho de banda de TCP y UDP. JPerf puede medir el ancho de banda TCP máximo, con una variedad de parámetros y características UDP. JPerf puede informar sobre el ancho de banda, el retraso de la fluctuación de fase y la pérdida de paquetes.

2. entorno operativo JPerf2.0

(1) Sistema operativo: entorno de ejecución Java

(2) Requisitos de red: Jperf puede ejecutarse en cualquier red IP, incluidas Ethernet local, conexión de acceso a Internet y red Wi-Fi.

(3) Otros requisitos: JPerf debe instalar dos componentes: el servidor JPerf y el cliente JPerf.

3. Introducción de la página JPerf2.0

Página JPerf2.0

(1) Línea de comando Iperf (no se puede ingresar directamente)

Línea de comando Iperf

① Configuración del servidor

Configuraciones del servidor

❶ Puerto de monitoreo: 5001

❷ límite de cliente: límite de cliente, solo permite que el cliente especificado se conecte

❸ Num Connections: el número máximo de conexiones permitidas, 0 es ilimitado

② Configuración del cliente

Configuraciones del cliente

Dirección del servidor: 10.0.115.82, puerto: 5001, secuencia concurrente: 1

(2) Configuración de la capa de aplicación

Configuración de la capa de aplicación

① Compatible con la versión anterior (utilizada cuando las versiones del servidor y el cliente son diferentes)

Compatible con versiones anteriores.

② Configure el modo de prueba: el tamaño total de los bytes transmitidos es de 15 Bytes o el tiempo total de transmisión es de 15 segundos

Establecer modo de prueba

③ Prueba de transmisión bidireccional simultánea

Prueba de transmisión bidireccional simultánea

④ Realice la prueba de transmisión bidireccional por separado, primero mida el ancho de banda de c a s

Prueba de transmisión bidireccional separada

⑤ Especifique el archivo a transferir

Especifique el archivo a transferir

⑥ Mostrar tcp valor mtu máximo

Mostrar el valor máximo de tcp mtu

(3) Configuración de la capa de transporte

① Protocolo TCP

❶ Establecer el tamaño del búfer

Establecer el tamaño del búfer

❷ Especifique el tamaño de la ventana TCP

Especificar el tamaño de la ventana TCP

❸ Establecer el valor mtu máximo de paquetes TCP

Establecer el valor mtu máximo de paquetes TCP

❹ Establecer TCP sin demora

Establecer TCP sin demora

② Protocolo UDP

❶ Establecer el ancho de banda máximo de UDP

Establecer el ancho de banda UDP máximo

❷ Establecer el búfer UDP

Establecer búfer UDP

❸ Tamaño de encapsulación de paquetes UDP: valor predeterminado de 1470 bytes

Tamaño de encapsulación de paquetes UDP

③ Configuración de capa IP

Configuraciones de capa IP

❶ Especifique el valor ttl

Especifique el valor ttl

❷ Tipo de servicio (ToS), el tamaño varía de 0x10 (retraso mínimo) a 0x2 (costo mínimo)

Tipo de servicio

Enlace de descarga para este artículo

Apéndice: referencias

1. "Método de prueba de rendimiento de red"

Autor: Ali nube documentación de ayuda

Dirección: https://help.aliyun.com/knowledge_detail/55757.html#HFXbx

2. "Enciclopedia iperf-Baidu" (artículo)

Autor: los usuarios de Baidu Wikipedia

Dirección: https://baike.baidu.com/item/iperf/11067694?fr=aladdin

3. "Herramientas de evaluación de rendimiento de red Linux iperf, rendimiento de red de prueba CHARIOT" (artículo)

Autor: Konglingbin

Dirección: https://www.cnblogs.com/klb561/p/9215952.html

4. "Comando Linux Daquan -Iperf Command"

Autor: incierta

Dirección: https://man.linuxde.net/iperf

5. "Tutorial de uso y función de iPerf de la herramienta de prueba de rendimiento de red"

Autor: incierta

Dirección: http://www.veryhuo.com/a/view/159685.html

6. "Tutorial de uso gráfico de IPerf Graphic Tool Jperf"

Autor: incierta

Dirección: http://www.veryhuo.com/a/view/159704.html

7. "Uso de iPerf para la prueba de rendimiento de red"

Autor: Deje que los ventiladores

Dirección: https://www.jianshu.com/p/15f888309c72

Supongo que te gusta

Origin www.cnblogs.com/davidesun/p/12720953.html
Recomendado
Clasificación