Resolver o host é consistentemente lento

2

Eu estou tentando buscar uma página programaticamente e leva exatamente 10 segundos para resolver o host, todas as vezes. Em outra máquina, leva exatamente 30 segundos. Ambos Linux.

Meu código está em Java, mas o problema é reproduzível usando wget:

time wget -d  --header "User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/11.0.696.65 Chrome/11.0.696.65 Safari/534.24" http://www.sportsdirect.com

Isso trava por 10 segundos:

Resolving www.sportsdirect.com... 86.17.5.250

Estamos rodando no Linux.

Para confundir as coisas, outros navegadores na mesma máquina buscam a mesma página imediatamente.

Alguma pista?

    
por Joel 11.05.2011 / 18:55

2 respostas

5

Isso ocorre porque o wget e o lynx não estão armazenando em cache os resultados do DNS, e seus navegadores podem até ter o IPv6 desativado.

O DNS para www.sportsdirect.com está quebrado e expira em registros AAAA.

Você pode usar a opção -4 ou --inet4-only para enviar apenas o IPv4.

$ time host -t A www.sportsdirect.com
www.sportsdirect.com is an alias for sd.gwcorp.sports-world.com.
sd.gwcorp.sports-world.com has address 86.17.5.250

real    0m0.009s
user    0m0.000s
sys 0m0.000s

$ time host -t AAAA www.sportsdirect.com
;; connection timed out; no servers could be reached

real    0m14.008s
user    0m0.000s
sys 0m0.000s
    
por 11.05.2011 / 20:15
2

Os navegadores podem estar armazenando em cache os resultados do DNS. Pode valer a pena tentar a consulta diretamente para os servidores DNS configurados para ver se eles são o problema - talvez um deles seja particularmente lento ou baixo. Pegue o endereço IP da linha nameserver em /etc/resolv.conf e execute

dig +trace www.sportsdirect.com 8.8.8.8

(substitua 8.8.8.8 pelo endereço IP do seu servidor DNS)

    
por 11.05.2011 / 19:00