iPerf 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=5201/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.
Selon 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.
4 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.
abriotde · 7 avril 2020 à 21 h 54 min
Et ne permet t il pas de voir d autre soucis comme la MTU, ou des pertes de packets, des trajets différents aller de retour…
Moi j utilise ping pour regler le MTU. J’utilise traceroute a faire des 2 cotes pour voir les trajets. Et j utilise scp ou rsync d un gros fichier pour le débit. J aimerais bien un outils qui test le tout.
kikinovak · 7 avril 2020 à 22 h 00 min
Ça remplacera votre test avec
scp
etrsync
. C’est probablement plus commode. Pour le reste, voir la Unix Tools Philosophy. Utiliser des outils qui font une chose, et qui la font bien.Les commentaires sont fermés.