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.
Pode ser problema com memória. Tenta verificar se com o tempo a memória alocada para o JBoss aumenta.
Att.
T
tc_medeiros
Poxa amigo, meu servidor tem 4GB. Acho que não é esse o problema.
A
Ataxexe
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
tc_medeiros
Acho que é essa linha:
set “JAVA_OPTS=-Xms254M -Xmx1024M -XX:MaxPermSize=512M”
Estou certo?
D
Dong
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
Ataxexe
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
Adelar
O mais provável é que seja isso.
T
tc_medeiros
Vou colocar suas dicas em prática e darei um retorno. Muito Obrigado!
T
tc_medeiros
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
Ataxexe
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
tc_medeiros
Como eu aumento o pool de threads?
T
tc_medeiros
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
tc_medeiros
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
pmlm
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
pmlm
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
Ataxexe
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.