JBoss x TomCat

12 respostas
L

Senhores

Estou tendo alguns problemas com tomcat e desejo melhorar o desempenho de minhas aplicações utilizando o JBoss.
Porem a diferença entre os dois não ficou muito claro poderiam me ajudar???
Qual seria o melhor em termos de aplicação?

Obrigado

12 Respostas

R

Essa resposta poderia ser encontra na busca do forum:


L

[quote=romarcio]Essa resposta poderia ser encontra na busca do forum:


Opa muito obrigado Romarcio vou analisar esses topicos

L

Cara, Tomcat já tem até suporte nativo à Clusterização e Load Balance. A não ser que vá usar EJB, não vejo justificativa alguma, hoje em dia, pra usar JBoss. IMHO, óbvio.
Abraço!

L

leoramos:
Cara, Tomcat já tem até suporte nativo à Clusterização e Load Balance. A não ser que vá usar EJB, não vejo justificativa alguma, hoje em dia, pra usar JBoss. IMHO, óbvio.
Abraço!

Desculpe Leo sou meio leigo no assunto tentando aprender no caso o que seriam essas aplicações em EJB se é que posso dizer que são aplicações.

Desde ja agradeço pela força

Abraço

R

Cara, o ganho não será tão grande, pois o servidor Web do Jboss é o Tomcat!!!

Se você está tendo problemas de desempenho com sua aplicação Web o que você precisa é de um bom profiler para identificar o gargalo e trabalhar isso. Muitas vezes, uma segunda opinião sobre o código já ajuda. Pode ser algum memory leak, algum recurso não liberado, alguma consulta no BD sendo repetida várias vezes sem necessidade*, ou ainda o próprio BD. Duvido muito que exista algum outro Servlet-container open-source que bata no Tomcat.

L

Entao cara na verdade não é nem desempenho oq estou preocupado no momento e sim pq vem ocorrendo o erro de permgen space eu ja aumentei a memoria do permgen mas sei q mesmo assim ela ira estourar novamente apesar de demorar.
Andei dando uma pesquisada e encontrei o Jboss q poderia me ajudar nesse problema e talvez melhore o desempenho das aplicação quiz juntar os dois problemas e arrumar de uma vez.

J

Olá, por experiência própria… a nossa aplicação aqui da empresa… foi feita ás pressas no ano de 2008, se não me engano fizeram em 10 dias rsrs… kkk
Lembro que passamos muito tempo tentando corrigir essa burrada… e usávamos o Tomcat 6 ná epoca a app era feita em JSF 1.1, Spring 2 e MySQL 5.
Cara tinha muito memory leak, muito mesmo… em horário de pico o tomcat num aguentava e caia de 2 em dua horas… java.lang.OutOfMemoryError: PermGen space…

Sei que na epoca pesquisamos e encontramos o JBoss AS… O certo mesmo era fazer um profile ou até mesmo refazer a app… só que não tinhamos tempo…
Dai colocamos a noss app .WAR no JBoss AS… de alguma forma o danado, mascarou os Memory Leak e nossa app nunca mais caiu…

Bom ai vai de cada… um isso foi um medida de desespero mesmo… mas funcionou na época…

Realmente o JBoss é um servidor de missão crítica… kkkk

Depois claro refizemos a app toda…

Abraço!

F

lecom:
Senhores
Estou tendo alguns problemas com tomcat e desejo melhorar o desempenho de minhas aplicações utilizando o JBoss.
Porem a diferença entre os dois não ficou muito claro poderiam me ajudar???
Qual seria o melhor em termos de aplicação?
Obrigado

Me desculpe mas sou obrigado a discordar!!!
Não existe servidor ruim…existe servidor mal configurado ou inadequado.
Tenho tomcat rodando aplicações para 6 mil clientes com 1 mil sessões por minutos simultâneo rodando lindo maravilhoso…
Qualquer servidor é algo que tem que ser devidamente configurado para suportar…
JBoss é outro tipo de container usado para vertentes de soluções Java…
Falar que vai usar JBoss no lugar do tomcat para melhorar desempenho é completamente errôneo por 2 motivos
1)JBoss gasta mais memoria que o tomcat.,
2) Web container do Jboss é o tomcat.

Seu aplicação esta com performance ruim? Problemas de memoria?

Trabalhar com memoria no Java é como uma brincadeira de criança…

  • a memoria é copo com um tamanho determinado.
  • cada vez vc cria um objeto (new) vc coloca um gota de água nesse copo.

Como funciona?

  • Quando vc inicia a aplicação, vc ja coloca um pouco de água…tipo uns 20% do copo (pelos gastos do objetos iniciais)
  • Enquanto a aplicação ta rodando, que vai enchendo de água…(gastando objeto durante o uso)
  • Quando a água começa ficar acima dos 70% , o GC ja vai tentando retirar/derramar essa agua do copo (retirar os objetos sem referencia)
  • Se o gc conseguir ele, esvazia esse copo…tudo volta ao ciclo…
  • Se o gc não conseguir…a agua cai do copo java.lang.OutOfMemoryError kkkkk

Motivos de Falta de Memoria?

  1. A solução esta gastando memoria desenfreadamente - falta de uma arquitetura correta ou desenvolver despreparado.
    Como corrigir? Abrir o código e otimizar. Existem muitas e muitas práticas…

2 A solução esta gastando memoria corretamente, mas ainda não é suficiente.
Se a aplicação esta ok e otimizada…unica coisa q pode ser feito é aumentar a memoria…pq a solução precisa de mais memoria!!!
Acontece quando muito principalmente em aplicações web quando o numero de usuário simultâneo vai aumento.

M

FernandoFranzini:
lecom:
Senhores
Estou tendo alguns problemas com tomcat e desejo melhorar o desempenho de minhas aplicações utilizando o JBoss.
Porem a diferença entre os dois não ficou muito claro poderiam me ajudar???
Qual seria o melhor em termos de aplicação?
Obrigado

Me desculpe mas sou obrigado a discordar!!!
Não existe servidor ruim…existe servidor mal configurado ou inadequado.
Tenho tomcat rodando aplicações para 6 mil clientes com 1 mil sessões por minutos simultâneo rodando lindo maravilhoso…
Qualquer servidor é algo que tem que ser devidamente configurado para suportar…
JBoss é outro tipo de container usado para vertentes de soluções Java…
Falar que vai usar JBoss no lugar do tomcat para melhorar desempenho é completamente errôneo por 2 motivos
1)JBoss gasta mais memoria que o tomcat.,
2) Web container do Jboss é o tomcat.

Seu aplicação esta com performance ruim? Problemas de memoria?

Trabalhar com memoria no Java é como uma brincadeira de criança…

  • a memoria é copo com um tamanho determinado.
  • cada vez vc cria um objeto (new) vc coloca um gota de água nesse copo.

Como funciona?

  • Quando vc inicia a aplicação, vc ja coloca um pouco de água…tipo uns 20% do copo (pelos gastos do objetos iniciais)
  • Enquanto a aplicação ta rodando, que vai enchendo de água…(gastando objeto durante o uso)
  • Quando a água começa ficar acima dos 70% , o GC ja vai tentando retirar/derramar essa agua do copo (retirar os objetos sem referencia)
  • Se o gc conseguir ele, esvazia esse copo…tudo volta ao ciclo…
  • Se o gc não conseguir…a agua cai do copo java.lang.OutOfMemoryError kkkkk

Motivos de Falta de Memoria?

  1. A solução esta gastando memoria desenfreadamente - f alta de uma arquitetura correta ou desenvolver despreparado.
    Como corrigir? Abrir o código e otimizar. Existem muitas e muitas práticas…

2 A solução esta gastando memoria corretamente, mas ainda não é suficiente.
Se a aplicação esta ok e otimizada…unica coisa q pode ser feito é aumentar a memoria…pq a solução precisa de mais memoria!!!
Acontece quando muito principalmente em aplicações web quando o numero de usuário simultâneo vai aumento.

Pode ensinar como configurar o tomcat dessa maneira otimizada? Estou tendo problemas quando tenho muitos acessos simultaneos, trava a aplicacao e ninguem mais acessa…

Obrigado!

F

Infelizmente não da para ensinar esse tipo de coisa…é algo que vc aprende ao longo do tempo. Mas posso tee dar uma dicas…

  1. Veja se arquitetura da solução esta ajudando no estouro…corrija!
  2. Use JMeter para simular sua demanda num ambiente de homologação idêntico ao produção…Levante seus limites…
  3. Configure o tomcat para favorecer isso…parâmetros HEAP, PERMGEM, GC, PILHA STACK, serialização da sessão e auto deploy.
  4. Use JMeter para simular sua demanda no ambiente configurado e veja os limites.
    5)Ciclo ideal do GC é ter pelo menos 2x o tamanho de memoria livre para a coleto, menos uns 20% para picos momentâneos…
    t+
M

Para um máquina com 4gb RAM, configurei o seguinte no tomcat:

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms2048m
-Xmx2048m -XX:NewSize=896m -XX:MaxNewSize=896m -XX:PermSize=124m
-XX:MaxPermSize=124m -XX:+DisableExplicitGC"

Aparentemente deu certo, pois estou conseguindo fazer alguns acessos enquanto o jMeter está estressando a aplicação com várias requisições!

Teria alguma consideração à acrescentar?

F

michellhornung:
Para um máquina com 4gb RAM, configurei o seguinte no tomcat:

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms2048m
-Xmx2048m -XX:NewSize=896m -XX:MaxNewSize=896m -XX:PermSize=124m
-XX:MaxPermSize=124m -XX:+DisableExplicitGC"

Aparentemente deu certo, pois estou conseguindo fazer alguns acessos enquanto o jMeter está estressando a aplicação com várias requisições!

Teria alguma consideração à acrescentar?

A configuração desses parâmetros ai tem que favorecer o ciclo do GC para sua demanda…aparentemente esta ok…mas como eu não conheço seu projeto não teria como acrescentar nada…

Criado 29 de setembro de 2011
Ultima resposta 25 de fev. de 2014
Respostas 12
Participantes 7