| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2007 10:56:53
|
DouglasCar
JavaTeenager
Membro desde: 26/07/2004 11:12:04
Mensagens: 186
Offline
|
Temos um servidor com Mandriva Linux 2003, o JBoss versão 3.2.7 e o JDK 1.5.0_05 instalado em uma máquina multiprocessada com 2GB de memória. Nosso run.conf do JBoss está com a seguinte linha de configuração:
JAVA_OPTS="-server -Xms1536m -Xmx1536m -Xmn512m -XX  ermSize=128m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -XX:+UseParallelGC -XX  arallelGCThreads=2"
Acontece que ao subirmos o serviço, e executarmos o comando free -m, verificamos que o servidor está com cerca de 600 MB de memória free, e após poucas horas de utilização já está com cerca de 49 MB de memória free, sendo que após isto mesmo sem ser utilizado, ele não libera memória. Gostaria de ver se alguém saberia o que pode estar ocorrendo ou se existe alguma configuração que pode ser feita ou modificada para resolver este problema.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2007 12:19:58
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
O problema deve estar no banco de dados. Monitore as conexões. Se for isto, não deixe de ler http://plentz.org/2007/04/21/connection-leak-paradise/
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2007 13:45:09
|
DouglasCar
JavaTeenager
Membro desde: 26/07/2004 11:12:04
Mensagens: 186
Offline
|
Valeu pela dica Luca, já estou analisando e testando o que me passastes. Obrigado!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/05/2007 03:27:41
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline
|
A primeira tarefa é ver _quem_ está pegando a memória (use o top ou equivalente).
Caso seja o java, note o seguinte: na configuração de memória, vc. está dizendo que a JVM pode alocar até ~1.5G(-Xmx). Mais: diz para alocar isto logo de cara (-Xms).
Em resumo, vc. ter apenas 49m free não quer dizer muita coisa, especialmente se o número ficar estável.
Outra coisa: o gerenciador de memória do Linux tentará usar a memória disponível como buffer/cache de disco, de forma a agilizar acessos. Veja se isto não está mascarando seus números.
Se estou falando grego, mande para a lista o resultado do free -m
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/05/2007 10:42:45
|
DouglasCar
JavaTeenager
Membro desde: 26/07/2004 11:12:04
Mensagens: 186
Offline
|
Olá psevestre, segue abaixo como pedistes as linhas que aparecem no servidor a partir do comando free -m. Consegui ver agora a pouco no fórum que eu estava verificando a memória na linha errada, pois ao invés de 50 MB, nesta consulta eu tenho 254 MB livre. Se tiverem assim mesmo alguma dica de melhora de performance, agradeço.
[root@linap01 admin]# free -m
total used free shared buffers cached
Mem: 2027 1976 50 0 66 137
-/+ buffers/cache: 1772 254
Swap: 2047 1082 964
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2007 18:48:17
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline
|
DouglasCar wrote:Olá psevestre, segue abaixo como pedistes as linhas que aparecem no servidor a partir do comando free -m.
Olhando assim, de forma estática, não vejo problema. Vc. tem uma JVM que está "autorizada" a pegar 1.5G de memória. Ela pegou. O resto está para o resto do Linux.
A questão é se sua aplicação irá continuar a consumir memória e gerar exceções do tipo OutOfMemory, provável indicador de vazamentos de memória em sua aplicação.
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
|
|