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

0 Membres et 1 Invité sur ce sujet

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 334
  • Chambly (60)
NSpeed: nouveau projet de mesure de débit
« Réponse #180 le: 20 décembre 2022 à 01:33:03 »
~$ ./nspeed ciphers bouygues.testdebit.info
Jobs:
  0-ciphers {Target: bouygues.testdebit.info (;), delay: 0, timeout:0s}
running...
this client has AES hardware support: true
bouygues.testdebit.info:443 supports TLS 2.0 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
bouygues.testdebit.info:443 supports TLS 2.0 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
bouygues.testdebit.info:443 supports TLS 2.0 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
bouygues.testdebit.info:443 supports TLS 3.0 TLS_AES_128_GCM_SHA256
bouygues.testdebit.info:443 supports TLS 3.0 TLS_AES_256_GCM_SHA384
bouygues.testdebit.info:443 supports TLS 3.0 TLS_CHACHA20_POLY1305_SHA256
all done
no metrics to report

La version mineure semble affichée comme une version majeure, c'est TLS 1.2 et TLS 1.3.

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 297
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #181 le: 21 décembre 2022 à 15:07:08 »

La version mineure semble affichée comme une version majeure, c'est TLS 1.2 et TLS 1.3.

ah bien vu ! merci je corrige.

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 297
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #182 le: 04 février 2023 à 12:41:06 »
update du build preview: https://dl.nspeed.app/nspeed-client/preview/ (Windows & Linux seulement).
(-version = v0.0.10-22-gba2ba49)

- ciphers: fixed TLS version text messages
- http/3: using now github.com/quic-go/quic-go (just a path change of github.com/lucas-clemente/quic-go)
- fixed a race condition in debug mode
- preparing metrics export

ouno

  • Abonné Orange Fibre
  • *
  • Messages: 174
  • Rennes (35)
NSpeed: nouveau projet de mesure de débit
« Réponse #183 le: 10 février 2023 à 17:23:36 »
C'est voulu que nspeed ne renvoie plus le champ Server dans les headers ?

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 297
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #184 le: 10 février 2023 à 19:12:13 »
C'est voulu que nspeed ne renvoie plus le champ Server dans les headers ?

pas vraiment non :) je regarde cela.

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 297
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #185 le: 10 février 2023 à 19:31:32 »
update du build preview: https://dl.nspeed.app/nspeed-client/preview/ (Windows & Linux seulement).
(-version = v0.0.10-23-g45497b0-dirty)

- fixed missing 'Server' header


merci @ouno

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 297
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #186 le: 15 février 2023 à 16:52:30 »
update du build preview: https://dl.nspeed.app/nspeed-client/preview/ (Windows & Linux seulement).
(-version = v0.0.10-27-g0c02f16)

rien de nouveau en terme de fonctionalités:
- reduction des affichages en preparation de la nouvelle UI
- préparation en interne au mode 'benchmark'

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 297
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #187 le: 16 février 2023 à 16:38:44 »
update du build preview: https://dl.nspeed.app/nspeed-client/preview/ (Windows & Linux seulement).
(-version = v0.0.10-29-g4f7e829 )

- nouvelle commande 'bench' (raccourci 'b') (voir ./nspeed b -h)
- fix synchro interne client/server
- changement mineur affichages

tl;dr: bench permet de faire des tests locaux (localhost) directement sans taper une longue commande. c'est dans les faits juste un raccourci:

./nspeed b h1g est équivalent a
./nspeed server get localhost:7333/20gles benchs peuvent etre groupés (séparateur virgule) pour etre effectuer en meme temps:

./nspeed b h1g,h2g  est équivalent a :./nspeed server -p 7333 get -n 1 http://localhost:7333/20g server -p 7334 -self get -n 1 -self -http2 https://localhost:7334/20g
et aussi a:
./nspeed b h1g b -p 7334 h2g
(l'avantage de grouper donc est la gestion auto du numéro de port quand il y a plusieurs serveurs).

voici un exemple des 3 versions d'HTTP en meme temps en GET:

~ ./nspeed b h1g,h2g,h3g
4:30PM | WARN  | server listening on https://127.0.0.1:7335 (HTTP/3 on UDP) job=4
4:30PM | WARN  | server listening on http://127.0.0.1:7333 job=0
4:30PM | WARN  | server listening on https://127.0.0.1:7334 (H2C = false) job=2
running...
all done
   Job| Read speed| Write speed| Time| Bytes read| Bytes written|command
 Job 1|  38.9 Gbps|       0 bps| 4.11|    20.0 GB|           0 B|get http://localhost:7333/20g (127.0.0.1:7333 - 0.271 ms - HTTP/1.1)
 Job 3|   6.6 Gbps|       0 bps| 8.00|     6.6 GB|           0 B|get -http2 https://localhost:7334/20g (127.0.0.1:7334 - 0.183 ms - HTTP/2.0)
 Job 5|   1.2 Gbps|       0 bps| 8.00|     1.2 GB|           0 B|get -http3 https://localhost:7335/20g ( - 0.0 ms - HTTP/3.0)
 Total|  27.8 Gbps|       0 bps| 8.00|    27.8 GB|           0 B|

on remarque que HTTP/1.1 termine trop vite, on peut changer la taille avec -s:

./nspeed b -s 40g h1g,h2g,h3g
4:32PM | WARN  | server listening on https://127.0.0.1:7335 (HTTP/3 on UDP) job=4
4:32PM | WARN  | server listening on http://127.0.0.1:7333 job=0
4:32PM | WARN  | server listening on https://127.0.0.1:7334 (H2C = false) job=2
running...
all done
   Job| Read speed| Write speed| Time| Bytes read| Bytes written|command
 Job 1|  34.2 Gbps|       0 bps| 8.00|    34.2 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.142 ms - HTTP/1.1)
 Job 3|   6.1 Gbps|       0 bps| 8.00|     6.1 GB|           0 B|get -http2 https://localhost:7334/40g (127.0.0.1:7334 - 0.88 ms - HTTP/2.0)
 Job 5|   1.1 Gbps|       0 bps| 8.00|     1.1 GB|           0 B|get -http3 https://localhost:7335/40g ( - 0.0 ms - HTTP/3.0)
 Total|  41.4 Gbps|       0 bps| 8.00|    41.4 GB|           0 B|
on peut aussi avoir plusieurs flux avec -n:

./nspeed b -s 40g -n 8  h1g,h1p
4:36PM | WARN  | server listening on http://127.0.0.1:7334 job=9
4:36PM | WARN  | server listening on http://127.0.0.1:7333 job=0
running...
all done
    Job| Read speed| Write speed| Time| Bytes read| Bytes written|command
  Job 1|   3.3 Gbps|       0 bps| 8.00|     3.3 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.188 ms - HTTP/1.1)
  Job 2|   3.4 Gbps|       0 bps| 8.00|     3.4 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.213 ms - HTTP/1.1)
  Job 3|   3.3 Gbps|       0 bps| 8.00|     3.3 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.334 ms - HTTP/1.1)
  Job 4|   3.5 Gbps|       0 bps| 8.00|     3.5 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.189 ms - HTTP/1.1)
  Job 5|   3.4 Gbps|       0 bps| 8.00|     3.4 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.160 ms - HTTP/1.1)
  Job 6|   3.3 Gbps|       0 bps| 7.99|     3.3 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.308 ms - HTTP/1.1)
  Job 7|   3.4 Gbps|       0 bps| 8.00|     3.4 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.370 ms - HTTP/1.1)
  Job 8|   3.3 Gbps|       0 bps| 7.99|     3.3 GB|           0 B|get http://localhost:7333/40g (127.0.0.1:7333 - 0.319 ms - HTTP/1.1)
 Job 10|      0 bps|    7.0 Gbps| 8.00|        0 B|        7.0 GB|put http://localhost:7334/ 40.0 GB (127.0.0.1:7334 - 0.123 ms - )
 Job 11|      0 bps|    6.9 Gbps| 8.00|        0 B|        6.9 GB|put http://localhost:7334/ 40.0 GB (127.0.0.1:7334 - 0.326 ms - )
 Job 12|      0 bps|    6.9 Gbps| 8.00|        0 B|        6.9 GB|put http://localhost:7334/ 40.0 GB (127.0.0.1:7334 - 0.196 ms - )
 Job 13|      0 bps|    6.5 Gbps| 8.00|        0 B|        6.5 GB|put http://localhost:7334/ 40.0 GB (127.0.0.1:7334 - 0.294 ms - )
 Job 14|      0 bps|    7.3 Gbps| 8.00|        0 B|        7.3 GB|put http://localhost:7334/ 40.0 GB (127.0.0.1:7334 - 5.294 ms - )
 Job 15|      0 bps|    7.2 Gbps| 8.00|        0 B|        7.2 GB|put http://localhost:7334/ 40.0 GB (127.0.0.1:7334 - 0.349 ms - )
 Job 16|      0 bps|    7.5 Gbps| 8.00|        0 B|        7.5 GB|put http://localhost:7334/ 40.0 GB (127.0.0.1:7334 - 0.698 ms - )
 Job 17|      0 bps|    7.2 Gbps| 8.00|        0 B|        7.2 GB|put http://localhost:7334/ 40.0 GB (127.0.0.1:7334 - 2.857 ms - )
  Total|  26.9 Gbps|   56.5 Gbps| 8.00|    26.9 GB|       56.5 GB|


bugs connus:
 - "failed to serve: quic: Server closed" arrive parfois avec HTTP/3 (qui est toujours en dev).
 - "-6" peut échouer sur certaines machines (résolution de 'localhost' en IPv6 ne fonctionne par correctement).

ouno

  • Abonné Orange Fibre
  • *
  • Messages: 174
  • Rennes (35)
NSpeed: nouveau projet de mesure de débit
« Réponse #188 le: 16 février 2023 à 18:57:23 »
merci @ouno
Merci à toi !

- nouvelle commande 'bench' (raccourci 'b') (voir ./nspeed b -h)
C'est bizarre chez moi le mode bench paraît moins performant que le mode normal sous Windows:

Mode bench: 28.2 Gbps
>nspeed-v0.0.10-29-g4f7e829.exe b -4 h1g
6:25PM | WARN  | server listening on http://127.0.0.1:7333 job=0
running...
all done
   Job| Read speed| Write speed| Time| Bytes read| Bytes written|command
 Job 1|  28.2 Gbps|       0 bps| 5.67|    20.0 GB|           0 B|get http://localhost:7333/20g (127.0.0.1:7333 - 0.0 ms - HTTP/1.1)
 Total|  28.2 Gbps|       0 bps| 5.67|    20.0 GB|           0 B|


Mode manuel en lançant nspeed server et nspeed client séparément: 43.2 Gbps
>nspeed-v0.0.10-29-g4f7e829.exe -verbose server -a 127.0.0.1 -t 120 -s 60G
6:27PM | INFO  | job 0 = HTTP server {Address: "127.0.0.1", port: 7333, IPversion: 0, max_size: 64.4 GB, max_request, max duration: 2m0s, UseTLS: false, H2C: false, maxruns: 0, max life: 0s}
6:27PM | INFO  | waiting on infinite jobs to be ready
6:27PM | WARN  | server listening on http://127.0.0.1:7333 job=0
6:27PM | INFO  | all infinite jobs are ready
running - hit ctrl-C or send a kill signal to end
6:27PM | INFO  | rootHandler: GET - /20g
6:27PM | INFO  | streaming 20g bytes (= 20000000000 bytes) with extention:
6:27PM | INFO  | AverageReadSize=0 AverageWriteSize=262147 ReadBPS="0 bps" ReadCount=0 TotalRead=0 TotalWrite=20000000000 WriteBPS="43.3 Gbps" WriteCount=76293 duration=3.6971852 job=0 url="download 20g to 127.0.0.1:51675 (chunk=262144)"
>nspeed-v0.0.10-29-g4f7e829.exe get http://127.0.0.1:7333/20g
running...
all done
   Job| Read speed| Write speed| Time| Bytes read| Bytes written|command
 Job 0|  43.2 Gbps|       0 bps| 3.70|    20.0 GB|           0 B|get http://127.0.0.1:7333/20g (127.0.0.1:7333 - 0.942 ms - HTTP/1.1)
 Total|  43.2 Gbps|       0 bps| 3.70|    20.0 GB|           0 B|



Autre chose de bizarre (toujours sous Windows), j'ai de meilleures perfs avec nspeed server quand j'utilise un client en Perl:

Mode manuel en lançant nspeed server et un client HTTP en Perl: 51.2 Gbps
6:31PM | INFO  | rootHandler: GET - /20g
6:31PM | INFO  | streaming 20g bytes (= 20000000000 bytes) with extention:
6:31PM | INFO  | AverageReadSize=0 AverageWriteSize=262147 ReadBPS="0 bps" ReadCount=0 TotalRead=0 TotalWrite=20000000000 WriteBPS="51.2 Gbps" WriteCount=76293 duration=3.1257905 job=0 url="download 20g to 127.0.0.1:51723 (chunk=262144)"

C'est sans doute lié aux spécificités de l'interface localhost qui n'est pas très représentative d'une vraie utilisation réseau, mais je n'ai pas d'interface réseau assez rapide pour tester...
« Modifié: 16 février 2023 à 19:38:28 par ouno »

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 297
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #189 le: 16 février 2023 à 19:22:37 »
J'avoue n'avoir pas fait encore trop de tests avec Windows. Effectivement sur ma machine Windows, j'ai les memes écarts.
Sur Linux c'est identique.

Y'a peut-etre une gestion des process/threads différents entre les 2 architectures ou un bizarrerie quelque part dans la synchro de mon code....

Le build de l'exe est fait sur Linux, peut-etre cela joue aussi (encore que ca ne devrait pas).

A creuser en tout cas pour la suite. je note.

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 297
  • Paris (75)
NSpeed: nouveau projet de mesure de débit
« Réponse #190 le: 30 mars 2023 à 17:05:49 »
update du build preview de la v0.0.11: https://dl.nspeed.app/nspeed-client/preview/
(-version = v0.0.10-88-g47e506c  )

tres grosse mise a jour (le code a quasiment doublé) donc sans doute beaucoup de bugs ...

on dispose maintenant de versions pour:
Windows sur x64, arm64 et arm6
Linux sur x64,4 variantes mips, arm64 et arm6
Darwin (macos) x64 (arm a venir).

J'ai testé sur un router ubiquity er-x (mipsle_hardfloat), ca fonctionne.

Les changements: https://github.com/nspeed-app/nspeed/blob/preview/CHANGELOG.md (qui reprend des changement déja introduits par les versions preview précedentes)

Zoom sur les changements principaux:
 - l'arrivé du traitement par lots (batches) grâce au commandes "from" et "then". On peut maintenant enchaîner des commandes ou les lire depuis un fichier ou un site web. Il y a des exemples sur https://dl.nspeed.app/ , par exemple:
./nspeed from https://dl.nspeed.app/bbrcubicCela va télécharger un fichier texte et lire les commandes qu'il y a dedans. Ca marche aussi avec un fichier local.
La syntaxe pour le fichier est la même qu'en ligne de commande (voir les fichiers d'exemple).
Chaque ligne correspondant a un lot de traitement (donc les lignes sont exécutées une après l'autre et pas toute en meme temps).
Autre exemples:
./nspeed from https://dl.nspeed.app/cfpour ceux qui ont une freebox: https://dl.nspeed.app/freebox

 - la sortie des résultats en json avec en option une échantillonnage réglable ("-rate 100ms" par exemple). Utiliser '-' pour sortie sur l'écran directement par exemple:
./nspeed -json - get google.com
Le json inclut la gateway, l'interface et l'ip utilisée pour atteindre la cible.

 - le serveur n'a plus de port par défaut 7333 et utilise maintenant un port libre au hasard. on peut toutefois toujours choisir le port qu'on souhaite avec -p.

NB: la sortie en html bien que indiquée dans le CHANGELOG n'est pas dispo dans cette preview.

a suivre tres vite, la sortie en html donc...


zbug

  • Abonné Free fibre
  • *
  • Messages: 247
  • 72000
NSpeed: nouveau projet de mesure de débit
« Réponse #191 le: 27 février 2024 à 11:29:40 »
Bonjour!

Je me permet de répondre dans ce vieux topic, j'éspère sans causer de soucis  :-X

J'ai tenter de faire tourner nspeed sur un UDM mais j'ai toujours une erreur "exec format error", j'ai tester les 2 versions pour linux disponible sur /latest. Je m'y prends mal ou pas moyen de faire tourner cela sur cet OS?