Cómo probar la velocidad de carga del sitio web en una 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 juntas, entonces debe dejarlo en un punto que los usuarios no sientan frustrado al acceder a su sitio, por lo que realmente hay "necesidad de velocidad".

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, se necesita:

  • para realizar la resolución de nombres.
  • para la conexión TCP al servidor.
  • para que comience la transferencia de archivos.
  • 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 que se complete una redirección y una conexión/protocolo de enlace SSL con el servidor. Suena bien, está bien, comencemos.

cURL es una poderosa 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 un descargador de línea de comandos o para comprobar los 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 usar 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 dado 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 tomó desde el inicio hasta que se completó la resolución del nombre.
  • time_connect: tiempo, en segundos, que tomó desde el inicio hasta que se completó la conexión TCP al host remoto (o proxy).
  • time_pretransfer: tiempo, en segundos, que tomó desde el inicio hasta que la transferencia de archivos estaba a punto de comenzar.
  • time_starttransfer: tiempo, en segundos, que tomó desde el inicio hasta que el primer byte estuvo a punto de ser transferido.
  • time_total: tiempo total, en segundos, que duró la operación completa (resolución de milisegundos).

Si el formato es demasiado largo, puede 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 trabaje 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 los 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 tomó desde el inicio hasta que se completó la conexión/protocolo de enlace SSL con el host remoto.
  • time_redirect: tiempo, en segundos, que tomó 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 varias redirecciones.

Puntos importantes a tener en cuenta.

  • Notará que los valores del tiempo de respuesta van cambiando (debido a varios factores) a medida que ejecuta 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 tiene que hacer algunos ajustes en su servidor o dentro del código. Puede considerar usar 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 con Nginx y el módulo Gzip
  4. Cómo aumentar la velocidad de Internet del servidor Linux con TCP BBR

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