Auteur Sujet: FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6  (Lu 75569 fois)

0 Membres et 1 Invité sur ce sujet

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #204 le: 02 février 2020 à 16:33:34 »
iperf3 -4 -c paris.testdebit.info -p 9222 -R837 Mbits/sec

iperf3 -4 -c paris.testdebit.info -p 9222 -R --congestion=bbr943 Mbits/sec

par contre je viens de découvrir que si un client demande une congestion les tests suivants auront tous cette congestion:

tres visible avec -V:

test 1:
iperf3 -4 -c paris.testdebit.info -p 9222 -R -V
affiche: snd_tcp_congestion cubic

test 2:
iperf3 -4 -c paris.testdebit.info -p 9222 -R -V --congestion=bbr
affiche: snd_tcp_congestion bbr

test 3: le meme que le 1
iperf3 -4 -c paris.testdebit.info -p 9222 -R -V
affiche: snd_tcp_congestion bbr

et ce n'est pas lié a l'IP du client, j'ai fait un test avec 2 machines avec 2 IP différentes.

Du coup tu ne peux savoir la congestion sans -V...

bug ou feature d'iperf3? idéalement apres un test qui change la congestion il devrait remettre celle par défaut ...bon apres l'auteur d'IPerf3 a toujours dit que son programme était pas fait pour des tests sur serveurs publics.

au pire tu peux lancer ton serveur avec l'option -1 (=un test puis termine) dans une boucle sans fin, ca devrait reset l'algo a chaque fois.

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #205 le: 03 février 2020 à 08:03:01 »
Mon PC de test : Ubuntu 19.10

$ iperf3 -v
iperf 3.7 (cJSON 1.5.2)
Linux vivien1 5.3.0-29-generic #31-Ubuntu SMP Fri Jan 17 17:27:26 UTC 2020 x86_64
Optional features available: CPU affinity setting, IPv6 flow label, SCTP, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing, authentication

$ cat /proc/sys/net/ipv4/tcp_congestion_control
cubic

$ cat /proc/sys/net/ipv4/tcp_available_congestion_control
reno cubic bbr


Voici les lignes de commandes passées dans l'ordre :

iperf3 -t 3 -c paris.testdebit.info -p 9222 -R -V
snd_tcp_congestion cubic
rcv_tcp_congestion cubic

iperf3 -t 3 -c paris.testdebit.info -p 9222 -R -V --congestion=bbr
snd_tcp_congestion bbr
rcv_tcp_congestion bbr

iperf3 -t 3 -c paris.testdebit.info -p 9222 -R -V
snd_tcp_congestion bbr
rcv_tcp_congestion cubic

iperf3 -t 3 -c paris.testdebit.info -p 9222 -R -V --congestion=cubic
snd_tcp_congestion cubic
rcv_tcp_congestion cubic

C'est donc un pb coté client et non coté serveur ?

Breizh29

  • Abonné Free fibre
  • *
  • Messages: 408
  • Ergué-Gabéric (29)
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #206 le: 03 février 2020 à 08:52:31 »
Bonjour,

Pour info, je ne mets plus de graphique à jour depuis quelques jours, car :
- j'ai mis à jour le script pour intégrer la mesure de l'upload (mêmes modalités IPv4 / IPv6 / mono / multi)
- je suis en train de me frotter à gnuplot pour j'espère, à terme, automatiser autant que possible la création des graphiques

Pendant ce temps, les mesures se poursuivent...

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #207 le: 03 février 2020 à 08:56:22 »
Bonne idée d'automatiser la chose.

Note : Je suis intéressé par le fichier CSV avec les données depuis le début.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #208 le: 03 février 2020 à 09:57:46 »
C'est donc un pb coté client et non coté serveur ?

Non côté serveur. Il ne reviens pas a l'algo par défaut.
Regarde ton 3eme test le serveur a utilisé l'algo du test d'avant au lieu de cubic.

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #209 le: 03 février 2020 à 14:19:38 »
Tu as raison.

J'ai également eu des cas où le port iPerf3 ne répondait plus après un appel avec un protocole de congestion non supporté.

Je redémarre les process iPerf3 toutes les heures, il faudrait peut-être que je le réalise toute les 30 min ? (plus on redémarre souvent, plus on prend le risque de couper un tests en cours)

underground78

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 7 437
  • Orsay (91)
    • FreePON : suivi géographique du déploiement fibre EPON chez Free
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #210 le: 03 février 2020 à 16:36:26 »
Le plus propre serait probablement de faire ce que proposait kgersen :
au pire tu peux lancer ton serveur avec l'option -1 (=un test puis termine) dans une boucle sans fin, ca devrait reset l'algo a chaque fois.

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #211 le: 04 février 2020 à 15:44:31 »
Voici les anciens scripts (enfin toujours utilisés actuellement) :

sudo adduser iperf --disabled-login --gecos iperf
sudo nano /home/iperf/restart_iperf.sh

#!/bin/dash
/bin/sleep 15
/usr/bin/killall iperf3
/bin/sleep 0.1
/usr/bin/killall -9 iperf3
/bin/sleep 0.1
if [ `ps -C iperf3 | wc -l` = "1" ]
then
  /usr/bin/iperf3 -s -p 9200 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9201 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9202 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9203 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9204 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9205 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9206 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9207 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9208 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9209 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9210 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9211 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9212 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9213 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9214 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9215 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9216 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9217 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9218 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9219 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9220 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9221 -D >/dev/null 2>&1
  /usr/bin/iperf3 -s -p 9222 -D >/dev/null 2>&1
fi

sudo chmod +x /home/iperf/restart_iperf.sh

sudo nano /etc/cron.d/iperf


# Auto restart on reboot
@reboot         iperf       /home/iperf/restart_iperf.sh

# Auto restart iPerf (for crash)
59 * * * *      iperf       /home/iperf/restart_iperf.sh

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #212 le: 04 février 2020 à 15:48:09 »
Solution crade qui relance iperf3 après chaque fin de process :

sudo adduser iperf --disabled-login --gecos iperf
sudo nano /home/iperf/restart_iperf.sh

#!/bin/dash
/bin/sleep 15
/usr/bin/killall iperf3

/home/iperf/start_iperf.sh 9200 &
/home/iperf/start_iperf.sh 9201 &
/home/iperf/start_iperf.sh 9202 &
/home/iperf/start_iperf.sh 9203 &
/home/iperf/start_iperf.sh 9204 &
/home/iperf/start_iperf.sh 9205 &
/home/iperf/start_iperf.sh 9206 &
/home/iperf/start_iperf.sh 9207 &
/home/iperf/start_iperf.sh 9208 &
/home/iperf/start_iperf.sh 9209 &
/home/iperf/start_iperf.sh 9210 &
/home/iperf/start_iperf.sh 9211 &
/home/iperf/start_iperf.sh 9212 &
/home/iperf/start_iperf.sh 9213 &
/home/iperf/start_iperf.sh 9214 &
/home/iperf/start_iperf.sh 9215 &
/home/iperf/start_iperf.sh 9216 &
/home/iperf/start_iperf.sh 9217 &
/home/iperf/start_iperf.sh 9218 &
/home/iperf/start_iperf.sh 9219 &
/home/iperf/start_iperf.sh 9220 &
/home/iperf/start_iperf.sh 9221 &
/home/iperf/start_iperf.sh 9222 &
sudo chmod +x /home/iperf/restart_iperf.sh

sudo nano /home/iperf/start_iperf.sh

#!/bin/dash
while true; do
  /bin/sleep 0.1
  /usr/bin/iperf3 -s -p $1 -1 >/dev/null 2>&1
done
sudo chmod +x /home/iperf/start_iperf.sh

sudo nano /etc/cron.d/iperf


# Auto restart on reboot
@reboot         iperf       /home/iperf/restart_iperf.sh

# Auto restart iPerf (for crash)
59 * * * *      iperf       /home/iperf/restart_iperf.sh

kgersen tu n'aurais pas une solution plus propre avec SystemD ?

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #213 le: 04 février 2020 à 16:55:46 »
faut faire un service "template" et instancier pour chaque port.
Un unit systemd de type template a un '@' a la fin du nom du fichier avant le ".".
Le parametre du template est toujours %i ou (%I)( voir https://www.freedesktop.org/software/systemd/man/systemd.unit.html  )

exemple:
#creer /etc/systemd/system/iperf3-server@.service avec dedans:
[Unit]
Description=iperf3 server on port %i
After=syslog.target network.target

[Service]
ExecStart=/usr/local/bin/iperf3 -s -1 -p %i
Restart=always
RuntimeMaxSec=3600
User=iperf

[Install]
WantedBy=multi-user.target
DefaultInstance=5201

# penser daemon-reload a chaque modif du fichier
sudo systemctl daemon-reload
Le "Restart=always" fait que le service est toujours redémarré soit parce qu'il a fini a cause de l'option -1 ou parce que au bout d'une heure (RuntimeMaxSec=3600) le système l’arrête.

# pour activer au boot il faut 'enable' les services (et "disable" donc pour les désactiver)
for p in $(seq 9200 9222); do sudo systemctl enable iperf3-server@$p ; done

# pour démarrer il faut 'start' les services (les services 'enable' vont start au boot tout seuls, la c'est pour lancer manuellement).
for p in $(seq 9200 9222); do sudo systemctl start iperf3-server@$p ; done
# et "stop" pour les arreter.

pour voir l"état et les logs ce sont les commandes usuelles de systemd. par exemple:
sudo systemctl status iperf3-server@*sudo journalctl -u iperf3-server@*

Optix

  • AS41114 - Expert OrneTHD
  • Abonné Orne THD
  • *
  • Messages: 4 667
  • WOOHOO !
    • OrneTHD
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #214 le: 04 février 2020 à 17:14:35 »
Vous avez regardé du côté de supervisord ? Ca fait exactement ce que vous voulez, avec les paramètres de timeout.

underground78

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 7 437
  • Orsay (91)
    • FreePON : suivi géographique du déploiement fibre EPON chez Free
FTTH 10G Free: Mesure de débit automatisé avec iPerf3 en IPv4 vs IPv6
« Réponse #215 le: 04 février 2020 à 17:35:58 »
Pourquoi mettre un "RuntimeMaxSec" ?