VPS: Como lidar com servidores sem swap?

2

Implantei recentemente um aplicativo java em um VPS, mas ele continua travando porque a JVM fica sem memória depois de um tempo. Eu nunca tive esse problema em outros servidores de 'baixa memória' graças ao swap, mas neste VPS, é diferente: não há troca e apenas 50% dos 512megs de ram "podem ser usados" (eles dizem que 256mbs são garantidos) . Existe alguma maneira de limitar o consumo de memória? Eu tentei usar as variáveis xms, mas não ajudou muito. Eu também tentei colocar swap em um arquivo, mas não é permitido, aparentemente.

Obrigado antecipadamente

    
por mnml 02.02.2011 / 12:28

3 respostas

4

Sim, você pode limitar o consumo de memória java. Veja por exemplo aqui: link

Mas 256M é uma quantidade muito pequena para o mundo java. Eu sugiro que você obtenha um melhor vps.

    
por 02.02.2011 / 12:40
2

Você pode limitar a memória disponível para uma VM nos parâmetros iniciais da VM. Como disse, se um aplicativo precisa de 1 GB, ele precisa de 1 GB. Limitar a VM não ajudará (o aplicativo pode travar com exceções de falta de memória).

512mb é MUITO pequeno atualmente. 256Mb é ainda menor. Dependendo do aplicativo, a melhor solução seria "obter um servidor capaz de executar o aplicativo".

    
por 02.02.2011 / 12:36
1

Parece que você está usando um VPS baseado em OpenVZ ou Virtuozzo. Se assim for, provavelmente vale a pena adicionar "ulimit -s 1024" ao / etc / profile e aos scripts de inicialização do /etc/init.d/*. A contabilização de memória OpenVZ e Virtuozzo conta a memória copy-on-write reservada para uma pilha como realmente usada, e o valor padrão para a memória da pilha reservada é bastante alto (8 a 10Mb dependendo da sua distribuição).

    
por 02.02.2011 / 12:59