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/20g
les 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).