【问题标题】:How to find memory usage of web applications in apache tomcat如何在 apache tomcat 中查找 Web 应用程序的内存使用情况
【发布时间】:2015-03-09 06:01:01
【问题描述】:

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

【问题讨论】:

  • 那么,您是否有机会找到问题的答案?

标签: apache tomcat memory-management web-applications


【解决方案1】:

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

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

【讨论】:

  • 好的,会调查的。谢谢你:)
【解决方案2】:

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

您无法了解 Web 应用程序正在使用多少内存。 JVM 没有给我们这些细节或信息。

【讨论】:

  • 是否可以监控性能??这是我项目的主要目标。
  • 是的,您可以,有一些外部工具可以帮助您。您可以尝试在 google 上搜索工具,然后您就可以选择您喜欢的工具。以下链接也可能对您有所帮助link我希望此评论将您带入正确的方向
  • 会调查的。谢谢你:)
【解决方案3】:

我会推荐 glowroot 一个非常好的开源 Java 应用程序性能监控 (APM) 工具,您可以在不更改任何 Java 源代码的情况下附加到 Tomcat。

要使用它只需要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 的仪表的演示

【讨论】:

  • 这是一个很棒的工具。感谢您的提示。
【解决方案4】:

Pinpoint、glowroot、java melody、visualVM(JDK自带)、Java Mission Control(JDK自带)可以帮助您了解堆利用率和其他性能参数(如线程利用率、响应时间、瓶颈等) 我最喜欢的是 Glowroot .. :) 它易于安装并提供对应用程序的非常好的洞察力。 演示网址 萤火虫:https://demo.glowroot.org/transaction/average?transaction-type=Web Java旋律:http://javamelody.org/demo/monitoring 我希望这对你有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 2013-06-11
    相关资源
    最近更新 更多