Tomcat - Consumo excessivo de CPU

6 respostas
W

Pessoal,

Tenho um ambiente Apache 1.3.28 integrado com Tomcat 4.0.3. Tudo estava funcionando 100%, mas de repente o Tomcat começou a consumir recursos de CPU em excesso e isso tá gerando instabilidade no servidor. Fica muito lento para abrir minha página olhando no Gerenciador de Tarefas, o processo System, java.exe e Apache estão com um grande consumo de CPU. Assim que eu paro o Tomcat, tudo se normaliza.

Quando reiniciou os serviços, tudo funciona certinho, mas depois algum tempo o problema acontece novamente. Acrescenti a seguinte linha no arquivo catalina.bat, mas não adiantou:

JAVA_OPTS="-Xms128m -Xmx1024m"

Alguém já passou por situação igual e pode me ajudar?

6 Respostas

L

Olá

  1. Mude rápido para no mínimo Apache 1.3.31 e jakarta-tomcat-4.06, de preferência Apache 2.0.52, jakarta-tomcat-5.0.25 (para mim o 25 ainda é mais confiável do que o 28 que não testei ainda, aqui o 27 deu pau) e se der use j2sdk1.4.2_05

  2. Verifique também sua aplicação. Veja se está deixando algum objeto aberto. Procure por um profiler.

[]s
Luca

W

Cara, sei que não é mágica, mas não dava esse problema…de uma hora pra outra começou a acontecer isso. Pensei em vírus será que pode ser? Nas aplicações não mudei nada.

L

Rode o tomcat em modo debug aceitando conexões externas.
Quando ele pirar espeta 1 debugger nele, pause todas threads e examine o call stack delas para ver se encotra a problemática. Ir despausando elas uma-a-uma pode ajudar a descobrir mais rápido quem pirou no teu código.

L

Olá

louds, pode explicar com mais detalhes como se faz isto?

[]s
Luca

W

Bom Louds, assim como o Luca, eu também não entendi bem…será que vc pode explicar com mais detalhes? O próprio tomcat tem um debuger que eu habilito? :?:

C

Tem um parametro de linha de comando que voce pode passar pra JVM do Tomcat que abre uma porta pra que voce possa se conectar com um debugger. Esqueci o nome do protocolo agora, mas todo bom debugger (incluindo o do Eclipse e do IDEA, pelo menos) tem essa opcao.

Dai, com o debugger conectado à JVM remota, voce pode fazer o que o louds disse - pausar tudo, e ir olhando as threads. :wink:

Criado 29 de setembro de 2004
Ultima resposta 30 de set. de 2004
Respostas 6
Participantes 4