usuários simultâneos max médias de Tomcat
-
06-07-2019 - |
Pergunta
Eu estou fazendo teste de estresse com JMeter
na aplicação web (construído com Spring, Struts2 REST, usa PostgreSQL).
Estou simulando cenário típico do usuário com a minha app:
4 GET, 3 INSERT, 20 chamadas UPDATE.
Servidor especificações:
4Core Intel Xeon X5365 3GHz
8 GB de RAM
disco de 320GB SATA única
OS: Ubuntu 8.10 32 bits
DB: PostgreSQL 8.4
Tomcat 6.0.18
Java 1.6.0_14
Os resultados mostram que servidor iria lidar com cerca de 130 transações concorrentes. este número é possível? Há alguma resultados on-line para comparar com o meu?
Solução
O gargalo será em seu banco de dados de modo que este é muito difícil comparar sem saber o seu desempenho de banco de dados.
Nós temos uma máquina similar (exceto com 16GB RAM, rodando Tomcat 5.5). Na carga de pico, ele pode facilmente servir 256 conexões simultâneas. Estamos a debater para alterar as maxThreads a 512.
Algumas dicas de ajuste,
- Se você executar Apache como front-end, o uso
mod_jk
. Seu desempenho é muito melhor do quemod_proxy
. - Se você servir HTTP direta ou utilização mod_proxy, use o conector NIO no Tomcat 6.
- Verifique se o seu pool de threads (maxThreads) é grande o suficiente, o padrão é de apenas 200.
- Faça Tomcat Estado-less. Especialmente, não use HttpSession. O estado pode causar vazamento de memória no aplicativo e degradar o desempenho gradualmente. Empurrar todo o seu estado de banco de dados ou cliente (cookies).
- Do pooling uso de banco de dados (DBCP). Temos MySQL, o driver JDBC é muito falador.
- Se você executar uma instância do JMeter, ele pode se tornar o gargalo. Executar vários escravos de diferentes redes para simular carga de produção real.