Pessoal tenho instalado na minha máquina o JBoss 4.0.5.GA estou tendo um problema um tanto estranho. Acontece que com o passar do tempo a minha máquina vai subindo o consumo da CPU até 100% quando fico fazendo os deploys no JBoss, se eu não estou com JBoss rodando a máquina se comporta normalmente. Existe alguma configuração especifica para o JBoss ?
Já me falaram que o JBoss é um excelente servidor e tudo mais, mas não entendo o que está acontecendo.
o processo de deploy em AS costuma ser custoso … ainda mais com esses classloaders malucos
até entendo que seja custoso, mas acontece que nos primeiros deploys acontece tudo normal com o passar do tempo o consumo da CPU sobe para 100% trava a máquina e só consigo liberar a CPU tirando o JBoss do ar.
Acho estranho esse comportamento.
Amigo,
você precisa configurar o Heap Memory da JVM para diminuir esses problemas.
Altere a variável JAVA_OPTS no run.bat no %JBOSS_HOME%\bin
set JAVA_OPTS=%JAVA_OPTS% -server -Xms384m -Xmx512m -Xss128k -Xnoclassgc -verbose:gc -XX:+UseParallelGC -Djava.security.policy=C:\jboss-4.0.1sp1\server\default\conf\server.policy -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -XX:PermSize=64m -XX:MaxPermSize=128m -Dfile.encoding=ISO-8859-1 -Djava.awt.headless=true -Duser.language=pt -Duser.country=BR -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Duser.timezone=GMT-3:00
Boa sorte ai
tem gente que adora enfiar parametros na configuracao da jvm sem saber pra que server e só por que leram em algum lugar,
se voce desligar o GC para classes tua heap vai viver cheia de lixo e ficar fazendo log do gc não é uma coisa muito boa pra performance …
um
vai mudar o comportamento da jvm mas nao vai ajudar muito … nao se esqueca de usar caching no servlet container sempre q possivel.
fmeyer concordo com você, acontece que estou começando com o desenvolvimento web com JBoss + eclipse. Como fazer o caching do container ? O que você acha que devo fazer para resolver esse problema sendo que quando fazer um run pelo eclipse ele já seta as propriedades com 128m 512m.
Só para tentar entender:
O consumo vai a 100% durante o deploy da aplicação ou continua neste estado mesmo após o final ?
Vc. está usando o esquema normal do JBoss (UCL, a.k.a promiscuidade total) ou usando um “espaço” de classes independente para seu (e|w)ar ?
Aqui, já notei que após seguidos redeploys - principalmente em modo debug - a memória total da JVM do JBoss vai aumentanto até o seu limite. Acaba ocorrendo trashing no SO, mas isto se reflete principalmente em alta taxa de I/O - a CPU fica em níveis relativamente normais.
Sugiro um teste controlado, em alguns cenários cenários:
- JBoss isolado, aplicação conhecida (use o jmx-console p.ex)
- JBoss em debug, aplicação conhecida
- JBOss isolado, sua aplicação
- JBoss em debug, sua aplicação
Monte um script para fazer o deploy umas 100x e compare os resultados.
Após este benchmark inicial, comece a brincar com parâmetros e veja o que dá ou não resultados.
É claro que isto requer tempo, mas problemas de performance, especialmente os que apresentam características de degradação com o tempo como o seu, requerem um pouco de método para levar a algum lugar.
fmeyer,
a configuração que enviei deverá resolver o problema totalmente, até porque o GC não foi desabilitado, foi otimizado, e uso-a em projetos de desenvolvimento a muito tempo em estações com memória de 512mb a 2048mb de ram, geralmente com JBOSS e ECLIPSE e funciona muito bem, estando totalmente documentada no JVM HotSpot Server Options.
Entretanto luciano, para que você tenha uma resultado melhor, customize a JVM do Eclipse para garantir que ele não “coma” toda a memória da máquina ou que falte heap size pra ele…
C:\eclipse\eclipse.exe -vm=c:\jdk1.5 -vmargs -client -Duser.language=en -Xms384M -Xmx512M -XX:PermSize=64m -XX:MaxPermSize=128m -Xss192k
Bom trabalho a todos
Só se for pra otimizar o tempo que a maquina vai passar consumindo memoria e escrevendo em IO.
Definitivamente isso nao vai ajudar em nada na performance só piorar
Bom Dia Pessoal!!!
Eu também estou usando o Jboss4.0.5GA e estou enfrentando um probleminha de performance do jboss, quando a tabela JMS_MESSAGE passa dos seus 500.000 registros, o jboss começa a ficar lento, e as mensagens não estão sendo apagadas totalmente da tabela, algumas mensagens ficam na tabela e não saem mais. Problema de hardware não é porque estamos usando um “puta” servidor. Quando acontece isso eu tenho que parar o jboss e apagar todas as mensagens da tabela. O banco de dados que estamos usando é oracle, já verifiquei se há algum problema de configuração de banco. Alguém já passou por esse problema?