Votre site est en HTTP/2 et vous souhaitez tester rapidement sa robustesse et son élasticité afin de valider sa capacité à accueillir un nombre important de visiteurs ?

Je vous recommande d'installer la commande Linux h2load disponible sur Ubuntu que vous pouvez aussi retrouver sous WSL2.

H2load est un outil de benchmarking HTTP/2 and HTTP/1.1. Il supporte le SSL/TLS et le texte en clair.

Comment installer H2load ?

H2load est disponible sur les distributions Ubuntu au travers du paquet "nghttp2-client". Vous pouvez aussi retrouver son code source sur GitHub.

$ sudo apt-get install nghttp2-client

Comment utiliser H2load ?

Une fois l'utilitaire installĂ©, il vous suffit d'exĂ©cuter la commande suivante pour simuler 100 clients qui produiront au total 10000 requĂȘtes HTTP.

h2load -n10000 -c100 -t2 https://monsite.com

Vous pouvez aussi lancer un test sur une durée de 60 secondes avec un démarrage progressif sur 10 secondes :

h2load -c100 -t2 https://monsite.com --duration=60 --warm-up-time=10

Les paramĂštres les plus importants de l'outil sont les suivants :

Option Description Valeur par défaut
-n Le nombre total de requĂȘtes 1
-c Le nombre total de clients concurrents 1
-m Le nombre de stream ouverts par clients 1
-t Le nombre de threads qui seront créés et sur lesquels les clients seront distribués 1
--duration La durée du test (incompatible avec l'option n)
--warm-up-time La durée de démarrage progressif du script

Une fois le test terminé, H2load vous produira un résultat de la forme suivante :

finished in 7.08s, 141164.80 req/s, 555.33MB/s
requests: 1000000 total, 1000000 started, 1000000 done, 1000000 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 1000000 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 4125025824 bytes total, 11023424 bytes headers (space savings 93.07%), 4096000000 bytes data
                     min         max         mean         sd        +/- sd
time for request:    15.31ms    146.85ms     69.78ms      9.26ms    92.43%
time for connect:     1.08ms     25.04ms     10.71ms      9.80ms    64.00%
time to 1st byte:    25.36ms    184.96ms     79.11ms     53.97ms    78.00%
req/s (client)  :    1412.04     1447.84     1426.52       10.57    63.00%

Comment analyser les résultats ?

Le nombre de requĂȘtes en succĂšs vous permettra de valider que votre serveur Web n'a pas retournĂ© d'erreur. Si vous observez des requĂȘtes en "failed", "errored" ou "timeout", cela signifie que vous avez atteint la capacitĂ© maximale du serveur distant.

La performance du serveur peut ĂȘtre mesurĂ©e au travers du nombre de requĂȘtes par secondes reçues par l'outil. Plus le nombre est important, plus cela signifie que votre serveur est capable d'encaisser un nombre d'appels simultanĂ©s important.

Enfin, si vous souhaitez optimiser les temps de réponse de votre site Internet et sa robustesse, je vous recommande d'abandonner Apache et d'utiliser le micro-cache Nginx.

Bons tests et soyez prudent dans l'utilisation de cet outil, il peut rapidement mettre en défaut un site Internet de production.

Vous ĂȘtes correctement abonnĂ© Ă  Geeek
Bienvenue ! Vous ĂȘtes correctement connectĂ©.
Super ! Vous ĂȘtes correctement inscrit.
Votre lien a expiré
VĂ©rifiez vos emails et utiliser le lien magic pour vous connecter