iPerfiPerf fait partie des outils indispensables pour tout administrateur réseau qui se respecte. C’est un outil de mesure de performance réseau qui se présente sous la forme d’une ligne de commande à exécuter sur deux machines disposées aux extrémités du réseau à tester.

iPerf fonctionne comme un client-serveur. La première machine lance iPerf en « mode serveur », la seconde en « mode client ». Par défaut le test réseau se fait en utilisant le protocole TCP.

Prérequis

Iperf utilise le port 5201 en TCP. Il faut donc songer à ouvrir ce port sur la machine qui sert de « serveur ».

$ sudo firewall-cmd --permanent --add-port=5202/tcp
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-all
internal (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp2s0
  sources: 
  services: dhcp dns ntp ssh
  ports: 5202/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Installation

J’utilise CentOS sur mes serveurs et OpenSUSE sur mes postes de travail. Les deux distributions fournissent des paquets binaires pour iPerf dans les dépôts officiels.

ImportantSelon le Code du Grand Troupeau de Chats qui stipule que les choses ne doivent jamais être bien claires sous Linux, les noms des paquets ne sont pas identiques, et pour entériner la confusion, le dépôt EPEL pour CentOS et Red Hat Enterprise Linux fournit un paquet iperf qui installe une ancienne version d’iPerf. Bref.

Sous CentOS et Red Hat Enterprise Linux :

# yum install iperf3

Sous OpenSUSE Leap :

# zypper install iperf

Utilisation

Sur mon serveur nestor.microlinux.lan tournant sous CentOS, je lance iPerf en mode serveur grâce à la commande suivante.

[root@nestor:~] # iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

Sur ma station de travail alphamule.microlinux.lan tournant sous OpenSUSE, il ne me reste plus qu’à lancer le client en précisant l’adresse du serveur.

[root@alphamule:~] # iperf3 -c nestor
Connecting to host nestor, port 5201
[  5] local 192.168.2.2 port 58396 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   113 MBytes   951 Mbits/sec    0    413 KBytes       
[  5]   1.00-2.00   sec   111 MBytes   934 Mbits/sec    0    413 KBytes       
[  5]   2.00-3.00   sec   111 MBytes   932 Mbits/sec    0    413 KBytes       
[  5]   3.00-4.00   sec   111 MBytes   933 Mbits/sec    0    413 KBytes       
[  5]   4.00-5.00   sec   111 MBytes   933 Mbits/sec    0    413 KBytes       
[  5]   5.00-6.00   sec   111 MBytes   935 Mbits/sec    0    413 KBytes       
[  5]   6.00-7.00   sec   111 MBytes   935 Mbits/sec    0    413 KBytes       
[  5]   7.00-8.00   sec   111 MBytes   930 Mbits/sec    0    413 KBytes       
[  5]   8.00-9.00   sec   111 MBytes   932 Mbits/sec    0    413 KBytes       
[  5]   9.00-10.00  sec   112 MBytes   937 Mbits/sec    0    413 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.09 GBytes   935 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec                  receiver

iperf Done.

Voilà ce que ça donne sur mon portable macbook.microlinux.lan connecté à mon point d’accès wifi antédiluvien.

[root@macbook:~] # iperf3 -c nestor
Connecting to host nestor, port 5201
[  5] local 192.168.2.6 port 39730 connected to 192.168.2.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   730 KBytes  5.98 Mbits/sec    0   25.5 KBytes       
[  5]   1.00-2.00   sec   846 KBytes  6.93 Mbits/sec    0   26.9 KBytes       
[  5]   2.00-3.00   sec   653 KBytes  5.35 Mbits/sec    0   26.9 KBytes       
[  5]   3.00-4.00   sec   693 KBytes  5.68 Mbits/sec    0   26.9 KBytes       
[  5]   4.00-5.00   sec   704 KBytes  5.77 Mbits/sec    0   43.8 KBytes       
[  5]   5.00-6.00   sec   526 KBytes  4.31 Mbits/sec    2   19.8 KBytes       
[  5]   6.00-7.00   sec   814 KBytes  6.67 Mbits/sec    0   22.6 KBytes       
[  5]   7.00-8.00   sec   716 KBytes  5.86 Mbits/sec    0   22.6 KBytes       
[  5]   8.00-9.00   sec   653 KBytes  5.35 Mbits/sec    0   22.6 KBytes       
[  5]   9.00-10.00  sec   684 KBytes  5.61 Mbits/sec    0   22.6 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  6.85 MBytes  5.75 Mbits/sec    2             sender
[  5]   0.00-10.00  sec  6.79 MBytes  5.69 Mbits/sec                  receiver

iperf Done.

La page de manuel iperf3(1) détaille une quantité impressionnante d’options à fournir à iPerf. Dans la pratique quotidienne, je me suis rendu compte que l’utilisation basique avec les options par défaut fait largement l’affaire.


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


2 commentaires

David · 7 avril 2020 à 17 h 07 min

Et comment interpréter les résultats ? Y a t-il une échelle permettant d’apprécier si les résultats sont bons ou mauvais ? Merci.

    kikinovak · 7 avril 2020 à 17 h 14 min

    Ça permet surtout de voir si quelque part dans le réseau on a un goulet d’étranglement sous forme d’un vieux switch pourri. Si j’ai des cartes réseau 1 Gbit/s et que j’ai du 900 Mbit/s avec iPerf, c’est OK. Si je me retrouve avec 90 Mbit/s c’est qu’il y a un couac quelque part, soit un vieux switch, soit un vieux cable réseau, et là faut démonter et tester.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *