Outil Linux simple pour chronométrer une requête http en millisecondes

12

Je recherche un outil simple ou une commande intégrée qui me permettra de mesurer avec une précision d'une milliseconde le temps nécessaire pour récupérer une page Web distante à partir d'une URL donnée.

GJ.
la source

Réponses:

12

Est-ce que cela fait ce que vous cherchez?

time wget http://example.com
En pause jusqu'à nouvel ordre.
la source
Cela comprendra le temps nécessaire pour démarrer et exécuter wget, qui peut être considérablement plus long que le temps de réponse du serveur.
Paul Lynch
@PaulLynch: J'ai fait un test simple. Je l'ai exécuté dans un terminal: rm foo; touch foo; python -m SimpleHTTPServeret dans un autre: time wget --quiet --output-document=/dev/null localhost:8000/fooet le résultat a été de 2 millisecondes. J'ai couru la même chose wgetcontre google.com (qui récupère environ 10 000 caractères) et j'ai obtenu environ un quart de seconde. Appelons donc le temps de démarrage / d'exécution d'environ 1% dans ce cas. Ensuite, à titre de comparaison, je l'ai fait time curl file://fooet j'ai obtenu environ 4 millisecondes.
pause jusqu'à nouvel ordre.
Il semble que vous ayez raison, pour les requêtes http - pour lesquelles je ne reçois que 2 ms de ralentissement. J'essayais d'obtenir une URL https. Pour cela, wget est environ 25 ms plus lent pour une demande que Chrome retourne dans environ 10 ms (et non "depuis le cache"). Wget et Chrome s'exécutent tous les deux sur la même machine que le serveur Web et le traitent comme "localhost", donc je blâme wget pour le décalage horaire.
Paul Lynch,
7

Httping fera cela.

Httping est comme «ping» mais pour les requêtes http. Donnez-lui une URL et il vous montrera combien de temps il faut pour se connecter, envoyer une demande et récupérer la réponse (uniquement les en-têtes). Sachez que la transmission sur le réseau prend également du temps! Il mesure donc la latence du serveur Web + réseau.

garyjohn
la source
3

Wireshark vous permettra d'examiner un transfert en détail. Vous pouvez voir combien de temps il faut pour télécharger un seul fichier, comme l'a suggéré Dennis, ou si vous ouvrez l'URL dans un navigateur Web, vous pouvez voir combien de temps il faut pour charger tous les fichiers associés (images, scripts, etc.).

Neil
la source
2

Vous pouvez le faire avec curl selon cette réponse

Créez un nouveau fichier curl-format.txt, et collez-le:

    time_namelookup:  %{time_namelookup}\n
       time_connect:  %{time_connect}\n
    time_appconnect:  %{time_appconnect}\n
   time_pretransfer:  %{time_pretransfer}\n
      time_redirect:  %{time_redirect}\n
 time_starttransfer:  %{time_starttransfer}\n
                    ----------\n
         time_total:  %{time_total}\n

Ensuite, exécutez curl comme ceci:

curl -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"

Harry Wood
la source