| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 16:28:30
|
DirceuSobrinho
JavaChild
![[Avatar]](/images/avatar/8f7d4d570dd8d2de4e4713dc37719db8.jpg)
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 16:30:25
|
bruno_savi
JavaTeenager
![[Avatar]](/images/avatar/b750c583c4740415f8c803198ad9a318.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 16:32:04
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 16:38:13
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 17:17:13
|
DirceuSobrinho
JavaChild
![[Avatar]](/images/avatar/8f7d4d570dd8d2de4e4713dc37719db8.jpg)
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...
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2008 14:14:36
|
almeidar
Entusiasta Java
![[Avatar]](/images/avatar/5c18451ace5d9c3f7e8b54576eb89ee8.jpg)
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 |
|
|
 |
|
|