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.
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
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 .
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.
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
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.
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)
Tags monitoring tomcat memory