Apache & Tomcat  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

Pessoal,

Tenho um ambiente Tomcat 5.0.27 / Apache 2 utilizando jk2. Esse cara tem pouco mais de 100 clientes, executando consultas leves e cadastros. O que vem ocorrendo é que nesses ultimos dias, no fim da tarde, o Tomcat simplesmente pára de responder, necessitando ser reiniciado.

Não há informação muito útil nos respectivos logs no momento dessa "queda". O que eu achei estranho, na verdade, é o log gerado no startup do Tomcat:




O diretório /xxx/yyyy existe, e tbém existe um arquivo jk2.shm (com data antiga) lá. Não é problema de permissão, pois o erro ocorre mesmo startando como root.

Eu dei uma caçada na net, e vi que esse tal shm diz respeito a memória compartilhada. Eu não sei são problemas relacionados, mas de qualquer forma preciso de ajuda nas duas coisas.

Então, em resumo:

- alguma idéia de porque um tomcat pode parar de responder sem jogar nenhum log?
- como eu resolvo esse problema do shm?

A minha vontade é desmontar tudo e montar do zero, pq não fui eu que configurei, e quem o fez, não deixou nada documentado e nem está mais aqui. Mas como isso está em produção, fica inviável por ora.

Valeu


André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Aqui usamos Apache 2.0.5x + 2 tomcats (tomcat 4.1.31 e tomcat 5.0.2. Meu workers2.properties está assim:


Como aqui não dá problema, veja se isto o ajuda.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

hmm.... o meu tem algumas diferenças, vou alterar e fazer alguns testes.

Valeu, Luca!

André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

Consegui tirar o erro do shm (parece que o arquivo estava protegido de alguma forma, pois foi só movê-lo que funcionou), mas meu tomcat ainda está instável.

A pouco, defini valores para as opções -Xms e -Xms do startup, e tbém adicionei a opção -server. Não tinha nada disso, vamos ver se estabiliza.

Andei dando uma pesquisada aqui no guj mesmo, e vi um outro post seu, Luca, que você dizia ter utilizado o tomcat 5.0.27 e havia dado pau. Pois é justamente essa versão que está rodando aqui. O que aconteceu no seu caso?

Valeu

André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Não me lembro mais qual erro mas na época voltei para o 5.0.25. Atualmente uso o 5.0.30 sem problemas.

O que exatamente ocorre de errado com seu tomcat?

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

Ele anda parando de responder em momentos de pico!

Não gera log, não acontece nada. Simplesmente para de responder.

Reinicio, e fica tudo bem.

André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Pode ser que sua aplicação esteja com memory leaks, isto é, com alguns objetos grandes esquecidos. E habilite todos os logs (enfie debug = 5 no server.xml e no web.xml) pois podem haver outras causas destes travamentos.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

Memory leaks é uma grande possibilidade.

Existe algum tipo de "scan" da memória virtual para identificar esses objetos, ou só debugando a aplicação, mesmo?

Valeu!

André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Profilers open source (alguns são plugins para o eclipse):
http://www.manageability.org/blog/stuff/open-source-profilers-for-java

Há muitas opções além destes e do JavaTM Virtual Machine Profiler Interface (JVMPI). A maioria não é free, mas vc pode baixar um trial e resolver seu problema. Na verdade usar profillers não é nada fácil. Eu já usei e fiquei meio perdido dentro de um monte de informações. Mas eu espero qie vc tenha melhor sorte do que eu.

Veja:
http://www.javareference.com/downloads/viewdownload.jsp?id=00000022

http://www.yourkit.com

http://www.physics.orst.edu/~bulatov/HyperProf/ (free)

http://profiler.netbeans.org/index.html (free, está na lista do manageability.org)

http://www.alphaworks.ibm.com/tech/heapanalyzer (free)

E analise suas conexões com o banco de dados. Coloque um log para ver se está retornando ao pool (ou fechando) tudo direitinho.

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

Obrigado, Luca!

Na verdade, depois do ultimo post eu fiz o que deveria ter feito antes de perguntar, dar uma Googleada...

Acabei chegando em alguns destes links, e a coisa parece meio chata de manusear, mesmo!

Mãos a obra!

Valeu!


André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

Realmente utilizar um profiler foi uma boa idéia. Eu baixei um cara chamado JProbe. Ele não me mostra o que eu realmente queria ver, que era quais objetos estão em memória, mas me dá um gráfico de utilização da heap (que parece uma versão gráfica da opção -verbose:gc) e a sequencia de "chamada" dos objetos, e quem chamou quem, quantas vezes, de forma gráfica. Apenas isso já me fez identificar a utilização de uma classe (que fazia IO) sem necessidade.

Com esse programa, apareceu outra duvida. O gráfico de utlização da memória me dá dois indicadores, a memória alocada e a memória utilizada. Utilizando Tomcat 5.0.28 e j2sdk 1.4.2_04 (NT Workstation), apenas inicializando o tomcat, sem fazer nada, o gráfico mostra uma memória alocada estável e a memória utilizada em uma curva ascendente. Essa curva chega no limite alocado, o limite é reajustado para cima, e a curva de utilização volta abaixo (como se tivesse sido executado um GC).

A pergunta é: é normal essa curva de utilização ser crescente, mesmo eu não estando com nenhuma sessão inicializada? Isso é coisa do tomcat?


Valeu

This message was edited 1 time. Last update was at 28/02/2005 10:48:25


André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team