Búsqueda de sitios web

Cómo probar la velocidad de carga del sitio web en la terminal Linux


El tiempo de respuesta de un sitio web puede tener un gran impacto en la experiencia del usuario, y si usted es un desarrollador web, o simplemente un administrador de servidor que es particularmente responsable de organizar las piezas, entonces debe asegurarse de que los usuarios no sientan se siente frustrado al acceder a su sitio, por lo que realmente existe una “necesidad de velocidad”.

Lea también: httpstat: una herramienta de estadísticas de curl para comprobar el rendimiento del sitio web

Esta guía le mostrará cómo probar el tiempo de respuesta de un sitio web desde la línea de comandos de Linux. Aquí le mostraremos cómo verificar el tiempo en segundos, lo que lleva:

  • para realizar la resolución de nombres.
  • para la conexión TCP al servidor.
  • para que comience la transferencia del archivo.
  • para que se transfiera el primer byte.
  • para la operación completa.

Además, para los sitios habilitados para HTTPS, también veremos cómo probar el tiempo, en segundos, que se necesita para completar una redirección y una conexión SSL/apretón de enlace con el servidor. Suena bien, está bien, comencemos.

cURL es una potente herramienta de línea de comandos para transferir datos desde o hacia un servidor, utilizando protocolos como FILE, FTP, FTPS, HTTP, HTTPS y muchos otros. En la mayoría de los casos, se utiliza como descargador de línea de comandos o para comprobar encabezados HTTP. Sin embargo, aquí describiremos una de sus funcionalidades menos conocidas.

cURL tiene una opción útil: -w para imprimir información en stdout después de una operación completa. Tiene algunas variables que podemos utilizar para probar los diferentes tiempos de respuesta enumerados anteriormente, de un sitio web.

Usaremos algunas de las variables relacionadas con el tiempo, que se pueden pasar en un formato determinado como una cadena literal o dentro de un archivo.

Así que abre tu terminal y ejecuta el siguiente comando:

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

Las variables en el formato anterior son:

  • time_namelookup: tiempo, en segundos, que transcurrió desde el inicio hasta que se completó la resolución del nombre.
  • time_connect: tiempo, en segundos, que transcurrió desde el inicio hasta que se completó la conexión TCP al host remoto (o proxy).
  • time_pretransfer: tiempo, en segundos, que transcurrió desde el inicio hasta que la transferencia del archivo estuvo a punto de comenzar.
  • time_starttransfer: tiempo, en segundos, que transcurrió desde el inicio hasta que el primer byte estuvo a punto de transferirse.
  • time_total: tiempo total, en segundos, que duró la operación completa (resolución de milisegundos).

Si el formato es demasiado largo, puedes escribirlo en un archivo y usar la siguiente sintaxis para leerlo:

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

En el comando anterior, la bandera:

  • -s: le dice a curl que funcione en silencio.
  • -w – imprime la información en stdout.
  • -o: se utiliza para redirigir la salida (aquí descartamos la salida redirigiéndola a /dev/null).

Para sitios HTTPS, puede ejecutar el siguiente comando:

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

En el formato anterior, las nuevas variables de tiempo son:

  • time_appconnect: tiempo, en segundos, que transcurrió desde el inicio hasta que se completó la conexión o el protocolo de enlace SSL con el host remoto.
  • time_redirect: tiempo, en segundos, que tomó para todos los pasos de redirección, incluida la búsqueda de nombre, la conexión, la transferencia previa y la transferencia, antes de que se iniciara la transacción final; calcula el tiempo de ejecución completo para múltiples redirecciones.

Puntos importantes a tener en cuenta.

  • Notarás que los valores del tiempo de respuesta siguen cambiando (debido a varios factores) a medida que ejecutas diferentes pruebas, por lo que es recomendable recopilar varios valores y obtener una velocidad promedio.
  • En segundo lugar, a partir de los resultados de los comandos anteriores, puede ver que acceder a un sitio web a través de HTTP es mucho más rápido que a través de HTTPS.

Para obtener más información, consulte la página de manual de cURL:

man curl

Por último, pero no menos importante, si sus resultados no son satisfactorios, entonces debe realizar algunos ajustes en su servidor o dentro del código. Puede considerar utilizar los siguientes tutoriales que explican programas y consejos para hacer que los sitios web se carguen más rápido en Linux:

  1. Instale Nginx con Ngx_Pagespeed (optimización de velocidad) en Debian y Ubuntu
  2. Acelere el rendimiento de Nginx con Ngx_Pagespeed en CentOS 7
  3. Aprenda a acelerar los sitios web utilizando Nginx y el módulo Gzip
  4. Cómo aumentar la velocidad de Internet del servidor Linux con TCP BBR

¡Eso es todo! Ahora ya sabes cómo probar el tiempo de respuesta del sitio web desde la línea de comando. Puede hacer preguntas a través del formulario de comentarios a continuación.