Auteur Sujet: Windows: Réaliser un test de débit descendant/montant avec CURL  (Lu 52173 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Réaliser un test de débit descendant ou montant avec CURL sous Windows

Également disponible : Tutoriel CURL pour Linux et Tutoriel CURL pour MacOS


Installer CURL sous Windows

Étape 1 : Télécharger CURL
- CURL 7.54 (64bits pour Windows 64bits)
- CURL 7.54 (32bits pour Windows 32bits)

É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]

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Windows: Réaliser un test de débit montant avec CURL
« Réponse #1 le: 28 avril 2017 à 17:11:08 »
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.
Selon le paramétrage de HTTP/2 (comportement par défaut avec https), le débit peut être limité en fonction des paramétrages HTTP/2 du serveur.

IPv4 uniquement :
http HTTP/1.1, sur une durée de 60 secondes : curl --max-time 60 -4 -w %{size_upload} -o NULL -F "file=@temp.iso" http://bouygues.testdebit.info/ul/
https HTTP/1.1, sur une durée de 60 secondes : curl --max-time 60 -4 -w %{size_upload} --http1.1 -o NULL -F "file=@temp.iso" https://bouygues.testdebit.info/ul/
http HTTP/1.1, sans limite de durée : curl -4 -o NULL -F "file=@temp.iso" http://bouygues.testdebit.info/ul/
https HTTP/1.1, sans limite de durée : curl -4 --http1.1 -o NULL -F "file=@temp.iso" https://bouygues.testdebit.info/ul/

http HTTP/2, sur une durée de 60 secondes : curl --max-time 60 -4 -w %{size_upload} --http2-prior-knowledge -o NULL -F "file=@temp.iso" http://bouygues.testdebit.info/ul/
https HTTP/2, sur une durée de 60 secondes : curl --max-time 60 -4 -w %{size_upload} -o NULL -F "file=@temp.iso" https://bouygues.testdebit.info/ul/
http HTTP/2, sans limite de durée : curl -4 --http2-prior-knowledge -o NULL -F "file=@temp.iso" http://bouygues.testdebit.info/ul/
https HTTP/2, sans limite de durée : curl -4 -o NULL -F "file=@temp.iso" https://bouygues.testdebit.info/ul/


IPv6 uniquement :
http HTTP/1.1, sur une durée de 60 secondes : curl --max-time 60 -6 -w %{size_upload} -o NULL -F "file=@temp.iso" http://bouygues.testdebit.info/ul/
https HTTP/1.1, sur une durée de 60 secondes : curl --max-time 60 -6 -w %{size_upload} --http1.1 -o NULL -F "file=@temp.iso" https://bouygues.testdebit.info/ul/
http HTTP/1.1, sans limite de durée : curl -6 -o NULL -F "file=@temp.iso" http://bouygues.testdebit.info/ul/
https HTTP/1.1, sans limite de durée : curl -6 --http1.1 -o NULL -F "file=@temp.iso" https://bouygues.testdebit.info/ul/

http HTTP/2, sur une durée de 60 secondes : curl --max-time 60 -6 -w %{size_upload} --http2-prior-knowledge -o NULL -F "file=@temp.iso" http://bouygues.testdebit.info/ul/
https HTTP/2, sur une durée de 60 secondes : curl --max-time 60 -6 -w %{size_upload} -o NULL -F "file=@temp.iso" https://bouygues.testdebit.info/ul/
http HTTP/2, sans limite de durée : curl -6 --http2-prior-knowledge -o NULL -F "file=@temp.iso" http://bouygues.testdebit.info/ul/
https HTTP/2, sans limite de durée : curl -6 -o NULL -F "file=@temp.iso" https://bouygues.testdebit.info/ul/

Attention : le débit est calculé coté émetteur : tout paquet émis et non acquitté est compté dans les données "size_upload"
Si une box a un petit débit et de gros buffers, il est possible d'avoir une différence très importante, les données sont émises, mais elles ne sont pas reçues, car elles sont en transit dans le buffer de la box.
Il est donc indispensable d'avoir un test de longue durée (par exemple 60 secondes) en upload. En download 8 secondes suffisent par cotre, vu que le débit est calculé coté récepteur.

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #2 le: 13 avril 2019 à 22:14:53 »
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)


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)



Je n'arrive pas a m'expliquer une telle différence, sur la même machine

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #3 le: 14 avril 2019 à 17:50:45 »
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

alain_p

  • Abonné Free fibre
  • *
  • Messages: 16 170
  • Delta S 10G-EPON sur Les Ulis (91)
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #4 le: 14 avril 2019 à 18:36:24 »
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

Makara

  • Abonné Orange Fibre
  • *
  • Messages: 643
  • 55
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #5 le: 14 avril 2019 à 19:32:01 »
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

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #6 le: 14 avril 2019 à 19:48:00 »
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.

alain_p

  • Abonné Free fibre
  • *
  • Messages: 16 170
  • Delta S 10G-EPON sur Les Ulis (91)
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #7 le: 14 avril 2019 à 20:51:19 »
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

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #8 le: 14 avril 2019 à 21:14:31 »
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.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #9 le: 14 avril 2019 à 21:23:24 »
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 ).


vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Windows: Réaliser un test de débit descendant/montant avec CURL
« Réponse #10 le: 14 avril 2019 à 21:33:38 »
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é.