Tomcat + Alocação contínua de memória

4 respostas
F

Boa tarde pessoal,
Eu tenho uma aplicação rodando com JSF 1.2 + Hibernate + FireBird + Tomcat 6.0.16 configurado para usar 1 GB de memória.
A aplicação está rodando normal e com desenpenho bom, porém utilizando a ferramenta Lambda Probe para verificar o consumo de
recursos do computador obtive algumas informações que eu achei um pouco estranho:

Free: 38,99 MB
Total: 118,89 MB
Max: 1.016,12 MB
Current memory usage is 7,9%

O estranho é que na hora que eu acessei o Lambda Probe (que esta rodando no mesmo servidor que a aplicação) para extrair essas informações, só tinha eu conectado, mais ninguém. Ainda, utilizando o Lambda Probe, puder verificar que não havia sessões da minha aplicação abertas no servidor, era somente eu conectado utilizando o probe.
Eu estava achando que o Tomcat estava alocando recursos de acordo com o necessário para responder as necessidades da aplicação. Para tirar essa dúvida, eu conectei então na aplicação e realizei alguns procedimentos de inclusão, alteração e exclusão e utilizei o Lambda Probe para saber qual o “peso” dessa sessão no servidor, e ele me apresentou que a sessão da minha aplicação que estava aberta consumia 18kb de memória, dai eu comecei a achar estranho pra caramba, porque para atingir quase 120 mega de memória só com a aplicação seria necessário um número de acesso muito alto e isso com certeza não ocorreu, porque a aplicação é de pequeno porte, para no máximo 7 usuários.
Na configuração do JSF, todos os backingbeans estão com o escopo de request utilizando o tomahawk savestate, e o parâmetro
STATE_SAVING_METHOD está configurado propositalmente para server, dessa forma ficou um pouco mais rapida a resposta,
porque o estado fica serializado no servidor ao invéz do cliente. Até pensei que pudesse ser esse parâmetro que estivesse causando esse consumo, mas pelo que percebi não deve ser, porque a sessão da aplicação está consumindo 18kb só.
Eu ainda não obtive um Java Out Of Memory, mas se aplicação permanecer dessa forma acredito que isso venha a acontecer mesmo com 1 GB!

O que vocês acham que poderia estar acontecendo de errado para o Tomcat estar utilizando tanta memória sem ter aplicações com sessões abertas no servidor?

Qualquer sugestão é muito bem vinda!

Obrigado a todos

4 Respostas

kdoigor

vc usou o parametro Xmx-1024m ?

alexandremlima

Veja se encontra algo de útil nessa mensagem.

F

Alexandre valeu pela dica,
Eu não estou usando o cache de segundo nível do hibernate, porém, as configurações do C3P0 estão default. Acredito que isso possa ser a razão dos problemas! Agora vou dar um boa estudada nos links que você passou, depois posto aqui como ficou!

Muito obrigado !

F

kdoigor, usei sim, mas pelo Tomcat Monitor, na guia Java e nos campos Initial memory pool e Maximum memory pool !

Criado 17 de janeiro de 2009
Ultima resposta 19 de jan. de 2009
Respostas 4
Participantes 3