Herramienta simple de Linux para cronometrar una solicitud http en milisegundos

12

Estoy buscando una herramienta simple o un comando integrado que me permita medir con una precisión de milisegundos el tiempo que lleva recuperar una página web remota desde una URL determinada.

GJ
fuente

Respuestas:

12

¿Esto hace lo que estás buscando?

time wget http://example.com
Pausado hasta nuevo aviso.
fuente
Esto incluirá el tiempo que lleva iniciar y ejecutar wget, que puede ser significativamente más largo que el tiempo de respuesta del servidor.
Paul Lynch
@PaulLynch: hice una prueba simple. Ejecuté esto en una terminal: rm foo; touch foo; python -m SimpleHTTPServery en otra: time wget --quiet --output-document=/dev/null localhost:8000/fooy el resultado fue de 2 milisegundos. Ejecuté lo mismo wgetcontra google.com (que recupera unos 10K caracteres) y obtuve aproximadamente un cuarto de segundo. Entonces, llamemos al tiempo de inicio / ejecución aproximadamente 1% en ese caso. Luego, para comparar, lo hice time curl file://fooy obtuve unos 4 milisegundos.
Pausado hasta nuevo aviso.
Parece que tiene razón, para solicitudes http, para las cuales solo obtengo aproximadamente 2 ms de desaceleración. Estaba tratando de obtener una URL https. Para eso, wget es aproximadamente 25 ms más lento para una solicitud que Chrome devuelve en aproximadamente 10 ms (y no "desde el caché"). Tanto wget como Chrome se ejecutan en la misma máquina que el servidor web, y lo dirigen como "localhost", así que culpo a wget por la diferencia horaria.
Paul Lynch
7

Httping hará eso.

Httping es como 'ping' pero para solicitudes http. Déle una url y le mostrará cuánto tiempo lleva conectarse, enviar una solicitud y recuperar la respuesta (solo los encabezados). ¡Tenga en cuenta que la transmisión a través de la red también lleva tiempo! Por lo tanto, mide la latencia de la red del servidor web.

garyjohn
fuente
3

Wireshark le permitirá examinar una transferencia con mucho detalle. Puede ver cuánto tiempo lleva descargar un solo archivo, como sugirió Dennis, o si abre la URL en un navegador web, puede ver cuánto tiempo lleva cargar todos los archivos relacionados (imágenes, scripts, etc.).

Neil
fuente
2

Puedes hacerlo con curl según esta respuesta

Cree un nuevo archivo curl-format.txt, y péguelo en:

    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

Luego ejecuta curl así:

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

Harry Wood
fuente