【问题标题】:How can I monitor Tomcat with jvisualvm, showing visualgc?如何使用 jvisualvm 监控 Tomcat,显示 visualgc?
【发布时间】:2011-08-05 23:23:03
【问题描述】:

我已经仔细检查了以下内容:

  • 我在运行 Tomcat 的同一个机器上运行 jvisualvm。
  • 这是 Java 6u19。
  • 我的 Tomcat 服务正在以我登录时的同一用户身份运行。
  • 我的 Tomcat 服务使用的 JVM 目录与我使用 jvisualvm 的目录完全相同。
  • Tomcat 在特定端口上启用了 JMX,但我认为这对我没有帮助。

通过所有这些,我确实在 jvisualvm 的“本地”列表中看到了我的 Tomcat 进程。它显示为“ (pid 5644)”。如果我双击它,那么每个选项卡都会显示“此 JVM 不支持”。但是,VisualVM 显示在“本地”中,并且所有选项卡都适用于它,显然使用相同的 JVM 实例。没有明显的方法可以将 JMX 连接添加到“”实例。

我确实在“本地”中看到 Tomcat 的 JMX 实例为“localhost:(我的端口号)”,这是可行的,但 Visual GC 选项卡显示“不支持此 JVM”,我认为这意味着 Visual GC 不能通过 JMX 工作。

我做错了什么?我试过启动 jstatd。它没有任何区别。当我启动 jstatd 时,visualvm 会看到一个“本地”“jstatd”,但是当我双击它时,它似乎只是监视该 jstatd 进程而不是任何其他 Java 进程。

注意:我决定尝试不将 Tomcat 作为服务运行,而是直接在 CMD 窗口中运行,中提琴,现在 visualvm 可以完美运行。当我运行“jps”并收到投诉“处理信息不可用”时,我想我会尝试这个,然后用谷歌搜索,发现有人说他们在运行任何 Java 应用程序作为服务时得到了这个。这有助于测试平台,但无助于弄清楚如何监控生产系统。

这是在 Windows Server 2003 上的 Tanuki 包装器下作为 Windows 服务运行的 Tomcat。

【问题讨论】:

    标签: java tomcat monitoring visualvm


    【解决方案1】:

    从您的描述中可以清楚地看出,Jvmstat 不知何故坏了。 Jvmstat 被 Visual GC、jps 和 VisualVM 使用。您在“本地”节点下将 Tomcat 视为无法识别的应用程序的原因意味着 VisualVM(通过 jvmstat)检测到正在运行的 Java 应用程序,但无法获取有关它的任何数据。这可能与您将 Tomcat 作为 Windows 服务运行这一事实有关。您可以尝试退出所有 java 应用程序并删除位于 %TMP% 目录中的 hsperfdata_{your_user_name} 目录,然后重新启动 Tomcat 和 VisualVM。如果 Tomcat 在“Local”节点下被正确识别,Visual GC 也可以工作。如果失败,启动 Tomcat 并运行 jps:

    jps -J-Djps.debug=true -J-Djps.printStackTrace=true
    

    并发布输出。这可以告诉我们,为什么 jvmstat 无法从 Tomcat 读取信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 2018-06-24
      相关资源
      最近更新 更多