Problema de Java VM no OpenVZ

4

Comprei um vps para hospedar minhas necessidades de java. Mas eu não posso executar java nele. Tudo sobre o java está corretamente instalado, mas quando eu tento rodar o java ("java -version" forexample) eu recebo este erro:

Ocorreu um erro durante a inicialização da VM
Não foi possível reservar espaço suficiente para heap de objeto Não foi possível criar a máquina virtual Java.

Eu não acho que esse seja um problema centrado em java, com certeza. Entrei em contato com o vps admin, mas ele diz que está tudo bem, você tem 2gb de ram, expansível até 4gb! Eu fiz um pouco de pesquisa sobre o assunto, aqui está o meu arquivo BEANS (números convertidos em forma humanredable usando um script). A propósito, a memória heap da JVM aloca a contagem em kmemsize ou privvmpages? Quanto ram que essa configuração me permite alocar com jvm para um único processo?

resource                     held              maxheld              barrier                limit              failcnt
kmemsize                  2.25 mb              2.35 mb             13.71 mb             14.10 mb                    0
lockedpages                     0                    0           1024.00 kb           1024.00 kb                    0
privvmpages              20.54 mb             21.33 mb            256.00 mb            272.00 mb                  156
shmpages                  5.00 mb              5.00 mb             84.00 mb             84.00 mb                    0
numproc                        13                   14                  240                  240                    0
physpages                 9.36 mb              9.45 mb                    0            MAX_ULONG                    0
vmguarpages                     0                    0            132.00 mb            MAX_ULONG                    0
oomguarpages              9.36 mb              9.45 mb            MAX_ULONG            MAX_ULONG                    0
numtcpsock                      3                    3                  360                  360                    0
numflock                        3                    3                  188                  206                    0
numpty                          2                    2                   16                   16                    0
numsiginfo                      0                    1                  256                  256                    0
tcpsndbuf                69.17 kb             69.17 kb              1.64 mb              2.58 mb                    0
tcprcvbuf                48.00 kb             48.00 kb              1.64 mb              2.58 mb                    0
othersockbuf              6.80 kb              6.80 kb              1.07 mb              2.00 mb                    0
dgramrcvbuf               0.00 kb              0.00 kb            256.00 kb            256.00 kb                    0
numothersock                    9                   10                  360                  360                    0
dcachesize                0.00 kb              0.00 kb              3.25 mb              3.46 mb                    0
numfile                       704                  746                 9312                 9312                    0
numiptent                      10                   10                  128                  128                    0

Obrigado antecipadamente!

    
por Ginnun 07.08.2010 / 17:51

3 respostas

2

Verifique se seu script traduziu os contadores de beans brutos corretamente. De acordo com isso, você tem apenas 256 MB de RAM, não 4 GB como seu administrador lhe diz.

concentre-se apenas em 2 beans:

  • privvmpages - quantidade máxima de memória que seu contêiner pode alocar (reservar)
  • oomguarpages - quantidade garantida de memória que seu contêiner vai usar. Em caso de situação de memória apertada no host, tudo que estiver usando acima desse valor provavelmente será eliminado.

Java é famoso por alocar gobs de memória e nunca usá-los, contando com o sistema operacional para supercomprometido . Na minha experiência, você precisa de pelo menos um gig de privvmpages para executar a JVM de forma confiável, embora apenas algumas dúzias de megs sejam usadas.

Depois de alguns meses experimentando e tentando conter privvmpages em VEs rodando Java, eu pessoalmente desisti, eu apenas configurei a barreira para o máximo e ajustei as oomguparages apropriadamente e esperei pelo melhor;)

    
por 07.08.2010 / 21:45
1

Eu tive um problema semelhante quando estava hospedado no VPSLink, o Sun / Oracle JVM simplesmente não funciona com o OpenVZ (você pode pesquisar os tópicos antigos nos fóruns do VPSLink para obter mais informações).

No final, a única coisa que funcionou para mim no contêiner OpenVZ era o IBM JDK, que você pode obter em link

No entanto, acho que uma solução melhor seria mudar para um servidor dedicado, onde você pode instalar o JDK desejado e ter muito menos dores de cabeça do que com o OpenVZ.

    
por 27.12.2010 / 12:22
1

Você deve tentar o JRockit VM que é um trabalho perfeito no meu OpenVZ VPS, consome memória muito menos que Sun / Oracle jvm.

    
por 02.03.2013 / 10:46

Tags