Estamos executando um servidor Apache 2.2 para um site muito grande. Nos últimos meses, alguns usuários relataram tempos de resposta lentos, enquanto outros (incluindo nossos recursos, tanto na rede interna quanto nas redes domésticas) não observaram qualquer degradação no desempenho.
Depois de muita investigação, finalmente encontramos uma instrução "Negar de nenhum" em nossa configuração que estava causando pesquisas reversas de DNS (que estavam expirando) que resolveram a maior parte dos nossos problemas, mas ainda temos alguns clientes que estamos vendo em os logs do Apache (usando %D no formato de log) com tempos de processamento de solicitação de > 300s para imagens, css, javascript e outros conteúdos estáticos.
Verificamos todas as instruções Deny/Allow quanto à recorrência de "none", bem como todas as outras coisas que sabemos que poderiam causar pesquisas reversas de DNS (como usar "REMOTE_HOST" em regras de reescrita, usar %a em vez de %h em nossa configuração de formato de log) e também verificamos que HostnameLookups está definido como "Desativado".
Além disso, também validamos que as pesquisas reversas de DNS para pessoas com esse problema não expiram - portanto, tenho quase certeza de que o DNS não é um problema neste caso.
Fiquei sem ideias. Há algum cenário de configuração do Apache que alguém possa me indicar e que possa estar faltando, que faria com que os tempos de solicitação de conteúdo estático demorassem tanto para determinados usuários?
Agradeço antecipadamente.
Responder1
Quando encontro esse tipo de coisa, primeiro verifico:
- DNS. Use um dump de rede como
tcpdump
ouwireshark
para verificar isso, não apenas observando o arquivo de configuração. Se você tem certeza de que esse não é o problema, - Como são os traceroute/pings para esses usuários? Todos eles têm algo em comum? Já vi uma caixa NAT ruim causar sofrimento sem fim. Também vi o tráfego local para um usuário fazer com que meu site parecesse mais lento do que para outros sem conexões carregadas, mas eles NOTAM que o meu está lento.
- Firewall/túnel. Eles estão fazendo algo bobo como bloquear todos os ICMP? Eles estão em um túnel? Se sim para ambos, então é provável que a descoberta do PMTU expire de alguma forma estranha.
Observe que os tempos de resposta de 300 provavelmente significam que o Apache desistiu deles, não que tenha sido servido. 5 minutos é muito tempo para o servidor esperar, mas é ainda mais insano para um cliente esperar tanto.