Comment tester la vitesse de chargement d’un site Web dans un terminal Linux
Le temps de réponse d’un site Web peut avoir un impact important sur l’expérience utilisateur, et si vous êtes un développeur Web, ou simplement un administrateur de serveur qui est particulièrement responsable de l’organisation des éléments, vous devez faire en sorte que les utilisateurs ne se sentent pas frustrés lorsqu’ils accèdent à votre site - il y a donc vraiment un « besoin de vitesse ».
Lire aussi : httpstat – Un outil de statistiques de boucles pour vérifier les performances du site Web
Ce guide vous montrera comment tester le temps de réponse d’un site Web à partir de la ligne de commande Linux. Ici, nous allons montrer comment vérifier le temps en secondes, cela prend :
- pour effectuer la résolution de noms.
- pour la connexion TCP au serveur.
- pour que le transfert de fichiers commence.
- pour le premier octet à transférer.
- pour le fonctionnement complet.
De plus, pour les sites compatibles HTTPS, nous verrons également comment tester le temps, en secondes, nécessaire pour qu’une redirection et une connexion SSL/poignée de main vers le serveur soient effectuées. Ça sonne bien, d’accord, commençons.
cURL est un puissant outil en ligne de commande pour transférer des données depuis ou vers un serveur, en utilisant des protocoles tels que FILE, FTP, FTPS, HTTP, HTTPS et bien d’autres. Dans la plupart des cas, il est utilisé comme téléchargeur en ligne de commande ou pour vérifier les en-têtes HTTP. Cependant, nous décrirons ici l’une de ses fonctionnalités les moins connues.
cURL a une option utile : -w pour imprimer des informations sur stdout après une opération terminée. Il comporte quelques variables que nous pouvons utiliser pour tester les différents temps de réponse énumérés ci-dessus, d’un site web.
Nous utiliserons certaines des variables liées au temps, qui peuvent être passées dans un format donné sous forme de chaîne littérale ou à l’intérieur d’un fichier.
Ouvrez donc votre terminal et exécutez la commande ci-dessous :
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com
Les variables au format ci-dessus sont les suivantes :
- time_namelookup – le temps, en secondes, a pris entre le début et la fin de la résolution du nom.
- time_connect – temps, en secondes, il a fallu entre le début et la fin de la connexion TCP à l’hôte distant (ou proxy).
- time_pretransfer temps, en secondes, il a fallu entre le début et le transfert de fichiers sur le point de commencer.
- time_starttransfer temps, en secondes, il a fallu entre le début et le premier octet sur le point d’être transféré.
- time_total : durée totale, en secondes, de l’opération complète (résolution en millisecondes).
Si le format est trop long, vous pouvez l’écrire dans un fichier et utiliser la syntaxe ci-dessous pour le lire :
$ curl -s -w "@format.txt" -o /dev/null http://www.google.com
Dans la commande ci-dessus, l’indicateur :
-s– indique à Curl de travailler en silence.-w– Imprime les informations sur stdout.-o– utilisé pour rediriger la sortie (ici, nous éliminons la sortie en la redirigeant vers /dev/null).
Pour les sites HTTPS, vous pouvez exécuter la commande ci-dessous :
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com
Dans le format ci-dessus, les nouvelles variables de temps sont les suivantes :
- time_appconnect – temps, en secondes, il a fallu entre le début et la fin de la connexion SSL/liaison avec l’hôte distant.
- time_redirect – temps, en secondes, qu’il a fallu pour toutes les étapes de redirection, y compris la recherche de nom, la connexion, le prétransfert et le transfert avant que la transaction finale ne soit commencée ; Il calcule le temps d’exécution complet pour plusieurs redirections.
Points importants à noter.
- Vous remarquerez que les valeurs du temps de réponse ne cessent de changer (en raison de plusieurs facteurs) au fur et à mesure que vous exécutez différents tests, il est donc conseillé de collecter plusieurs valeurs et d’obtenir une vitesse moyenne.
- Deuxièmement, d’après les résultats des commandes ci-dessus, vous pouvez voir que l’accès à un site Web via HTTP est beaucoup plus rapide que via HTTPS.
Pour plus d’informations, reportez-vous à la page de manuel cURL :
$ man curl
Enfin, si vos résultats ne sont pas satisfaisants, vous avez quelques ajustements à faire sur votre serveur ou dans le code. Vous pouvez envisager d’utiliser les tutoriels suivants qui expliquent les programmes et les astuces pour accélérer le chargement des sites Web sous Linux :
- Installer Nginx avec Ngx_Pagespeed (Speed Optimization) sur Debian et Ubuntu
- Accélérez les performances de Nginx avec Ngx_Pagespeed sur CentOS 7
- Apprenez à accélérer les sites Web à l’aide de Nginx et du module Gzip
- Comment augmenter la vitesse Internet d’un serveur Linux avec TCP BBR
C’est tout! Vous savez maintenant comment tester le temps de réponse du site Web à partir de la ligne de commande. Vous pouvez poser des questions via le formulaire de commentaires ci-dessous.

