O servidor Linux não responde às conexões TCP após algum tempo em execução. Como analisar?

1

Meu servidor Ubuntu 11.04 na internet tem um comportamento estranho desde alguns dias. Ele funciona perfeitamente bem com alguns aplicativos da Web Java. Então, de repente, não aceita mais conexões. Quando eu tento ssh ou para http-connect meu servidor não recebo nenhuma resposta, até que eu tenha tempo limite. Mas o ping funciona perfeitamente. O nmap também funciona:

Starting Nmap 5.21 ( http://nmap.org ) at 2011-08-29 10:52 CEST
Nmap scan report for ...
Host is up (0.020s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
53/tcp   open  domain
443/tcp  open  https
3000/tcp open  ppp
3128/tcp open  squid-http

Após a reinicialização, tudo funciona novamente por algumas horas.

O que isso poderia ser? Ou como analisar esse problema?

    
por Witek 29.08.2011 / 11:02

3 respostas

3

Isso realmente parece que você está ficando sem memória, sem troca no sistema. Se um sistema linux ficar sem memória, ele não poderá mais aceitar conexões TCP porque a conexão precisa ser estabelecida. O ICMP pode não precisar de nada, pois não há estado para manter.

Verifique suas configurações de memória em todos os lugares e certifique-se de não alocar mais de 70% da memória total para a JVM (opções -Xms e -Xmx).

Ativar uma troca se ainda não tiver sido feito, você pode criar um arquivo de troca básico em algum lugar no disco:

dd if=/dev/zero of=/mnt/swapfile bs=1M count=10240
mkswap /mnt/swapfile
swapon /mnt/swapfile

Se depois disso seu sistema travar novamente, é hora de algum monitoramento de baixo nível.

    
por 29.08.2011 / 13:06
0

-Xmx (tamanho máximo do heap) não é toda a memória alocada para o jvm, outra quantidade considerável é alocada para PermSize (-XX: MaxPermSize) e um pouco mais para uso interno. Use top ou ps para descobrir quanto seu jvm está usando e deixe espaço para buffers os + (1Gb mais 150k por conexão simultânea é um bom começo).

    
por 29.08.2011 / 13:51
-1

Você deve olhar para o seu serviço Fail2ban, eu enfrento o mesmo problema com uma caixa linux hospedada, e isso veio do arquivo de configuração pré-instalado do fail2ban.

Ou, pode ser um DoS como dito mailq.

    
por 29.08.2011 / 12:18