Tivemos alguns problemas com um dos nossos servidores de imagem na semana passada e precisamos de ajuda. Veja nosso gráfico de monitoramento munin:
Estamos executando o debian squeeze e temos muitas solicitações porque esse é um dos nossos servidores de imagem. Nós não usamos keep-alive (talvez devêssemos, mas isso é outro tópico)
Esses números são contagens de solicitações por minuto de nossos arquivos de registro:
- 17:19: 66516
- 17:20: 64627
- 17:21: 123365
- 17:22: 111207
- 17:23: 58257
- 17:24: 17710
- ... e assim por diante
Como você vê, temos muitas solicitações por minuto, mas como a maioria das solicitações é veiculada em 0 a 1 ms, tudo funciona normalmente.
Agora, como você vê no nosso munin graphic, o munin não conseguiu se conectar a este servidor na porta munin e perguntar os números relevantes. A conexão simplesmente falhou. Como o servidor não está sobrecarregado por qualquer meio (cpu, memória, rede). deve ter algo a ver com nossa pilha de firewall / tcp. No momento em que o plug-in do Munin falhou ao conectar, tínhamos apenas 17MBit de tráfego de entrada e saída em uma conexão de 100MBit.
muitas vezes você tem aqui um limite de 65k de conexões tcp, mas isso normalmente é enganoso, já que se refere ao cabeçalho tcp de 16bit e pertence a 65k por combinação ip / port.
nosso tempo limite de time_wait está definido como
net.ipv4.tcp_fin_timeout = 60
poderíamos diminuir isso para derrubar mais conexões TIME_WAIT antes, mas primeiro eu quero saber o que limita a rede de estar acessível.
estamos usando o iptables com o módulo de estado. Mas nós já levantamos o parâmetro max_conntrack.
net.ipv4.netfilter.ip_conntrack_max = 524288
alguém sabe quais parâmetros do kernel analisar ou como diagnosticar esse problema na próxima semana quando tivermos a próxima espiada?