Boa noite pessoal. Implementamos o VRAPTOR em nossa empresa e estamos utilizando em todos os sistemas, porém a pouco em um sistema
com grande quantidade de acessos e fluxo de dados começamos a ter alguns problemas relativos a grande quantidade do uso da CPU, onde
o mesmo costuma a chegar a 300% no periodo de maior fluxo do site, assim o site fica lento e acaba caindo depois de um tempo.
OS: Linux ubuntu 10.04
JAVA: JRockit 1.6
Server: Tomcat 7
Framework: vrpator 3.4.1, spring 3.1
Com isso começamos a analisar os fatores que poderiam estar causando esses problemas, realizamos todas as configurações possíveis no tomcat
e no apache até chegarmos a analisar no JProfile e encontrarmos um overflow de carregamento na classe:
- org.springframework.web.context.ConfigurableWebApplicationContext.getBean()
Simulando a grande quantidade de acessos percemos que a mesma inicia com um tempo bom e ao simular acessos o tempo aumenta até parar o sistema o tomcat.
Estamos em um ambiente onde utilizamos o Vraptor para a camada controller e para a camada de serviço abstraimos o mesmo utilizando
o Spring Framework para realizar as injeções de dependência, e as configurações são realizadas no arquivo application-context.xml. Ex:
<bean id="orderStatusService" class="br.com.xxx.module.order.service.impl.OrderStatusServiceImpl">
<property name="repository" ref="orderStatusDAO"/>
</bean>
Utilizamos o @Inject também para algumas classes onde que nos permite e facilita a não precisar configurar o XML. Nos Controladores utilizamos o VRaptor sem nenhuma modificação apenas criação de Interceptors para atender necessidades específicas.
Estamos tentando descobrir o que poderia estar causando esse grande consumo de CPU e o seu amento significativo, alguém já passou por isso ou pode nos
ajudar?
