GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment utiliser Iperf pour tester les performances du réseau sous Linux

L'iperf est un outil utilisé pour tester les performances du réseau entre deux systèmes. L'application iperf fournit plus de métriques pour les performances d'un réseau. L'application iperf n'est pas installée par défaut, mais elle est fournie par le gestionnaire de paquets de la plupart des distributions.

Pour les systèmes CentOS/RHEL/Fedora, utilisez le yum pour installer le package iperf.

# yum install iperf

iperf a la notion de « client » et de « serveur » pour tester le débit du réseau entre deux systèmes.

L'exemple suivant définit une grande taille de tampon d'envoi et de réception pour maximiser le débit, et effectue un test pendant 60 secondes, ce qui devrait être suffisamment long pour exercer pleinement un réseau.

Serveur

Sur le système serveur, iperf est invité à écouter une connexion client :

server # iperf3 -i 10 -s

Ici,
-je – l'intervalle pour fournir des mises à jour périodiques de la bande passante
-s – écouter en tant que serveur

Voir man iperf3 pour plus d'informations sur les commutateurs de ligne de commande spécifiques.

Client

Sur le système client, iperf est invité à se connecter au serveur d'écoute via le nom d'hôte ou l'adresse IP :

client # iperf3 -i 10 -w 1M -t 60 -c [server hostname or ip address]

Ici,
-je – l'intervalle pour fournir des mises à jour périodiques de la bande passante
-w – la taille du tampon de socket (qui affecte la fenêtre TCP). La taille de la mémoire tampon est également définie sur le serveur par cette commande client
-t – le temps d'exécution du test en secondes
-c – se connecter à un serveur d'écoute à…

Voir man iperf3 pour plus d'informations sur les commutateurs de ligne de commande spécifiques.

Résultats des tests

Le client et le serveur communiquent leurs résultats une fois le test terminé :

Serveur

server # iperf3 -i 10 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.0.0.2, port 22216
[  5] local 10.0.0.1 port 5201 connected to 10.0.0.2 port 22218
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.00  sec  17.5 GBytes  15.0 Gbits/sec                  
[  5]  10.00-20.00  sec  17.6 GBytes  15.2 Gbits/sec                  
[  5]  20.00-30.00  sec  18.4 GBytes  15.8 Gbits/sec                  
[  5]  30.00-40.00  sec  18.0 GBytes  15.5 Gbits/sec                  
[  5]  40.00-50.00  sec  17.5 GBytes  15.1 Gbits/sec                  
[  5]  50.00-60.00  sec  18.1 GBytes  15.5 Gbits/sec                  
[  5]  60.00-60.04  sec  82.2 MBytes  17.3 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-60.04  sec  0.00 Bytes    0.00 bits/sec                  sender
[  5]   0.00-60.04  sec   107 GBytes  15.3 Gbits/sec                  receiver

Client

client # iperf3 -i 10 -w 1M -t 60 -c 10.0.0.1
Connecting to host 10.0.0.1, port 5201
[  4] local 10.0.0.2 port 22218 connected to 10.0.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-10.00  sec  17.6 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  10.00-20.00  sec  17.6 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  20.00-30.00  sec  18.4 GBytes  15.8 Gbits/sec    0   6.01 MBytes       
[  4]  30.00-40.00  sec  18.0 GBytes  15.5 Gbits/sec    0   6.01 MBytes       
[  4]  40.00-50.00  sec  17.5 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  50.00-60.00  sec  18.1 GBytes  15.5 Gbits/sec    0   6.01 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-60.00  sec   107 GBytes  15.4 Gbits/sec    0             sender
[  4]   0.00-60.00  sec   107 GBytes  15.4 Gbits/sec                  receiver

Lire les résultats

Entre ces deux systèmes, nous pourrions atteindre une bande passante de 15,4 gigabits par seconde, soit environ 1 835 Mio (mébioctet) par seconde.

Ici,
Intervalle signifie l'intervalle de test, la valeur par défaut est de 10 secondes et s'affiche sous la forme "0,0-10,0 secondes"
Transfert signifie combien de données sont transférées entre les deux nœuds en cours de test.
Bande passante est l'indicateur de performance pour lequel nous utilisons les tests iperf.

Remarque :Le serveur écoute sur le port TCP 5201 par défaut. Ce port devra être autorisé à traverser tous les pare-feu présents. Le port utilisé peut être modifié avec l'option de ligne de commande -p.

Tester les performances du réseau avec le protocole UDP

L'iperf par défaut utilise le protocole TCP pour les tests, comme indiqué ci-dessus. Ajouter l'option "-u ” pour utiliser le protocole UDP pour les tests de performances.

1. La première étape consiste à démarrer le serveur.

# iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------

[  3] local 1.1.1.1 port 5001 connected with 1.1.1.2 port 51598
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  0.004 ms    0/  893 (0%)

2. La commande côté client est comme indiqué ci-dessous.

# iperf -u -c server
------------------------------------------------------------
Client connecting to 1.1.1.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------
[  3] local 1.1.1.2 port 51598 connected with 1.1.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[  3] Sent 893 datagrams
[  3] Server Report:
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  0.004 ms    0/  893 (0%)

Modification de la bande passante par défaut en mode UDP

En mode UDP, le client utilise la bande passante par défaut (1 Mbit/sec) pour envoyer les paquets au serveur, nous pouvons donc voir que le résultat du test de bande passante UDP est de 1,05 Mbit/sec. Afin d'obtenir la meilleure bande passante réseau, nous pouvons ajouter l'option "-b value ” pour augmenter la bande passante d'envoi :

# iperf -u -c server -b 1000M
------------------------------------------------------------
Client connecting to 1.1.1.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------
[  3] local 1.1.1.2 port 58097 connected with 1.1.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes    948 Mbits/sec
[  3] Sent 806540 datagrams
[  3] Server Report:
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.08 GBytes    929 Mbits/sec  0.010 ms 16203/806540 (2%)

Mesure de la taille de transfert maximale (MTU)

L'option -m indique à iperf de trouver également la taille de transfert maximale (MTU) :

# iperf -mc 192.168.10.12
------------------------------------------------------------
Client connecting to 192.168.10.12, TCP port 5001
TCP window size: 19.3 KByte (default)
------------------------------------------------------------
[  3] local 192.168.10.13 port 46558 connected with 192.168.10.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   113 MBytes  94.7 Mbits/sec
[  3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)


Cent OS
  1. Comment utiliser BusyBox sous Linux

  2. Comment j'utilise cron sous Linux

  3. Comment utiliser FIND sous Linux

  4. Comment utiliser la commande Su sous Linux

  5. Comment utiliser la commande Linux mtr

Comment utiliser la commande Linux nohup

Comment utiliser les opérateurs de test de fichiers Bash sous Linux

Introduction au VPN et voici comment l'utiliser sous Linux

Comment nous utilisons Linux Test Project pour tester et améliorer Linux

Comment configurer et utiliser le pont réseau dans Ubuntu Linux

Comment utiliser la commande netstat sous Linux