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.
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.
Registre seus JSPs no web.xml para que eles sejam compilados em tempo de deployment, e não em tempo de request
Se a consulta é pesada mesmo, utilize blocos synchronized ou a API concurrent para limitar a quantidade de consultas simultâneas
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
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.
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.