如何在apache tomcat中查找Web应用程序的内存使用情况

问题描述 投票:6回答:4

我正在开发一个项目,我需要找到部署在Apache tomcat中的Web应用程序的内存使用情况。在Intranet架构中,我想开发一个工具来查找访问已部署的Web应用程序及其内存的用户。有人可以帮助我开始这个项目。我已经配置了Apache tomcat并且现在部署了一些Web应用程序。性能监控是我项目的目标。谢谢。

apache tomcat memory-management web-applications
4个回答
5
投票

您可以使用JMX轻松访问Tomcat JVM的内存使用情况。有关更多信息,请参阅此SO。请注意,您将获得tomcat +所有已部署的Web应用程序的内存使用情况。您无法获得单个Web应用程序的内存使用量,因为Tomcat共享容器和应用程序的单个Java进程。如果你想更好地控制每个应用程序的内存使用量,我建议你使用更复杂的应用程序服务器或者每个webapp使用一个tomcat实例。

为了监控连接的用户,我想你必须在应用层做一些事情。 Tomcat并不真正意识到“用户”的概念,因为这通常是您在代码中实现的东西(如Spring Security)。


3
投票

你读过这个吗?你不能,请阅读http://wiki.apache.org/tomcat/FAQ/Memory

您无法找到Web应用程序使用的内存量。 JVM没有向我们提供这些细节或信息。


0
投票

我建议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进行测试。

您可以看到来自JVM和histogram的堆内存here的仪表演示


0
投票

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我希望这能帮到你:)

© www.soinside.com 2019 - 2024. All rights reserved.