Bibliotecas no Servidor ou na Aplicação?

Olá pessoal, tudo bem?

Desenvolvo um software que ofereço como serviço, então, num mesmo servidor eu tenho várias instâncias do mesmo projeto.

O que ocorre é que eu sempre tenho problemas de falta de memória nele e aí surgiu uma dúvida. Se eu colocar as bibliotecas no servidor ao invés da aplicação, o consumo de memória vai cair?

Valeu!

Pq vc acha que cairia? Creio que é o código do seu projeto que está com problemas…

Porque como os projetos são iguais, evitaria de carregar mais de um mesmo jar na memoria.
Na verdade, estou perguntando isso porque eu não sei como o Tomcat encara isso, se neste caso ele vê que as bibliotecas são idênticas e então carrega uma instância somente!

Porque como os projetos são iguais, evitaria de carregar mais de um mesmo jar na memoria.
Na verdade, estou perguntando isso porque eu não sei como o Tomcat encara isso, se neste caso ele vê que as bibliotecas são idênticas e então carrega uma instância somente![/quote]Quando a memória do servidor estourou, você fez um dump? Analisou quais objetos estavam em memória na hora? Olhou no log para ver se o problema está em alguma consulta que retorna muitos dados?

Foi na hora de gerar um relatório pelo Jasper Reports!

O erro não estava ocorrendo, é que precisei subir mais uma cópia do meu sistema no final de semana, e então hoje o erro aconteceu!

Não estou usando muitos frameworks justamente para não consumir muita memória no servidor, e mesmo assim tá dando permgem space.

[quote=VagnerMG]Foi na hora de gerar um relatório pelo Jasper Reports!

O erro não estava ocorrendo, é que precisei subir mais uma cópia do meu sistema no final de semana, e então hoje o erro aconteceu!

Não estou usando muitos frameworks justamente para não consumir muita memória no servidor, e mesmo assim tá dando permgem space.

[/quote]Vc viu a quantidade linhas que retornou? Simulou o mesmo em um ambiente igual ao de prod?

[quote=Hebert Coelho][quote=VagnerMG]Foi na hora de gerar um relatório pelo Jasper Reports!

O erro não estava ocorrendo, é que precisei subir mais uma cópia do meu sistema no final de semana, e então hoje o erro aconteceu!

Não estou usando muitos frameworks justamente para não consumir muita memória no servidor, e mesmo assim tá dando permgem space.

[/quote]Vc viu a quantidade linhas que retornou? Simulou o mesmo em um ambiente igual ao de prod?[/quote]

Infelizmente eu dei um reboot no servidor aqui Hebert e perdi o Log!

E eu não simulei o erro não!
Hospedo meu projeto na integrator e minha JVM está com 1gb de ram!

Meu arquivo catalina.sh está assim:

#!/bin/sh
export JAVA_HOME=/usr/java/jdk1.6.0_35/
export JRE_HOME=$JAVA_HOME
export CATALINA_HOME=/home/touchinf/appservers/apache-tomcat-7x/
export JAVA_OPTS="-Xmx1024000000 -Djava.awt.headless=true"

Está configurado errado?

Recomendaria colocar no servidor só as libs estáveis: hibernate, spring, commons, etc. As suas próprias libs, que estão em desenvolvimento, como alguma lib de “arquitetura” deixaria duplicado dentro de cada projeto mesmo.

Claro que é impossível dizer que isso por si só vai resolver seu problema. Mas que ajuda, ajuda. E não é uma prática tão de outro mundo não.

[quote=rodrigo.uchoa]Recomendaria colocar no servidor só as libs estáveis: hibernate, spring, commons, etc.

As suas próprias libs, que estão em desenvolvimento, como alguma lib de “arquitetura” deixaria duplicado dentro de cada projeto mesmo. [/quote]So fique atento que essa prática pode levar a problema de conflito de libs, caso o tomcat já tenha alguma lib de versão mais antiga carregada por ele mesmo.

Isso aí vai te tomar um cadin de tempo. [=