gpt4 book ai didi

java - 使用 VisualVM 分析 tomcat 应用程序

转载 作者:搜寻专家 更新时间:2023-10-31 19:44:11 26 4
gpt4 key购买 nike

我正在尝试在用户名 tomcat6 下运行 visualvm,因为显然 visualvm 只能找到在其用户名下运行的应用程序。所以默认情况下它只查找以我的用户名运行的应用程序。我已经能够通过 jmx 将 visualvm 与 tomcat6 连接起来,但这缺乏检测分析的精细粒度。

我尝试了以下操作以用户名 tomcat6 运行 visualvm,但出现了以下我不理解的错误。

$ sudo -u tomcat6 jvisualvm
No protocol specified
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
...

最佳答案

如果运行您的应用程序的计算机是远程的(例如服务器),那么您需要做一些工作才能运行 GUI 应用程序。启用对 VisualVM 的远程访问可能会更容易。

您可以使用两种技术连接到远程 JVM:使用 jstatd 或使用 JMX。我不确定您认为使用 JMX 会损失什么,但显然 jstatd 不允许您访问分析工具、CPU 监视器等)。

您需要配置 JVM 和 Tomcat 以允许远程访问。这需要 3 个步骤:

  1. 启用远程 JMX。原来,there's a guide for that .

  2. 修复用于 RMI 的“漫游端口”。有一个 guide for that ,也是。

  3. (可选)安排对服务器的安全远程访问。最简单的方法是使用带有一系列 -L 参数的 ssh -Lport:localhost:port 将多个端口从您的工作站转发到您的服务器。映射您在步骤#1 和#2 中必须配置的所有端口。如果您不这样做,您将需要对上述所有端口具有非防火墙访问权限。

  4. 重新启动 JVM 并连接 JVisualVM。

更新 2022-06-01

请注意,“漫游端口”问题已在 JVM 级别修复,因此不需要应用程序(即 Tomcat)支持它。 Item #1 for Tomcat 8.5之后包含更新的说明,使项目 #2 对于最近的 JVM 变得不必要。

关于java - 使用 VisualVM 分析 tomcat 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39028824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com