Ferramenta Linux simples para cronometrar uma solicitação http em milissegundos


12

Estou procurando uma ferramenta simples ou comando interno que me permita medir com precisão de milissegundos o tempo necessário para buscar uma página da Web remota a partir de um determinado URL.

Respostas:


12

Isso faz o que você está procurando?

time wget http://example.com

Isso incluirá o tempo necessário para iniciar e executar o wget, que pode ser significativamente maior que o tempo de resposta do servidor.
Paul Lynch

@PaulLynch: fiz um teste simples. Eu executei isso em um terminal: rm foo; touch foo; python -m SimpleHTTPServere em outro: time wget --quiet --output-document=/dev/null localhost:8000/fooe o resultado foi de 2 milissegundos. Corri o mesmo wgetno google.com (que recupera cerca de 10 mil caracteres) e recebi cerca de um quarto de segundo. Então, vamos chamar o tempo de início / execução de cerca de 1% nesse caso. Então, para comparação, fiz time curl file://fooe obtive cerca de 4 milissegundos.
Pausado até novo aviso.

Parece que você está certo, em relação a solicitações de http - para as quais recebo apenas 2ms de desaceleração. Eu estava tentando obter um URL https. Para isso, o wget é cerca de 25ms mais lento para uma solicitação que o Chrome retorna em cerca de 10ms (e não "do cache"). O wget e o Chrome estão sendo executados na mesma máquina que o servidor da web e estão sendo endereçados como "localhost", então eu culpo o wget pela diferença de horário.
Paul Lynch

7

Httping fará isso.

Httping é como 'ping', mas para solicitações http. Dê um URL e ele mostrará quanto tempo leva para conectar, envie uma solicitação e recupere a resposta (apenas os cabeçalhos). Esteja ciente de que a transmissão pela rede também leva tempo! Por isso, mede a latência do servidor web + rede.


3

O Wireshark permitirá examinar uma transferência com muitos detalhes. Você pode ver quanto tempo leva para baixar um único arquivo, como sugeriu Dennis, ou se você abrir o URL em um navegador da web, pode ver quanto tempo leva para carregar todos os arquivos relacionados (imagens, scripts, etc.).


2

Você pode fazer isso com curl de acordo com esta resposta

Crie um novo arquivo curl-format.txte cole:

    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

Em seguida, execute o curl assim:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.