De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Cesar Brod
Data de Publicação: 28 de março de 2013
O ping
é um utilitário pequeno e útil para testar a existência de uma
conexão entre máquinas, reportando dados sobre o tempo de ida e volta
dos pacotes de dados e indicando se os mesmos estão se perdendo pelo
caminho. Abaixo, um exemplo de ping
entre a minha máquina e o servidor
do Dicas-L:
$ ping www.dicas-l.com.br
PING www.dicas-l.com.br (173.212.215.234) 56(84) bytes of data.
64 bytes from www.dicas-l.com.br (173.212.215.234): icmp_req=1 ttl=42 time=186 ms
64 bytes from www.dicas-l.com.br (173.212.215.234): icmp_req=2 ttl=42 time=192 ms
64 bytes from www.dicas-l.com.br (173.212.215.234): icmp_req=3 ttl=42 time=186 ms
64 bytes from www.dicas-l.com.br (173.212.215.234): icmp_req=4 ttl=42 time=186 ms
64 bytes from www.dicas-l.com.br (173.212.215.234): icmp_req=5 ttl=42 time=273 ms
64 bytes from www.dicas-l.com.br (173.212.215.234): icmp_req=8 ttl=42 time=193 ms
64 bytes from www.dicas-l.com.br (173.212.215.234): icmp_req=9 ttl=42 time=193 ms
^C
—- www.dicas-l.com.br ping statistics ---
9 packets transmitted, 7 received, 22% packet loss, time 8021ms
rtt min/avg/max/mdev = 186.261/201.754/273.533/29.463 ms
O comando é terminado pressionando-se, simultaneamente, as teclas Ctrl
e C
,
quando ele, então, gera as estatísticas finais. Notem que nove pacotes foram
transmitidos, mas apenas sete chegaram a seu destino (perda de 22%). O tempo
de viagem de cada pacote oscilou entre 186 e 273 milissegundos. Você tem
mais informações sobre o comando ping
em sua página de manual:
man ping
O ping
está presente (até onde eu sei!) em todos os sistemas operacionais
derivados do Unix (como o Linux, *BSD, MacOS, Android) e até no Windows. O
httping precisa ser instalado. Para quem é usuário de distribuições
baseadas no Debian (Linux Mint, Ubuntu e outras), o processo é simples:
sudo apt-get install httping
No FreeBSD também é fácil:
$ cd /usr/ports/net/httping $ make install
No Android, é só procurar pelo aplicativo no Google Play. Os usuários de outros sistemas devem acessar a página do projeto e verificar como fazer a sua instalação. Aos usuários de Windows é bem simples, é só trocar de sistema operacional primeiro.
$ httping http://www.dicas-l.com.br
PING www.dicas-l.com.br:80 (http://www.dicas-l.com.br):
connected to www.dicas-l.com.br:80, seq=0 time=549.09 ms
connected to www.dicas-l.com.br:80, seq=1 time=547.69 ms
connected to www.dicas-l.com.br:80, seq=2 time=614.83 ms
connected to www.dicas-l.com.br:80, seq=3 time=560.66 ms
connected to www.dicas-l.com.br:80, seq=4 time=616.99 ms
^C--- http://www.dicas-l.com.br ping statistics ---
5 connects, 5 ok, 0.00% failed
round-trip min/avg/max = 547.7/577.9/617.0 ms
Para terminar e obter as estatísticas, como no ping
, é só clicar Ctrl
e C
simultaneamente. Veja que, no caso do servidor do Dicas-L, o tempo de
viagem de um pacote http oscilou entre 547 e 617 milissegundos.
Mas isso serve para o quê mesmo? No meu caso, basicamente para a depuração
de servidores http. Ao contrário do ping
, que trata de uma resposta pura
e simples de rede, para que um pedido http seja processado, o servidor http
tem que fazer o seu trabalho. Como a resposta do comando é muito simples, por
exemplo, eu posso fazer pequenas modificações em arquivos de configuração como
o apache2.conf
e ver como isso afeta, imediatamente, os tempos de resposta
de meu servidor web. Aos que servem também aplicações na
melhor linguagem do mundo, alterações no arquivo php.ini
também podem afetar os resultados do httping
e, por consequência,
o desempenho do servidor web.
Outro uso é comparar os resultados obtidos em serviços de hospedagem web (claro, isso serve para ter algumas métricas, mas não é totalmente conclusivo por si só). Mas peguemos um exemplo bem controlado. Tenho o domínio da BrodTec hospedado através de um serviço da Locaweb e estou considerando contratar um novo serviço, em ambiente de Cloud, da mesma empresa. Como já tenho o serviço de Cloud contratado para outros servidores que administro, usando exatamente a mesma estrutura do site de minha empresa (Linux, apache, php, drupal), posso fazer o teste:
$ httping http://brodtec.com
PING brodtec.com:80 (http://brodtec.com):
connected to brodtec.com:80, seq=0 time=2969.01 ms
connected to brodtec.com:80, seq=1 time=4074.59 ms
connected to brodtec.com:80, seq=2 time=3251.73 ms
connected to brodtec.com:80, seq=3 time=2623.24 ms
connected to brodtec.com:80, seq=4 time=3042.32 ms
connected to brodtec.com:80, seq=5 time=2296.77 ms
^C--- http://brodtec.com ping statistics ---
6 connects, 6 ok, 0.00% failed
round-trip min/avg/max = 2296.8/3042.9/4074.6 ms
A primeira coisa que já noto, é que o tempo de resposta de meu servidor já é bem maior do que o do Dicas-L. Isto não me assusta tanto, já que o Dicas-L é um portal de muito acesso e, portanto, tem que estar mesmo em um servidor melhor e mais rápido. Mas agora, fazendo o teste em um domínio que tenho no Cloud, estrutura que penso em contratar para o portal de nossa empresa:
$ httping http://mundolinux.com.br
PING mundolinux.com.br:80 (http://mundolinux.com.br):
connected to mundolinux.com.br:80, seq=0 time=791.65 ms
connected to mundolinux.com.br:80, seq=1 time=769.36 ms
connected to mundolinux.com.br:80, seq=2 time=1168.69 ms
connected to mundolinux.com.br:80, seq=3 time=977.80 ms
connected to mundolinux.com.br:80, seq=4 time=1076.32 ms
connected to mundolinux.com.br:80, seq=5 time=979.75 ms
^C--- http://mundolinux.com.br ping statistics ---
6 connects, 6 ok, 0.00% failed
round-trip min/avg/max = 769.4/960.6/1168.7 ms
O tempo médio de acesso caiu em um terço, comparado com a estrutura de hospedagem de nosso site atual.
Outra coisa que gosto de fazer é eliminar qualquer interferência de rede
quando estou testando o desempenho (e fazendo ajustes para a sua melhora)
de meus servidores web. Para isso, rodo o httping
na própria máquina
onde tenho meu servidor web e uso httping localhost
. Também costumo
editar o arquivo /etc/hosts
para que não seja feita uma busca DNS para os
servidores web hospedados na própria máquina.
O comando man httping
, assim como a
página do projeto lhe darão mais
informações de uso do mesmo.
O httping
é um dos comandos que Cesar Brod leva em sua manga quando ministra oficinas de desempenho em servidores web com o Drupal.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários