JBOSS lento

16 respostas
T

Galera, estou com um problema jáum tempão. Acredito que seja do JBOSS. Tenho um sistema que umas 25 pessoas usam. Com o tempo ele vai ficando muito lento. E só melhora quando eu restarto o JBOSS. Aí ele fica bom, mas depois de um tempo ele vai ficando lento novamente.

O que acham?

16 Respostas

A

Pode ser problema com memória. Tenta verificar se com o tempo a memória alocada para o JBoss aumenta.

Att.

T

Poxa amigo, meu servidor tem 4GB. Acho que não é esse o problema.

A

4 GB no servidor não adianta de nada se o JBoss não for iniciado com memória suficiente. Quanto de memória você está passando para o JBoss?

T

Acho que é essa linha:

set “JAVA_OPTS=-Xms254M -Xmx1024M -XX:MaxPermSize=512M”

Estou certo?

D

Alguns dizem que o correto é disponibilizar 70% da memoria da maquina para a jvm, portanto vc pode aumentar o Xmx para além dos 1024M.

A

Há uma possibilidade de gargalo na sua aplicação também. Sugiro que a rode em um profiler.

Apenas lembrando que não vai adiantar você aumentar mais ainda a memória do JBoss se sua JVM não for de 64 bits (existe uma limitação que varia entre as VMs de 32 bits para a quantidade de memória máxima).

A

O mais provável é que seja isso.

T

Vou colocar suas dicas em prática e darei um retorno. Muito Obrigado!

T

Ataxexe,

O Windows é de 32 bits.

coloquei o código abaixo e não funcionou, deu um erro na JVM.

set "JAVA_OPTS=-Xms512M -Xmx1024M -XX:MaxPermSize=768M"

O que fiz foi aumentar a quantidade inicial de pools no meu datasource. Melhorou um pouco, mas continua lento.

A

Ele deu erro porque você vai estourar a capacidade máxima de memória da JVM de 32 bits.

Você pode experimentar aumentar o pool de threads do JBoss também. Mas eu ainda recomendo que você analize a aplicação com um profiler em busca de algum algoritmo comilão de memória.

T

Como eu aumento o pool de threads?

T

Aumentei o pool de threads, troquei o servidor por um de 64 bits, torquei a JVM por uma de 64 bits e aumentei a memória da JVM para o JBOSS. Amanhã devo liberar para a galera acessar e dou um retorno.

Abs,

T

Depois de estas mudanças que eu fiz o sistema ficou muito mais lento, estive lendo e vi que os codígos compilados em 32 bits ficam mais lentos se rodados em um pc de 64 bits, e na prática estou vendo isto. Se ealguém tiver alguma sugestão, desde já agradeço.

P

No windows não sei. No linux já tive problemas com uma máquina de 64bits e com a JVM de 64 bits. O desempenho era muito mau. A solução foi mudar para a JVM de 32bits (na mesma máquina de 64 bits) e aí o desempenho melhorou a olhos vistos.

P

Outra coisa: porque não colocar logo Xms igual ao Xmx ? Assim, não é necessário estar depois a “pedir” mais memória, inicia logo com a memória toda necessária.

A

Bom, na verdade o java não compila pra 32 bits ou 64 bits já que o bytecode usa 8 bits. A diferença aí é que a JVM de 64 bits requer mais recursos do que a de 32 bits. Se você usar somente código java não faz diferença se for compilado em um JDK de 64 ou 32 bits.

A lentidão aparente com certeza não é devido ao fato do código ser compilado em 32 ou 64 bits.

Eu continuo achando que existe um gargalo na sua aplicação e que você realmente deveria usar um profiler nela.

Criado 16 de setembro de 2010
Ultima resposta 8 de out. de 2010
Respostas 16
Participantes 5