iperf permet de faire des test de débit montant et descendant ainsi que des tests de MTU et gigue (jitter).
Il fonctionnement en mode serveur et client.
Sur le principe ça marche bien quand on veut faire des tests ponctuels mais dans mon cas, je veux pouvoir faire des tests toutes les 30 min et pouvoir consulter l’historique sur une page web et c’est ce que je vais essayer de faire ici.
Il est préférable de télécharger la dernière version sur le site http://iperf.fr car celle fourni sur les dépôts debian n’est pas démuni de bug..
Lancer le serveur sur la machine A via la commande
iperf -s
Puis lancer le client sur la machine B via la commande
iperf -c <ip de la machine A>
Sur A vous devriez voir
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 172.16.43.103 port 5001 connected with 172.16.30.84 port 57114 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.2 sec 5.65 MBytes 4.65 Mbits/sec
et sur B
------------------------------------------------------------ Client connecting to 172.16.43.103, TCP port 5001 TCP window size: 16.0 KByte (default) ------------------------------------------------------------ [ 3] local 172.16.30.84 port 57114 connected with 172.16.43.103 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.1 sec 5.65 MBytes 4.70 Mbits/sec
Pour faire le test de débit dans l’autre sens, il suffit d’inverser les commandes, de lancer le serveur sur B et le client sur A.
Pour avoir les 2 tests d’un coup, ajoutez l’option -r
Afin de pouvoir exploiter les données facilement, il existe l’option -y c pour avoir les données au format CSV.
iperf -s -y c 20130207092046,172.16.43.103,5001,172.16.30.84,56221,4,0.0-10.1,6135808,4859141
Vous devrez ouvrir les ports 5001 sur toutes les machines concernées par le test de débit et veiller à ce que le serveur iperf soit bien lancé sur les machines.
Voici un script à placer dans /etc/init.d
#!/bin/bash case "$1" in start) # on start iperf serveur echo 'Démarrage de iperf en background' /usr/bin/iperf -s > /dev/null & ;; stop) # pour arrêter iperf, on lui envoie un signal KILL /usr/bin/skill -KILL iperf ;; *) echo 'Usage: /etc/init.d/iperf {start|stop}' exit 1 ;; esac exit 0
ensuite on rend le fichier exécutable
chmod +x /etc/init.d/iperf
et on dit au système de le lancer au démarrage
update-rc.d iperf defaults
pour le désactiver du démarrage
update-rc.d iperf remove
à suivre…