TOMCAT + HIBERNATE - processamento CPU dispara!  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 139
Localização: Maceió - AL
Offline

Olá.

estou subindo uma aplicacao para produção.

ela quando é realizado uma simples busca no sistema, o processamento do cpu dispara, algumas vezes chegando a 100%.

Isso é normal???

tenho medo de qdo muitos usuarios fazerem buscas ao mesmo tempo o Tomcat não aguente!

Como posso melhorar isso??

Att. Dirceu
[MSN]
bruno_savi
JavaTeenager
[Avatar]

Membro desde: 02/11/2006 16:23:22
Mensagens: 183
Localização: São Paulo
Offline

qual a configuração da maquina? framework e etc... que estais usando?

Bruno Savi
[WWW] [MSN]
Fernando Generoso da Rosa
Virtual Machine Man

Membro desde: 14/01/2003 14:48:21
Mensagens: 555
Localização: Sombrio/SC
Offline

Você pode verificar isso utilizando o JMeter para fazer teste de carga:

http://jakarta.apache.org/jmeter/index.html

Fernando Rosa
[Email] [MSN]
rbellia
JavaBaby

Membro desde: 02/07/2008 23:18:16
Mensagens: 80
Offline

1. Uma simples busca com o Hibernate pode alocar muitos objetos em memória, e com isso demandar muito processamento para paginação no S.O. - depende da quantidade de registros que a busca retorna. Procure limitar a quantidade de resultados de suas queries.

2. Vc está esperando para iniciar a SessionFactory na primeira interação com o banco de dados (à la Singleton) ? Montar a SessionFactory é pesado mesmo, e o indicado é utilizar um ServletContextListener para isso.

3. Registre seus JSPs no web.xml para que eles sejam compilados em tempo de deployment, e não em tempo de request

4. Se a consulta é pesada mesmo, utilize blocos synchronized ou a API concurrent para limitar a quantidade de consultas simultâneas

Aumente sua produtividade Java ME: https://diamond-powder.dev.java.net
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 139
Localização: Maceió - AL
Offline

qual a configuração da maquina? framework e etc... que estais usando?


Estou utilizando um Servidor Dedicado com processamento de 2GHz, memoria 1GB, onde so roda está aplicação
Frameworks: Hibernate, Spring, JSF, Acegi...


Você pode verificar isso utilizando o JMeter para fazer teste de carga:

http://jakarta.apache.org/jmeter/index.html

Fernando Rosa


vou dar uma olhada no JMeter


1. Uma simples busca com o Hibernate pode alocar muitos objetos em memória, e com isso demandar muito processamento para paginação no S.O. - depende da quantidade de registros que a busca retorna. Procure limitar a quantidade de resultados de suas queries.


Por enquanto no DB tem poucos objetos, mas no futuro deverá ter muitos objeto, ja q é um sistema de anuncios.
Atualmente não estou limitando a quantidade, vou limitar 100 objetos.


2. Vc está esperando para iniciar a SessionFactory na primeira interação com o banco de dados (à la Singleton) ? Montar a SessionFactory é pesado mesmo, e o indicado é utilizar um ServletContextListener para isso.


Sim, estou instancio o SessionFactory à la Singleton, sendo instanciado atraves do Spring



3. Registre seus JSPs no web.xml para que eles sejam compilados em tempo de deployment, e não em tempo de request


Estou utilizando Facelets, sendo assim as páginas são .xhtml, se instancia paginas xhtml pelo Web.xml

4. Se a consulta é pesada mesmo, utilize blocos synchronized ou a API concurrent para limitar a quantidade de consultas simultâneas


A principio não serão pesadas


Atenciosamente,
Dirceu Sobrinho


This message was edited 1 time. Last update was at 15/07/2008 17:17:53

[MSN]
almeidar
Entusiasta Java
[Avatar]

Membro desde: 07/07/2007 15:26:14
Mensagens: 15
Offline

Se a aplicação está com problema de processamento eu não recomendaria usar o JMeter a princípio, e sim o JProfiler. Primeiro você tem que verificar o problema de processamento com uma ferramenta de profiler e depois de corrigir aí sim fazer teste de carga.

Pode ser que você esteja instanciando muitos objetos e o Garbage Collector esteja fazendo muitos full scans.

Não tem como adivinhar, por isso use as ferramentas.

http://manifestonaweb.wordpress.com
[WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team