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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在apache tomcat中查找Web应用程序的内存使用情况相关的知识,希望对你有一定的参考价值。

我正在开发一个项目,我需要找到部署在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进行测试。

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

另一答案

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

以上是关于如何在apache tomcat中查找Web应用程序的内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Apache-Tomcat Web 应用程序中获取浏览器 URL?

如何在apache 配置虚拟目录

如何更改 Apache Tomcat Web 服务器端口号 [关闭]

Apache Tomcat 应用程序的默认会话超时

如何在Linux下使用Tomcat部署Web应用(图文)

Apache Ant + Ivy 构建了一个部署到本地 Tomcat 的 Web 应用程序