【问题标题】:Identify the running service in Tomcat which use 100% cpu usage识别 Tomcat 中使用 100% cpu 使用率的正在运行的服务
【发布时间】:2012-07-13 06:08:39
【问题描述】:

我的基于 Web 的 Java EE 应用程序基于以下技术:

  • 框架工作:Struts 2.0
  • 服务器:Tomcat 6.0
  • 前端 UI:JSP、JSTL/Struts 标签、HTML
  • 数据库:Microsoft SQL Server 9.00.2047.00
  • 语言:核心 java、XML、XSLT。

现在我面临的问题是我的 Web 应用程序的某些进程会消耗更多的 CPU 使用率。有时我的 Tomcat 服务器会使用 100% cpu;这就是我的电脑挂起的原因。我无法确定哪个进程会导致 100% 的 CPU 使用率。

现在我正在寻找任何第三方应用程序或任何实用程序,它可以为我提供 CPU 使用信息详细信息以及在 Tomcat 中运行的正在运行的进程(服务)的名称。

【问题讨论】:

    标签: tomcat cpu-usage


    【解决方案1】:

    听起来您正在寻找 Java Profiler...我听说过有关 HPROF 的好消息(需要一点时间来适应,但应该提供您需要的所有信息(而且它是免费的)。这里有sun提供的关于HPROF的一些说明。

    http://java.sun.com/developer/technicalArticles/Programming/HPROF.html

    我没有亲自在服务器上运行过它,但我的同事必须找出与您非常相似的问题 - 它应该可以满足您的需求。

    还要记住,观察流程会改变流程的性能 - 所以这不是在生产中运行的东西。见Observer effect

    【讨论】:

    • 嗨 Nick Rippe,首先感谢您的回复,您能帮我了解如何将 HPROF 与基于 j2ee 的 Web 应用程序一起使用 [部署在 tomcat 中]
    • 确切的说明会因操作系统等而有所不同 - 但通常,您需要将 -agentlib:hprof[=options] 添加到您的环境变量中(按照第一个链接中的说明进行操作配置)。这里有一些更详细的信息(特定于 Linux):coderanch.com/t/432949/Performance/java/Tomcat-Heap-Dump-SOLVED
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 2018-03-06
    • 2023-02-11
    • 1970-01-01
    相关资源
    最近更新 更多