Auteur Sujet: NSpeed: nouveau projet de mesure de débit  (Lu 131858 fois)

0 Membres et 2 Invités sur ce sujet

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 705
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #228 le: 28 décembre 2025 à 19:59:20 »
proposition de modification :

changement de l'option -w pour get/put/post.
avant : -w w0 : attend w0 (durée en Go, par exemple "1s" ou "100ms") avant de lancer la commande (donc avant meme d'ouvrir la connexion)
apres: -w w0,t0,w1,t1,...,wN,tN: connecte immédiatement, attend w0, transfert pendant t0, attend w1, transfert pendant t1, etc

sémantique:
  N >= 0
  wX = 0 => ne pas attendre sinon attendre wX
  tX = 0 => durée infinie sinon transferer pendant tX

wX ou tX ne peuvent être a zero donc (erreur si c'est le cas) sauf le 1er (w0) et le dernier (tN).
le dernier tN est optionnel et dans ce cas sa valeur est 0 = ne plus s'arreter (hormis fin du transfert ou timeout job / global )

les timeout de job (get/put/post -m t) et  global (nspeed -timeout t ...) restent en vigeur

donc:
-w 100ms est valide et signifie: se connecter , attendre 100ms et faire le job jusqu'à complétion/timeout global/local.
-w 0,1s,3s est valide et signifie: se connecter, transferer pendant 1 seconde puis attendre 3s et reprendre jusqu'à complétion/timeouts.
-w 1s,1s  est valide et signifie: se connecter, attendre 1s transferer pendant 1s puis stopper  ("quasi" equivalent de "-w 1s -m 1")
-w 0,1s,0 est invalide (on pourrait  le simplifier en "0,1s" mais autant générer une erreur)

Je m'interogge sur le changement que cela introduit pour l'ancien -w (qui ne connectait pas avant le delai) et du coup peut-être le re-introduire sous forme de "-pre délai" (pour être cohérent avec l'option -pre de nspeed et de  'then')

donc:

nspeed -pre 10ms get -pre 1s -w 1s,1s url1 then -pre 2s get -pre 100ms -w 3s url2attend 10ms, attend 1s , se connecte a url1, puis attend 1s et transfert url1 pendant 1s au max
puis attend 2s (-pre de then) puis 100ms
puis se connecte a url2, attend 3s et transfert url2 (completement ou jusqu'au timeout par défaut de 8 secondes qui démarre a la connection a url2).

Reste a voir la sémantique de l'interaction avec l'option -r:

nspeed get -r 2 -w 1s,1s urlse connecte a url
attendre 1s
transfert pendant 1s et indiquer au serveur de stopper ce GET sans fermer la connection ?
attendre 1s
transfert pendant 1s (ca fait un nouveau 'GET' a ce moment la donc)

il faut que voit comment ca peut se mettre en oeuvre...

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 3 075
  • Chambly (60)
NSpeed: nouveau projet de mesure de débit
« Réponse #229 le: 28 décembre 2025 à 21:03:23 »
indiquer au serveur de stopper ce GET sans fermer la connection ?
En download c'est possible en HTTP/2 ou HTTP/3, mais pas en HTTP/1.1.

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 705
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #230 le: 11 janvier 2026 à 22:06:27 »
Update:
- implementation d'un 'pacer' générique sur les I/O (read & write) dans nspeed. le code est dans nspeed 'next' branch: https://github.com/nspeed-app/nspeed/tree/next/pacing
- a venir l'utilisation de ce pacer dans le programme nspeed avec la modification de l'option en ligne de commande.

pour l'option -r je pense que le mieux est de considerer que son role est de prolonger un get/put plutôt que de vouloir répéter le pacing plusieurs fois.
Fonctionnellement "get url/10Mo.iso" et "get -r 10 url/1Mo.iso so" est la meme chose, 10Mo seront télécharger avec un seul GET ou 10 GET a la suite. Si un pacing est introduit celui ci aura lieu sur l'intégralité des 10 GET (y'a un travail à faire entre les GET pour garder le pacing en cours).




kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 705
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #231 le: 07 février 2026 à 20:19:43 »
Update
- nspeed release v0.0.16; https://github.com/nspeed-app/nspeed/releases/tag/v0.0.16

Le scheduling se fait avec '-schedule w0,t0,w1,t1,...,wN[,tN]'

Ca fonctionne *en principe* avec get/put/post pour tous les protocoles supportés par nspeed (http/1.1, http/2, http/3, tcp, stcp, quic, quic-go).

Pour le moment c'est option n'est pas compatible avec l'option -r (repeat).

il y a sans doute des bugs :)

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 705
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #232 le: Hier à 22:25:52 »
Le projet est maintenant 100% open source. Les releases et leur annonces se feront maintenant entierement sur https://github.com/nspeed-app/nspeed et plus ici.

vivien

  • Administrateur
  • *
  • Messages: 53 541
    • Bluesky LaFibre.info
NSpeed: nouveau projet de mesure de débit
« Réponse #233 le: Aujourd'hui à 08:52:00 »
C'est top.

Une demande pour que cela soit intégré dans les distributions Linux ?

Il manque encore un logo à mettre sur la page. Peut-être celui ci ?


Petit bug sur la page française ( https://nspeed.app/fr/ ) : Le changelog renvoie une erreur 404. Je pense qu'il faudrait mettre le lien de la page en anglais, qui lui fonctionne.

Peut-être qu'il faudrait créer une entrée vers https://github.com/nspeed-app/nspeed/#examples car c'est un point important pour une personne qui se lance.

Je me demande si "Available global options:" ne devrait pas être rajouté sur la page github.
Available global options:

  -4   use IPv4 only
  -6   use IPv6 only
  -buffer int
       size of I/O buffer to use (default is 0 for system size, use -1 for max)
  -cpu
       display cpu usage (default is every second, use -cpurate to change). Also collect mem/gc stats
  -cpuprofile string
       write cpu profile to file
  -cpurate duration
       set cpu rate (implies -cpu)
  -debug
       show even more progress & details
  -display-log-level
       display logging levels (always true if -verbose/-debug/-trace)
  -display-log-time
       display logging timestamps
  -dns-server string
       specify a dns server to use (literal ip or literal ip:port)
  -formatV4 string
       specific anonymizer format for IPv4 addresses (default "1")
  -formatV6 string
       specific anonymizer format for IPv6 addresses (default "18")
  -html string
       output stats in a html file (use - for stdout)
  -info
       display informations about the host
  -json string
       output stats in a json file (use - for stdout)
  -log string
       structured logging output filename (use - for stdout), imply -verbose
  -maxtime duration
       maximum default duration of each commands (default 8s)
  -memprofile string
       write memory profile to file
  -n string
       name of the first batch
  -nocolor
       do not use colors in text output
  -post duration
       duration to wait after all commands ended
  -pre duration
       duration to wait before starting commands
  -rate duration
       data sampling rate in duration (used for time series generation)
  -self
       use embed self-signed certificate
  -test
       just test arguments, do nothing
  -text string
       output stats as text (use - for stdout) (default "-")
  -tick duration
       display progress rate in duration (used for -debug, -trace and webstats (default 1s)
  -timeout uint
       default global timeout in seconds, 0 for no timeout
  -trace
       maximum debug and tracing informations
  -ungroup
       show members of groups
  -verbose
       show progress & details
  -version
       display version (add "all" for more build and runtime informations)

vivien

  • Administrateur
  • *
  • Messages: 53 541
    • Bluesky LaFibre.info
NSpeed: nouveau projet de mesure de débit
« Réponse #234 le: Aujourd'hui à 21:23:18 »
J'ai rajouté un tutoriel d'une utilisation basique de NSpeed dans mon tutoriel Création d’une clé USB bootable, pour réaliser un test de débit fiable à coté de Nperf desktop et iPerf3 (pour SpeedTest Cli, je suis en contact avec les développeurs, j'attends de savoir si l'outil est maintenu ou non pour éventuellement l'intégrer).

J'ai traduit rapidement les commandes de NSpeed en français.

Ne pas hésiter à faire des propositions pour améliorer le tuto, la traduction en français ou les exemples fournis, mais cela doit rester simple, on vise des personnes qui ont peu de connaissances réseau.

Note : Je vais proposer ce tutoriel à l'Arcep (sans être sûr que cela sera accepté).