Gideoni,

At 14:45 29/10/2002 -0300, Gideoni Hudson wrote:
>        Tenho um servidor com 756 Mb de Ram, iniciei o Tomcat com 128 Mb de Ram 
>atrav�s dos parametros -Xms e Xmx do Java. Ap�s executar uma rotina v�rias vezes o 
>Tomcat tomou 260 Mb da Ram e n�o liberou mais, deixei o Tomcat sem servi�o por v�rias 
>horas e ele n�o liberou nenhum byte. Devido a isso tenho algumas d�vidas.
> 
        O tamanho que o tomcat vai ocupar em mem�ria depende das webapps que est�o 
rodando dentro dele.

>    1) � normal o Tomcat pegar mem�ria e n�o devolver para o SO?

        Qualquer aplica��o Java (o tomcat � uma delas) n�o se relaciona diretamente 
com o SO, mas apenas com a JVM e esta, por sua vez, se relaciona com o SO.

        O Tomcat pode (e faz) cache de v�rios dados por motivo de performance. Eu 
analisaria a quest�o olhando quantas e qu�o grandes (do ponto de vista de aloca��o de 
objetos) s�o as webapps. Se forem mais de uma, experimente rodar cada uma 
individualmente e veja como ele se comporta.

        Outro ponto � se este valor de mem�ria cresce at� este pontoe depois se 
estabiliza, independente de houve nehum acesso ou milh�es. Se ele crescer, pode ser 
que alguma aplica��o tenha um "memory leak" . Por exemplo, uma Hashtable onde 
eternamente se incluem elementos e ela nunca "morre".


>    2) As p�ginas e os dados gerados pela rotina s�o destruidos em qual momento ?
        No momento em que o garbage collector coleta os objetos. Simplificando, um 
objeto � considerado "colet�vel" quando n�o h� mais nenhuma refer�ncia para ele.

>    3) O coletor de lixo deveria liberar a mem�ria n�o utilizada para o SO ?

        Sim e n�o. Na verdade a coisa funciona assim:
        A JVM aloca recursos com o SO. O garbage collector n�o interage diretamente 
com o SO, mas apenas com o heap (�rea de aloca��o de objetos) da JVM  Se em algum 
momento, ap�s a coleta de lixo, a JVM decidir liberar recursos para o SO, os recursos 
voltar�o para o SO. Mas a pr�pria JVM pode guardar um buffer de reserva.

        Voc� pode mudar os par�metros de execu��o do Garbage Collector e de 
comportamento do heap. D� uma olhada nos par�metros extras da m�quina virtual que voc� 
est� usando. 


>    4) O Tomcat fica muito lento ou exibe o erro OutOfMemoryError depois que ele 
>ultrapassa o limite definido pelos parametros.

        Ele vai come�ar a dar OutOfMemory. Se vc quiser experimentar ver isso 
acontecer, coloque um par�metro pequeno para o heap, -Xmx32m ou -Xmx32m  por exemplo. 
Mas n�o fa�a isso num sistema em produ��o ;)

Um abra�o

-- 
Mauro Nascimento Rezende
Mondo Technologies 
Fone/Fax: +55 19 3234-5776
http://www.mondo.com.br 


> 
> 
> ________________________________ 
>Gideoni Hudson da Silva Braga
>Analista de Sistemas
>
>Prevcaixa - Caixa de Previd�ncia e Assistencia 
>+55 31 3226-8707 - Ramal:120
><mailto:gideoni.hudson@;prevcaixa.com.br>[EMAIL PROTECTED]



------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a