Recherche de site Web

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 ensemble, vous devez alors faire en sorte que les utilisateurs ne se sentent pas concernés. frustré lors de l'accès à votre site – il y a donc vraiment un « besoin de vitesse ».

Lire aussi : httpstat – Un outil de statistiques Curl pour vérifier les performances d'un 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 l'heure en secondes, il faut :

  • pour effectuer la résolution de nom.
  • pour la connexion TCP au serveur.
  • pour que le transfert de fichiers commence.
  • pour le premier octet à transférer.
  • pour l'opération complète.

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/prise de contact SSL avec le serveur soient terminées. Ça a l’air bien, d’accord, commençons.

cURL est un puissant outil de ligne de commande permettant de 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 de ligne de commande ou pour vérifier les en-têtes HTTP. Cependant, nous décrirons ici une de ses fonctionnalités les moins connues.

cURL a une option utile : -w pour imprimer des informations sur la sortie standard après une opération terminée. Il comporte certaines variables que nous pouvons utiliser pour tester les différents temps de réponse répertoriés ci-dessus d'un site Web.

Nous utiliserons certaines variables liées au temps, qui peuvent être transmises dans un format donné sous forme de chaîne littérale ou dans un fichier.

Alors ouvrez 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 :

  • time_namelookup – temps, en secondes, qu'il a fallu entre le début et la fin de la résolution du nom.
  • time_connect – temps, en secondes, qu'il a fallu depuis le début jusqu'à ce que la connexion TCP à l'hôte distant (ou au proxy) soit terminée.
  • time_pretransfer : temps, en secondes, qu'il a fallu entre le début et le moment où le transfert de fichiers était sur le point de commencer.
  • time_starttransfer – temps, en secondes, qu'il a fallu entre le début et le moment où le premier octet était sur le point d'être transféré.
  • time_total : durée totale, en secondes, qu'a duré 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, le drapeau :

  • -s – indique à curl de fonctionner en silence.
  • -w – imprime les informations sur la sortie standard.
  • -o – utilisé pour rediriger la sortie (ici, nous supprimons 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 temporelles sont :

  • time_appconnect – temps, en secondes, qu'il a fallu depuis le début jusqu'à ce que la connexion/prise de contact SSL avec l'hôte distant soit terminée.
  • time_redirect – temps, en secondes, nécessaire à toutes les étapes de redirection, y compris la recherche de nom, la connexion, le pré-transfert et le transfert, avant le début de la transaction finale ; il calcule le temps d'exécution complet pour plusieurs redirections.

Points importants à noter.

  • Vous remarquerez que les valeurs du temps de réponse continuent 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, consultez la page de manuel cURL :

man curl

Enfin et surtout, si vos résultats ne sont pas satisfaisants, alors vous avez quelques ajustements à faire sur votre serveur ou dans le code. Vous pouvez envisager d'utiliser les didacticiels suivants qui expliquent les programmes et les astuces pour accélérer le chargement des sites Web sous Linux :

  1. Installez Nginx avec Ngx_Pagespeed (optimisation de la vitesse) sur Debian et Ubuntu
  2. Accélérez les performances de Nginx avec Ngx_Pagespeed sur CentOS 7
  3. Apprenez à accélérer les sites Web à l'aide de Nginx et du module Gzip
  4. Comment augmenter la vitesse Internet du serveur Linux avec TCP BBR

C'est tout! Vous savez maintenant comment tester le temps de réponse d'un site Web à partir de la ligne de commande. Vous pouvez poser des questions via le formulaire de commentaires ci-dessous.