Pesquisa de site

Como testar a velocidade de carregamento do site no terminal Linux


O tempo de resposta de um site pode ter um grande impacto na experiência do usuário, e se você é um desenvolvedor web ou simplesmente um administrador de servidor que é particularmente responsável por organizar as peças, então você deve fazer questão que os usuários não sintam frustrado ao acessar seu site – então há realmente “necessidade de velocidade”.

Leia também: httpstat – uma ferramenta de estatísticas Curl para verificar o desempenho do site

Este guia mostrará como testar o tempo de resposta de um site na linha de comando do Linux. Aqui mostraremos como verificar o tempo em segundos, leva:

  • para realizar a resolução de nomes.
  • para conexão TCP ao servidor.
  • para que a transferência do arquivo comece.
  • para o primeiro byte a ser transferido.
  • para a operação completa.

Além disso, para sites habilitados para HTTPS, também veremos como testar o tempo, em segundos, necessário: para que um redirecionamento e a conexão/handshake SSL com o servidor sejam concluídos. Parece bom, ok, vamos começar.

cURL é uma poderosa ferramenta de linha de comando para transferir dados de ou para um servidor, usando protocolos como FILE, FTP, FTPS, HTTP, HTTPS e muitos outros. Na maioria dos casos, ele é usado como downloader de linha de comando ou para verificar cabeçalhos HTTP. No entanto, aqui descreveremos uma de suas funcionalidades menos conhecidas.

cURL tem uma opção útil: -w para imprimir informações no stdout após uma operação concluída. Possui algumas variáveis que podemos utilizar para testar os diferentes tempos de resposta listados acima, de um site.

Usaremos algumas variáveis relacionadas ao tempo, que podem ser passadas em um determinado formato como uma string literal ou dentro de um arquivo.

Então abra seu terminal e execute o comando abaixo:

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

As variáveis no formato acima são:

  • time_namelookup – tempo, em segundos, desde o início até a resolução do nome ser concluída.
  • time_connect – tempo, em segundos, que levou desde o início até que a conexão TCP ao host remoto (ou proxy) fosse concluída.
  • time_pretransfer – tempo, em segundos, que levou desde o início até a transferência do arquivo estar prestes a começar.
  • time_starttransfer – tempo, em segundos, que levou desde o início até o primeiro byte estar prestes a ser transferido.
  • time_total – tempo total, em segundos, que durou a operação completa (resolução em milissegundos).

Se o formato for muito longo, você pode gravá-lo em um arquivo e usar a sintaxe abaixo para lê-lo:

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

No comando acima, o sinalizador:

  • -s – diz ao curl para funcionar silenciosamente.
  • -w – imprime as informações em stdout.
  • -o – usado para redirecionar a saída (aqui descartamos a saída redirecionando-a para /dev/null).

Para sites HTTPS, você pode executar o comando abaixo:

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

No formato acima, as novas variáveis de tempo são:

  • time_appconnect – tempo, em segundos, que levou desde o início até que a conexão/handshake SSL com o host remoto fosse concluída.
  • time_redirect – tempo, em segundos, necessário para todas as etapas de redirecionamento, incluindo pesquisa de nome, conexão, pré-transferência e transferência, antes que a transação final fosse iniciada; ele calcula o tempo total de execução para vários redirecionamentos.

Pontos importantes a serem observados.

  • Você notará que os valores do tempo de resposta vão mudando (devido a diversos fatores) à medida que você executa diferentes testes, portanto é aconselhável coletar vários valores e obter uma velocidade média.
  • Em segundo lugar, pelos resultados dos comandos acima, você pode ver que acessar um site por HTTP é muito mais rápido do que por HTTPS.

Para obter mais informações, consulte a página de manual do cURL:

man curl

Por último, mas não menos importante, se os seus resultados não forem agradáveis, você terá alguns ajustes a fazer no seu servidor ou no código. Você pode considerar usar os seguintes tutoriais que explicam programas e dicas para acelerar o carregamento de sites no Linux:

  1. Instale Nginx com Ngx_Pagespeed (Otimização de velocidade) no Debian e Ubuntu
  2. Acelere o desempenho do Nginx com Ngx_Pagespeed no CentOS 7
  3. Aprenda como acelerar sites usando o módulo Nginx e Gzip
  4. Como aumentar a velocidade da Internet do servidor Linux com TCP BBR

Isso é tudo! Agora você sabe como testar o tempo de resposta do site na linha de comando. Você pode fazer perguntas através do formulário de feedback abaixo.