我正在开发一个项目,我需要找到部署在Apache tomcat中的Web应用程序的内存使用情况。在Intranet架构中,我想开发一个工具来查找访问已部署的Web应用程序及其内存的用户。有人可以帮助我开始这个项目。我已经配置了Apache tomcat并且现在部署了一些Web应用程序。性能监控是我项目的目标。谢谢。
您可以使用JMX轻松访问Tomcat JVM的内存使用情况。有关更多信息,请参阅此SO。请注意,您将获得tomcat +所有已部署的Web应用程序的内存使用情况。您无法获得单个Web应用程序的内存使用量,因为Tomcat共享容器和应用程序的单个Java进程。如果你想更好地控制每个应用程序的内存使用量,我建议你使用更复杂的应用程序服务器或者每个webapp使用一个tomcat实例。
为了监控连接的用户,我想你必须在应用层做一些事情。 Tomcat并不真正意识到“用户”的概念,因为这通常是您在代码中实现的东西(如Spring Security)。
你读过这个吗?你不能,请阅读http://wiki.apache.org/tomcat/FAQ/Memory:
您无法找到Web应用程序使用的内存量。 JVM没有向我们提供这些细节或信息。
我建议glowroot是一个非常好的开源Java应用程序性能监视(APM)工具,您可以将其附加到Tomcat而无需更改任何Java源代码。
要使用它只需要download它并添加你的JVM -javaagent:path/to/glowroot.jar
的开头
对于tomcat,您需要添加环境变量
JAVA_OPTS="$JAVA_OPTS -javaagent:path/to/glowroot.jar"
在/etc/tomcat8/tomcat8.conf
有关更多详细信息,请参阅项目github的说明
它具有非常轻的overhead,您可以在生产中临时使用它来提取多个应用程序性能信息并使用Tomcat进行测试。
Pinpoint,glowroot,java melody,visualVM(自带JDK),Java任务控制(自带JDK)可以帮助您了解堆利用率和其他性能参数(如利用率,响应时间,瓶颈等)。我最喜欢的是Glowroot .. :)它易于安装并提供非常好的应用程序洞察力。 Demo Url Glowroot:https://demo.glowroot.org/transaction/average?transaction-type=Web Java旋律:http://javamelody.org/demo/monitoring我希望这能帮到你:)