La Fibre
Télécom => Réseau =>
Comment tester son débit ? => Discussion démarrée par: vivien le 28 avril 2017 à 17:00:12
-
Réaliser un test de débit descendant ou montant avec CURL sous Windows
Également disponible : Tutoriel CURL pour Linux (https://lafibre.info/tester-son-debit/curl-linux/) et Tutoriel CURL pour MacOS (https://lafibre.info/tester-son-debit/curl-mac/)
Installer CURL sous Windows
Étape 1 : Télécharger CURL
- CURL 7.54 (64bits pour Windows 64bits) (https://soft.lafibre.info/download/windows/network-utilities/curl/curl-7.54.0-win64.exe)
- CURL 7.54 (32bits pour Windows 32bits) (https://soft.lafibre.info/download/windows/network-utilities/curl/curl-7.54.0-win32.exe)
Étape 2 :
Renommer votre version de curl en curl.exe et placez là dans le dossier C:\WINDOWS
Étape 3 :
Dans le menu démarrer, lancer l'application "Invite de commandes" (pour aller plus vite, cherchez cmd dans le champ de recherche)
Si curl.exe n'est pas dans C:\WINDOWS, placez vous dans le dossier où il est installé, par exemple avec la commande cd Downloads si il est dans le dossier téléchargement.
Test de débit descendant (download) sur une connexion TCP sous Windows :
Le débit moyen est affiché dans la colonne Average Dload. C'est un débit en Mo/s et non en Mb/s. C'est un débit utile, les encapsulations ne sont pas comptées.
IPv4 uniquement :
- http, sur une durée de 8 secondes : curl --max-time 8 -4 -k -o NUL http://bouygues.testdebit.info/10G.iso
- https, sur une durée de 8 secondes : curl --max-time 8 -4 -k -o NUL https://bouygues.testdebit.info/10G.iso
- http, taille fixe de 100Mo : curl -4 -k -o NUL http://bouygues.testdebit.info/100M.iso
- https, taille fixe de 100Mo : curl -4 -k -o NUL https://bouygues.testdebit.info/100M.iso
- http, taille fixe de 1Go : curl -4 -k -o NUL http://bouygues.testdebit.info/1G.iso
- https, taille fixe de 1Go : curl -4 -k -o NUL https://bouygues.testdebit.info/1G.iso
IPv6 uniquement :
- http, sur une durée de 8 secondes : curl --max-time 8 -6 -k -o NUL http://bouygues.testdebit.info/10G.iso
- https, sur une durée de 8 secondes : curl --max-time 8 -6 -k -o NUL https://bouygues.testdebit.info/10G.iso
- http, taille fixe de 100Mo : curl -6 -k -o NUL http://bouygues.testdebit.info/100M.iso
- https, taille fixe de 100Mo : curl -6 -k -o NUL https://bouygues.testdebit.info/100M.iso
- http, taille fixe de 1Go : curl -6 -k -o NUL http://bouygues.testdebit.info/1G.iso
- https, taille fixe de 1Go : curl -6 -k -o NUL https://bouygues.testdebit.info/1G.iso[/size]
-
Préparatif pour une test de débit montant (upload) : télécharger un ficher de grande taille appelé temp.iso
- Exemple avec un fichier de 10 Mo : curl -k -o temp.iso https://bouygues.testdebit.info/10M.iso
- Exemple avec un fichier de 100 Mo : curl -k -o temp.iso https://bouygues.testdebit.info/100M.iso
- Exemple avec un fichier de 1 Go : curl -k -o temp.iso https://bouygues.testdebit.info/1G.iso
- Exemple avec un fichier de 10 Go : curl -k -o temp.iso https://bouygues.testdebit.info/10G.iso
Test de débit montant (upload) sur une connexion TCP sous Windows :
Le débit moyen est affiché dans la colonne Average Upload. C'est un débit en Mo/s et non en Mb/s. C'est un débit utile, les encapsulations ne sont pas comptées.
IPv4 uniquement :
http, sur une durée de 8 secondes : curl --max-time 8 -4 -k --http1.1 -o NUL -F "filecontent=@temp.iso" http://bouygues.testdebit.info
https, sur une durée de 8 secondes : curl --max-time 8 -4 -k --http1.1 -o NUL -F "filecontent=@temp.iso" https://bouygues.testdebit.info
http, sans limite de durée : curl -4 -k --http1.1 -o NUL -F "filecontent=@temp.iso" http://bouygues.testdebit.info
https, sans limite de durée : curl -4 -k --http1.1 -o NUL -F "filecontent=@temp.iso" https://bouygues.testdebit.info
IPv6 uniquement :
http, sur une durée de 8 secondes : curl --max-time 8 -6 -k --http1.1 -o NUL -F "filecontent=@temp.iso" http://bouygues.testdebit.info
https, sur une durée de 8 secondes : curl --max-time 8 -6 -k --http1.1 -o NUL -F "filecontent=@temp.iso" https://bouygues.testdebit.info
http, sans limite de durée : curl -6 -k --http1.1 -o NUL -F "filecontent=@temp.iso" http://bouygues.testdebit.info
https, sans limite de durée : curl -6 -k --http1.1 -o NUL -F "filecontent=@temp.iso" https://bouygues.testdebit.info
-
Je viens de réaliser un test sur un PC en dual boot :
- Windows 10 1809 64bits (propre sans logiciel installé autre que Firefox / Thunderbird / Libre Office / Gimp / drivers imprimante) en utilisant CURL 7.54 64bits
- Ubuntu 18.04 64bits (sans logiciels spécifique installé) en utilisant CURL 7.58 64bits
sur une ligne Orange Sosh 300 Mb/s symétrique, la connexion se fait en Ethernet 1 Gb/s.
La machine est récente (Intel Core i3-6100 @3.70GHz) avec 8 Go de Ram.
Windows, les débits sont ok en download, mais catastrophique en upload.
J'ai testé différents serveurs (4gmark.testdebit.info est chez Bouygues à Paris, j'ai aussi testé un servuer à Aix (latence plus élevée) et Lille)
(https://lafibre.info/testdebit/windows10/201904_testdebit_curl_windows10.png)
Windows, les débits sont ok en download, mais catastrophique en upload.
J'ai testé différents serveurs (4gmark.testdebit.info est chez Bouygues à Paris, j'ai aussi testé un serveur à Aix (latence plus élevée) et Lille), j'ai aussi test lafibre.info hébergé près de Lyon au Maxnod.
Sur le serveur 4GMark, j'ai testé IPv4 comme IPv6, https comme http sans changement du débit.
Le processeur n'est pas l'élèment limitant.
Ubuntu : les débits sont parfait sur les serveurs Bouygues (35,5 Mio/s = 298 Mb/s)
C'est un peu moins bon sur le serveur ipv4.lafibre.info qui a une version d'Ubuntu server plus ancienne (16.04 contre 18.04 chez Bouygues)
(https://lafibre.info/testdebit/ubuntu/201904_testdebit_curl_ubuntu1804.png)
Je n'arrive pas a m'expliquer une telle différence, sur la même machine
-
Effectivement, 8Mo/s avec le curl 7.55.1 intégré dans Windows 10.
Mais le curl 7.58 de Ubuntu 18.04 (WSL) n'a pas le problème (31Mo/s).
Et avec https://curl.haxx.se/windows/dl-7.64.1/curl-7.64.1-win64-mingw.zip, deux tests à 23Mo/s et un à 31Mo/s.
Ça ne semble pas lié à la NB6V, il n'y a pas de consommation CPU (certaines vieilles versions de curl avaient un upload incorrect dans certaines conditions, et ça ne passait pas par le NAT HW de la neufbox).
Mais côté curl, il y a eu 2 changements en 7.61.1 :
- augmentation de la taille du buffer d'upload dans curl : https://github.com/curl/curl/issues/2888
- augmentation de la taille du buffer d'envoi côté socket sous Windows : https://github.com/curl/curl/issues/2224
-
J'ai un peu mieux (~25 Mo/s, 200 Mb/s), mais effectivement loin de mon upload mesuré avec d'autres outils (Nperf : 500 Mb/s).
Et dans une VM virtualbox Ubuntu, hébergée sous mon windows 10, j'ai bien mieux, ~70 Mo/s, 560 Mb/s.
Je pense que c'est le curl sous windows qui a des problèmes pour l'upload :
PS G:\download\curl> .\curl-7.54.0-win64.exe -4 -k -o NUL -F "filecontent=@1G.iso" https://bouygues.testdebit.info
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 953M 100 125k 100 953M 3297 24.4M 0:00:38 0:00:38 --:--:-- 24.4M
PS G:\download\curl> .\curl-7.54.0-win64.exe -6 -k -o NUL -F "filecontent=@1G.iso" https://bouygues.testdebit.info
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 953M 100 125k 100 953M 3263 24.2M 0:00:39 0:00:39 --:--:-- 24.2M
ubuntu-srv:~/test_debit$ curl -4 -k -o /dev/null -F "filecontent=@temp.iso" https://bouygues.testdebit.info
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 953M 100 125k 100 953M 9251 68.6M 0:00:13 0:00:13 --:--:-- 69.6M
ubuntu-srv:~/test_debit$ curl -6 -k -o /dev/null -F "filecontent=@temp.iso" https://bouygues.testdebit.info
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 953M 100 125k 100 953M 8968 66.5M 0:00:14 0:00:14 --:--:-- 67.1M
-
C'est pas mieux de mon côté. Je fais des pointes à 115mo/s en dl, mais le up, c'est pas encore ça.
Réalisé sous W10 x64 LTSC 1809
C:\Windows\system32>curl -k -o temp.iso https://bouygues.testdebit.info/1G.iso
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 953M 100 953M 0 0 86.6M 0 0:00:11 0:00:11 --:--:-- 95.1M
C:\Windows\system32>curl --max-time 8 -4 -k -o NUL -F "filecontent=@temp.iso" http://bouygues.testdebit.info
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
2 953M 0 0 2 24.5M 0 3146k 0:05:10 0:00:08 0:05:02 3179k
-
Avec un buffer trop petit, le débit dépend de la latence.
Donc pour un test représentatif en upload sous Windows (natif, WSL ne semble pas affecté), il faut un curl 7.61.1 ou plus récent.
Testez avec le binaire officiel de la dernière version : https://curl.haxx.se/windows/dl-7.64.1/curl-7.64.1-win64-mingw.zip.
-
Effectivement, avec une version récente, 7.64, c'est mieux, ~50 Mo/s (400 Mb/s) :
PS G:\download\curl\curl-7.64.1-win64-mingw\bin> .\curl.exe -4 -k -o NUL -F "filecontent=@..\..\1G.iso" https://bouygues
.testdebit.info
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 953M 100 125k 100 953M 6613 49.0M 0:00:19 0:00:19 --:--:-- 50.3M
PS G:\download\curl\curl-7.64.1-win64-mingw\bin> .\curl.exe -6 -k -o NUL -F "filecontent=@..\..\1G.iso" https://bouygues
.testdebit.info
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 953M 100 125k 100 953M 6502 48.2M 0:00:19 0:00:19 --:--:-- 49.0M
Rq : la version sous Ubuntu (16.04) est pourtant plus ancienne :
ubuntu-srv:~/test_debit$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
-
Rq : la version sous Ubuntu (16.04) est pourtant plus ancienne :
ubuntu-srv:~/test_debit$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
https://curl.haxx.se/mail/lib-2018-07/0080.html
Visiblement sous Windows le code de curl ne permettait pas l'adaptation de la taille du buffer d'envoi TCP, qui restait donc trop petit. Le comportement évolue suivant les versions (de la pile TCP/IP, pas que de Windows), et n'est pas forcèment très documenté...
Sous Linux, il n'y avait pas le problème.
-
a noter qu'on peut utiliser un package manager pour installer Curl. ca permet de l'avoir a jour facilement.
Le plus connu est https://chocolatey.org/
La version de Curl y est la 7.64.1 ( https://chocolatey.org/packages/curl ).
-
Merci pour vos retours.
Je note surtout que le projet Curl fait maintenant directement des binaires pour Windows, ce qui n'était pas le cas avant et rendait compliqué le choix d'une version compilé.