Glassfish - Java Heap Space

Olá pessoal,
estou com o seguinte problema, instalei em um servidor o glassfish(V2), mas estou frequentemente tendo problemas com Java Heap Space(java.lang.OutOfMemoryError). O servidor possui 4G de ram, e já configurei o tamanho do Heap em até 2G, mesmo assim o problema ocorreu. Após instação do servidor, manti a configuração padrão, alterando apenas a configuração do Heap, é possível que exista algum outro parâmetro que me auxilie na solução deste problema? É necessária alguma configuração adicional no próprio glassfish para resolver isto?

Fred

Esqueci d acrestar ao texto os parâmetros atuais da máquina virtual:

-XX:MaxPermSize=192m(esqueci de mencionar no texto)
-Xms128M -Xmx256M

Modifiquei hj para estes:

-XX:MaxPermSize=512m
-Xms256M -Xmx512M

a) Ele roda um sistema operacional de 32 ou de 64 bits? Se for um de 32 você provavelmente estará desperdiçando 1 GB ou um pouco menos.
b) Em um sistema operacional de 32 bits (Windows ou Linux) a Sun JVM enxerga no máximo 1,7 GB para o parâmetro -Xmx (se não me engano).
b) Será que não há alguma aplicação mal-comportada (por exemplo, alguma que deixe 3 MB de dados na sessão por usuário) que está exigindo tanta memória do Glassfish? Não é para acontecer isso.

Linux - 64 bits.

O q poderia causar este tipo d comportamento alem dos dados na sessão do usuário?

Obrigado

Fred

Eu olhei o monitor d aplicações do Glassfish, e verifiquei q as aplicações costumam manter na sessão somente alguma String, no máximo 3 instâncias d String para cada usuário.

Fred

[quote=fredzep]Linux - 64 bits.

O q poderia causar este tipo d comportamento alem dos dados na sessão do usuário?

Obrigado

Fred[/quote]

Linux - 64 bits -> hum… Será que você está usando a JVM de 32 ou de 64 bits? (Em caso de dúvida, passe a opção -d 64 para o java).

java version "1.6.0_03"
Java™ SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot™ 64-Bit Server VM (build 1.6.0_03-b05, mixed mode)

Eu estou acompanhando o tamanho do Heap, e ele tem ficado entre 200M - 300M, o fato, é que ele tem ficado nessa margem, será q os parâmetros antigos estavam incorretos?

-XX:MaxPermSize=192m -Xms128M -Xmx256M

Deve ser isso então. Os parâmetros mais importantes são, nesta ordem:
-Xmx - quantidade máxima de memória disponível para o processo
-XX:MaxPermSize - quantidade máxima de memória para classes compiladas, strings no pool etc, que são coisas que raramente são submetidas a garbage collection.
-Xms - quantidade mínima de memória disponível para o processo (seria a memória “inicial”).

Uma coisa que se diz no site da Sun é que se seu heap for menor que 1.7 GB você pode usar a JVM de 32 bits, porque ela é mais rápida e gasta um pouco menos de memória.

Ok,
será q o parâmetro XX:MaxPermSize estava incorreto?!
Vou acompanhar andamento do servidor, qualquer resultado, seja positivo ou negativo, posto novamente.

Obrigado

Fred

Já vi lugares que os caras faziam 2 servidores dentro de uma unica instancia de um servidor de aplicação, ai vc poderia ate mesmo fazer duas instancias de 1,5GB, apesar de ser gambiarra, mas …

O problema voltou a acontecer. Procurando novamente uma solução na net, achei esta discussão:

http://forums.java.net/jive/thread.jspa?messageID=257324&tstart=0

Parece que este problema já era conhecido!? Vou atualizar o servidor.

Flw