Muitos devem ter percebido a recente instabilidade do GUJ. Estamos suspeitando de possíveis vazamentos de memória no guj e no jforum atual, mas nada confirmado. Além de tudo isso, o Tomcat não tem colaborado conosco. Esporadicamente ele congela, para de responder e o processo continua de pé. Os logs também não tem ajudado em nada.
Dada a ótima experiência que já tivemos com o Jetty, estamos dando uma chance a ele. Acabamos de colocar o GUJ para rodar no Jetty ao invés do Tomcat e contamos com a colaboração e compreensão de todos para possíveis problemas que possam ocorrer nos próximos dias.
Não devemos sentir nenhuma diferença no GUJ por causa desta mudança. Tivemos a sensação de que ficou um pouco mais rápido, mas isso não é nada formal; apenas impressão. Uma diferença importante que já pudemos perceber é que o jetty tem consumido muito menos memória do que o Tomcat. Portanto, se o problema real for mesmo algum vazamento de memória, vamos demorar mais a ver o GUJ cair.
Já agradeço novamente a compreensão de todos. Esse post é apenas uma tentativa de compartilhar um pouco do que está sendo feito para melhorar o GUJ com todos vocês, e de saber que é sim possível migrar de forma (quase) transparente entre servlet containers.
Fabio, que tal se ao término de todo o processo de migração pro o guj 3, fosse feito um artigo mostrando as dificuldades, pontos fortes da nova estrutura, como ficou o funcionamento de tudo e tal, aquele resumão da arquitetura do guj?
acho que seria bacana
Pra que um AS como o Glassfish se não há EJB, JMS, WebService, etc?[/quote]
por exemplo não usa agora mas pode vir a usar, por isso se já tiver um servidor completo bombando fica mais fácil sei lá… é como ter um ferrari quando se precisa de um fusquinha
Costumo usar ele mesmo sem ter EJB nos projetos… pois a administracao dele é facilitada e carga é modular… se vc nao usar JMS por exemplo… ele nao carrega o MessageQUEUE… e assim por diante…
A integração dele é tão facil quanto Tomcat nas IDE’s e se vc usar o feijão com arroz ele tmb é de carga bem rapida
A mais nova: jetty-6.1.11. Pensei em usar o jetty7 beta, mas é arriscado d+.
[quote=reinaldob]O Glasfish usa o Jetty, assim como o Jboss usa o tomcat.
Então, se o Jetty é rápido, boas chances do Glassfish ser tb. [/quote]
Glassfish não usa o Jetty. Usa o Grizzly. Os nomes são parecidos mesmo!
Gente, agora a coisa toda deve estabilizar. Resolvemos o último problema que tinhamos, que era o consumo alto de cpu, por causa dos NIO connectors. O GUJ agora tem um proxy reverso na frente do(s) jetty(ies) que serve todo o conteúdo estático e possivelmente faz balanceamento de carga.
O servidor agora dificilmente passa de 10% de uso total do cpu e o jetty tem usado em média apenas 5% da memória do servidor (2Gb).
Para fazer o papel de proxy reverso, estamos usando o fantástico Nginx. É realmente impressionante. Recomendo que dêem uma olhada. É muito rápido e consome poquíssimos recursos do servidor. Senti que o GUJ está bem mais rápido agora com o nginx servindo o conteúdo estático.
Também fizemos uma tentativa de deixar vários jetties em balanceamento de carga de ontem para hoje. Funcionou bem, a não ser pelo fato de que o jforum do jeito que está configurado hoje não consegue compartilhar os caches que faz entre os vários nós (jetty) de um cluster. Com um pouquinho mais de código e configuração daria para balancear carga sem problema, mas com o número de requests/s e o uso dos recursos no servidor atuais, não estamos precisando mesmo de balanceamento de carga para o GUJ.