iptables -I INPUT -p tcp --dport some_port -j LOG
then tail -f /var/log/messages
Depois, para ver quantos dados foram atingidos por essa regra:
iptables -L -n -v
Ou você poderia rodar o tcpdump e fazer um click nas portas.
Temos um servidor java rodando no linux em uma porta específica que aceita conexões persistentes para milhares e milhares de usuários. Recentemente, nossos clientes não conseguem se conectar a um erro de tempo limite. Suspeitamos que o tráfego está ficando muito alto, mas nosso log de java mostra que não há muitos conectados por segundo.
Nós suspeitamos que poderia ser que muitos estão tentando ao mesmo tempo e eles são basicamente descartados no nível do sistema operacional e, portanto, o programa java nunca tem a chance de aceitar a conexão? Existe algum tipo de log no linux que pode mostrar alguém tentando acertar um socket?
iptables -I INPUT -p tcp --dport some_port -j LOG
then tail -f /var/log/messages
Depois, para ver quantos dados foram atingidos por essa regra:
iptables -L -n -v
Ou você poderia rodar o tcpdump e fazer um click nas portas.
Quando tenho problemas de rede realmente desagradáveis, costumo abrir wireshark . Para mim, não há melhor ferramenta de diagnóstico de rede quando eu tenho que ir para os detalhes básicos. E não se preocupe se você não puder instalá-lo na caixa de origem ou destino; você pode executar tcpdump -w
para gravar dados de pacote em um arquivo no início e / ou no ponto de extremidade, e enviar o arquivo para o wireshark em outra caixa quando desejar.
Seria bom ver precisamente o que seus encadeamentos Java estão obtendo em um nível de soquete. Ao mesmo tempo, você gostaria de correlacionar isso com as informações de rede do sistema operacional. Dê uma olhada no AppFirst. Eles podem fazer esse tipo de coisa.
watch -n1 -d "netstat -an | grep ESTABLISHED | wc -l"
mostra as conexões atualmente estabelecidas.
Compare isso com suas configurações ativas de ulimit
e, claro, com o número máximo de conexões que seu aplicativo java pode manipular.
Tags networking java logging linux socket