Tomcat 5.5: Opções de monitoramento do Webapp

1

Uma de nossas caixas Tomcat de produção executa duas aplicações web. Um é nosso, outro é um aplicativo de caixa preta que nosso fornecedor forneceu para "ajudar" com nosso aplicativo.

Estamos, infelizmente, batendo nos limites de memória em nossa caixa de produção, e estou trabalhando para adicionar memória RAM e fazer com que o Tomcat comece com mais memória disponível para a JVM. Antes de fazer isso, no entanto, gostaria de ver qual desses dois aplicativos Web está consumindo toda a RAM!

Existe uma opção dentro do gerenciador do Tomcat integrado que mostra o uso de RAM pelo webapp? Caso contrário, existe uma solução gratuita disponível, em algum lugar, que ofereça esse nível de disponibilidade de diagnósticos?

Se necessário, estou aberto a escrever meu próprio aplicativo leve para fazer isso e ter um em execução na máquina que cuida dos outros dois.

Obrigado,
Vingador IVR

    
por IVR Avenger 02.10.2009 / 20:08

6 respostas

1

Dê uma olhada no servidor Tcat do MuleSoft, ele pode fornecer muitas informações sobre a utilização de memória . Você pode usá-lo com sua instalação existente do Tomcat.

    
por 09.01.2010 / 09:04
1

Tente usar JMX . Habilitar isso deve ser tão simples quanto adicionar a seguinte linha ao seu script de inicialização:

JAVA_OPTS=$JAVA_OPTS:"-Dcom.sun.management.jmxremote.port=8090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

Como você pode ver, existem opções para criptografia e autenticação para saciar seu Gerenciador local da Paranoia.

Você não mencionou qual sistema de monitoramento está usando; você provavelmente terá que configurá-lo para poder falar também com o JMX. O Zabbix tem Zapcat , aqui estão alguns Instruções do OpenNMS , e aqui está um plugin do Nagios .

    
por 02.10.2009 / 20:21
0

Infelizmente, não acho que haja alguma maneira de dividir o uso da RAM por aplicativos da Web individuais, mesmo usando o JMX. No entanto, apenas para essa experiência, você poderia tentar executar cada aplicativo da Web em sua própria instância do Tomcat. Em seguida, meça o uso de memória de cada JVM separada.

    
por 02.10.2009 / 22:39
0

Dê uma olhada no lamdaprobe é uma pequena aplicação web que pode até ligar para o JMX e te dar muito de informações valiosas: link

Cuidado que o acesso a este aplicativo deve ser dado apenas aos administradores

    
por 03.10.2009 / 02:13
0

O Zenoss permitirá que você assista o servidor executando o tomcat, o processo do tomcat e o monitore via JMX também. Há uma boa quantidade de documentação e é de código aberto.

    
por 03.10.2009 / 14:05
0

Você pode dividir a memória dentro do servidor por classes e por referências, mas é um pouco técnico. Basta fazer um dump de heap em algum momento com jmap ou jconsole ou jvisualvm ou -XX: + HeapDumpOnOutOfMemoryError. Em seguida, abra-o com o Eclipse MAT ou JHat.

Então, se você quiser mais monitoramento: link (gráficos de memória e detalhamento por classes incluídas)

    
por 09.10.2009 / 23:46