Por que minhas pesquisas de DNS são tão longas (300 + ms) ao acessar meu site?

2

Estou executando um servidor Fedora 11 com o Apache 2. Estou tentando otimizar para que as coisas sejam o mais rápidas possível do lado do servidor, e estou percebendo (através do Firebug for Firefox) que ao carregar a página inicial do um dos sites no servidor da Web que, para cada arquivo carregado (HTML, CSS, JavaScript, GIF, PNG, JPG etc.), faz uma pesquisa de DNS. Todos os arquivos que está procurando são locais para o servidor, por isso estou surpreso ao ver que ele faz uma pesquisa de DNS. Além disso, cada uma dessas pesquisas está na faixa de 150 a 450ms, o que é muito alto para o meu gosto.

Eu tentei ajustar o /etc/resolve.conf para usar os servidores DNS públicos do Google. Reiniciei o serviço de rede e toquei de novo na página, mas os números não diminuíram. Voltei para os servidores DNS padrão, pois não vi nenhum ganho.

Alguma idéia sobre o que está causando isso: a) faça a pesquisa do DNS em primeiro lugar eb) demore tanto ao fazer a pesquisa real?

Obrigado antecipadamente.

    
por Travis 17.03.2010 / 19:16

9 respostas

3

Qualquer chamada para um nome DNS requer uma pesquisa, mesmo que seja local, para que essa parte seja esperada. No entanto, deve armazenar em cache o registro enquanto o TTL, portanto, enquanto você estiver usando o nome DNS de todos os seus objetos na página, ele não precisará fazer a pesquisa de DNS várias vezes. Você não está usando nomes exclusivos para cada objeto na página?

Verifique a configuração de TTL da sua zona para confirmar que está definida como algo razoável.

Quanto aos tempos mais longos, pode ser do servidor DNS ou do cliente DNS. Tente testar usando o nslookup para fazer consultas DNS diretamente no servidor DNS para ver se você obtém o mesmo tempo de resposta. Você pode querer percorrer o caminho do nome de domínio do TLD até seu nome de domínio (ou cnames) para ver onde ele fica mais lento.

Uma maneira de excluir (ou in) seu cliente DNS é assistir a um site público como o google.com com o firebug para ver se ele também está lento.

    
por 17.03.2010 / 19:40
2

Eu tive um problema muito parecido e resolvi isso. Foi um problema com a nossa configuração do iptables, que eu entendo que era customizado internamente, então você provavelmente não tem o mesmo problema, mas eu pensei em ligá-lo apenas no caso.

Apenas recebendo um documento de cada vez do novo servidor da Web

"Remover -m limit --limit 1/s da nossa configuração do iptables resolveu o problema apresentado."

    
por 02.06.2010 / 21:12
1

Acabei de solucionar esse problema exato com um de nossos servidores - várias pesquisas de DNS por página exibidas no firebug, uma para cada item que é carregado. Descobrimos que o problema era que, na configuração do Apache, o KeepAlive estava definido como Desativado. Alterar isso para "Ativar" ativou várias solicitações a serem feitas por conexão TCP e impediu as pesquisas de DNS para cada item.

Descobrimos que os tempos de carregamento são agora de meio a um terço do que costumavam ser, e as solicitações de DNS não estão mais sendo exibidas no Firebug.

Mais informações:

link

    
por 17.03.2011 / 08:02
0

Você está registrando o nome do domínio ou fazendo alguma outra pesquisa reversa de DNS para os endereços IP dos usuários?

Também é um problema frequente quando você usa nomes de domínio em vez de endereços IP em algum lugar dos arquivos de configuração do apache.

    
por 17.03.2010 / 19:35
0

quais são os seus tempos de ping para seus servidores dns? Se você tem alta latência para seus servidores dns, então você vai ter pesquisas de DNS de alta latência. Se os seus servidores dns estiverem sobrecarregados, pense em adicionar um servidor de nomes de caching à sua rede, isso irá melhorar o desempenho.

Seu gateway também pode ser configurado para dar prioridade maior ao tráfego de dns, mantendo assim as pesquisas rápido.

Eu nunca usei um servidor dns do Windows antes, mas talvez você possa explorar a rota unix. Servidores de baixa latência e alta simultaneidade são o que unix realmente é bom.

    
por 17.03.2010 / 20:31
0

Verifique os caminhos que você está usando para o seu conteúdo. Você tem caminhos absolutos ou relativos usados e está usando um fqdn para conteúdo?

Exemplo:

<img src="http://mysite.mydomain.com/mypic.png"/>

emvezde:

<imgsrc="mypic.png" />

Dependendo do seu sabor do DNS e de outros fatores, o nome de domínio totalmente qualificado pode acionar uma pesquisa de DNS sempre.

    
por 17.03.2010 / 22:17
0

Isso pode ser causado pelo problema Keep-Alive descrito aqui: link ??

Para alguns contextos, consulte a seção 14.10 aqui: link e também (especialmente a seção 8.1.2) aqui: link

Basicamente, a versão 1.1 do HTTP, por padrão, usa conexões persistentes. Eu tive o mesmo problema que você e verifica-se que o meu servidor web local obriga o navegador para fechar a conexão (problemas "Conexão: fechar" cabeçalho em resposta).

    
por 24.02.2011 / 12:15
0

Isso soa mais como um problema do cliente do que como um problema no servidor. O servidor quase certamente não está fazendo pesquisas de DNS - é o cliente que você está usando para se conectar a ele. Se eu estiver errado nesse ponto, você deve definitivamente esclarecer isso, porque o post diz como se fosse o servidor fazendo a consulta, e isso seria simplesmente assustador . :)

Adivinha: o navegador do cliente está configurado para detecção automática e o arquivo WPAD.dat / PAC usa um método que exige resolução de DNS - algo como IsInNet, DnsResolve ou semelhante.

Isso pode ser combinado com um cache DNS desativado no cliente.

No Windows, o IE costumava ter um cache de DNS embutido, mas acho que isso acabou sendo usado em favor do uso do serviço DNS do Windows (dnscache). Nenhuma ideia sobre outros navegadores ou plataformas. (Você já tentou outros navegadores?)

Então, meu $ 0,02: desative todas as configurações de proxy e veja o que você recebe. Ou ative um proxy explícito e a autodetecção, e o proxy se torna responsável por toda a resolução de nomes. Diversão!

    
por 17.03.2011 / 08:29
-1

Estou vendo o mesmo comportamento no firebug para um site externo que estou analisando. AFAICT, não há nada de errado com o servidor DNS - dig mostra um TTL completamente razoável. Mas, por algum motivo, o FF está levando centenas de ms para fazer a parte de pesquisa de DNS de uma solicitação. Talvez um bug no firebug?

    
por 01.12.2010 / 02:38