问题标签 [jmc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
781 浏览

tomcat - 如何在不重启tomcat的情况下执行JMX监控

我想知道是否有可能在不重新启动我的 TOMCAT 服务器的情况下配置 JMX 监控,因为它仍在工作

我想在 setenv.sh 文件中添加以下命令

我还想使用 SSL 建立安全连接,但我不知道创建和导入证书

0 投票
2 回答
223 浏览

java - Java Mission Control 空格是什么意思?

我想分析我的课程,它就像一个缓冲区,我保存用户数据并在之后获取它。我已经创建了 main 方法并在那里无限循环地运行测试方法。

msgSeqNum 是全局变量,我这样做是为了让 JVM 不删除我的调用(我认为它可以帮助我)。

我对它进行了 30 秒的分析,但正如我所见,我的代码运行了大约 40 次(我预计会有几千次)。我还看到了 JMC 中的空格(见截图),这表明我的 JVM 什么也没做。没有 GC、异常、外观、等待时间,我的代码运行速度非常快。

我尝试运行它几次,但我得到了相同的结果。为什么会这样?

操作系统 - 窗口

0 投票
3 回答
1934 浏览

java - JMC Flight Recording是否强制Full GC?

我在 OSB 中实现的服务中遇到了一些与性能相关的问题(大部分时间都可以正常工作,并且不时会出现从 100 毫秒到 4/5 秒的响应时间峰值,没有明显的原因)。解释这种情况的假设之一是 JVM 可能在这些峰值期间执行 Full GC,我们正在使用任务控制监视 JVM。

管理员告诉我,jvm 正在使用 G1GC 禁用完整 gc 运行,我可以在启动命令中看到:

此外,当我分析 gc 日志时,没有执行 Full GC 的日志记录,我只能找到(根据这些配置,这很有意义):

但是,当我在 jmc 中打开飞行记录器并开始一些负载测试时,我立即注意到正在执行 Full GC

完整的 GC 示例

我可以在日志中看到它:

一旦我禁用飞行记录器,我就可以一遍又一遍地运行完全相同的负载测试,并且日志中不会记录 Full GC。

我在这里遗漏了什么,还是 Flight Recorder 真的强迫 JVM 执行 Full GC?

问候

0 投票
1 回答
1161 浏览

java - 如何在 Java Mission Control 中分析异常?

在启用跟踪所有异常的情况下执行“飞行记录”时,我发现 JMC 存在不愉快的行为。

录制到面板后:

  • 代码 -> 异常
  • 事件->直方图->“事件类型”作为“Java应用程序/Java异常”和“分组依据”作为“类”

列出的不是所有抛出的异常,而是所有创建的异常(作为对象)。

有一种方式(或插件)可以在分析过程中生成抛出的异常列表?

问候

0 投票
0 回答
346 浏览

java - Java 8 - 进程启动几周后无法附加到 VM

我有一个生产环境(RHEL 7、Java 1.8.0_102-b14),其中运行着许多 JBoss(EAP 7)、Tomcat(8)和独立进程。自我们上次发布 18 天以来,我们所有的流程都在运行。我无法使用 Attach API 连接到 JBoss 和独立进程。下面的 jstack 或简单附加失败。所有这些方法都适用于我的 Tomcat 进程或我启动的任何新进程。

这个问题不会影响任何正在运行的进程,但我们的监控软件不再起作用。

我的 tomcat 进程都响应正常,如果我启动任何新的 JBoss 或独立进程,我也可以连接到它们。该进程加载的库集似乎没有任何区别。我的 JBoss 进程的线程数约为 2k,客户端进程以 ~490 运行,tomcat 进程以 ~270 运行。

这是jstack错误:

我“可以”在本地机器上使用 JMC 进行连接,但响应和加载视图需要几分钟时间。如果我在 jstack 中使用“-F”选项,它会在挂起之前产生以下输出

我已经让这个运行了,它还没有附加,但如果有,我会更新帖子。

我计划在本周末发布一个版本,并且能够重新启动我怀疑会修复它的所有进程,但这不是一个长期的解决方案。在下一个版本中,我将尝试将“-XX:+StartAttachListener”标志添加到我们所有的进程中,看看是否有帮助,但可能难以重现。

更新 #1:运行 'kill -3' 确实会转储正在运行的线程,我可以看到 AttachListener 正在一个没有响应的进程上运行:

我没有看到任何死锁的线程。

更新#2

JBoss、Standalone、Tomcat 进程之间存在我没有考虑过的差异。JBoss EAP 7 通过它的管理端口公开了一个 JMX 连接。您可以通过使用引导类路径上的 jboss-client.jar 运行 JMC 来连接到它。对于 Tomcat,我使用以下参数显式公开 jmx,以便我可以远程管理它。启用 jmxremote 是否有可能以某种方式使本地 JMX 附加侦听器保持响应状态?

0 投票
2 回答
328 浏览

java - Java Flight Control - 保留最后 N 分钟记录数据

如果可以在连续记录下仅保留最后 N 分钟的数据,有人可以让我知道通过 Java Mission Control 启动的 Java Flight Control 吗?

我已经完成了这个讨论,但我无法找到我必须在哪里传递disk=true参数。我一直在使用的选项如下所示。

在此处输入图像描述

环境:-

  • 爪哇 8
  • Mac OS X
  • Java 任务控制 5.5.1 (M5.5.1-15, 172852)
0 投票
1 回答
587 浏览

java - 如何在 JMC 控制台中获取阻塞语句的堆栈跟踪?

我正在使用 Java Mission Control 来分析我的应用程序。“线程”选项卡中的有用指标包括每个线程被阻塞的次数。但是,我似乎无法找到一种方法来获取哪些代码线程被阻塞。有没有办法——以编程方式或通过 JMC——找出阻塞发生的位置?

0 投票
0 回答
166 浏览

java - 将 Java Mission Control 连接到 AWS EC2 实例

我有一个在 AWS EC2 实例(Amazon Linux AMI:Fedora)上运行的 java 应用程序。我正在为我的应用程序进行性能测试,我已经使用 JMC 和我的本地和远程服务器对其进行了测试,我将使用基本身份验证登录;但我在 JMC 控制台中没有看到任何使用证书连接到远程服务器的选项。

我想知道是否有一种方法可以从本地 JMC 控制台连接到 EC2。我是 AWS 环境的新手。任何帮助,将不胜感激。谢谢

0 投票
0 回答
114 浏览

java - Jrockit Old Collection 中扫频切换期间的长时间停顿

我在 Jrockit 中对旧集合进行扫描切换期间面临长时间停顿的问题,这使我的应用程序在几秒钟内没有响应

Jrockit 版本:R28.3.12-8

配置:

日志:

我的应用程序通常需要不到 1 秒的时间来完成旧集合,我可以看到普通旧集合和这次采用旧集合之间的唯一区别是,当在正常收集期间创建托儿所时,它在第一次创建时被赋予 2GB,而在长期运行的一个托儿所分配 2GB 是两部分

普通的:

长时间运行:

提前感谢您的任何帮助

0 投票
2 回答
1277 浏览

java - Java Mission Control - 访问被拒绝连接到远程

我无法使用Java Mission Control连接到远程 VM 。我可以相对轻松地使用VisualVM进行连接。我想使用 Mission Control 的原因是由于一个长期存在的错误,即每当重新启动远程 VM 时都必须重新启动 VisualVM。因此,远程 JMX 连接所涉及的大部分工作已经就位。

我已经按照此处的说明增强了任务控制的配置:https ://technology.first8.nl/using-mission-controle-for-remote-profiling/

Java 版本: 1.7.0_79-b15

JVM参数:

我正在使用身份验证和 SSL,因为这是在生产环境中使用的。JMX 服务器和 RMI 端口不同,因为出于某种原因,我无法让它们在同一个端口上工作。

自定义 JMX 远程访问jmxremote.access

每当我尝试连接到Flight Control控制台时,我都会收到以下消息:

这对我来说毫无意义,因为身份验证和授权在 VisualVM 中正常工作,事实上,在连接 Mission Control 时,我在服务器日志中看到了这一点:

我认为禁用 LDAP 服务器 SSL 是安全的,因为它不会暴露在 VPS 之外(欢迎反馈)。如您所见,我将消息“身份验证成功”和“将 UserPrincipal “controlRole”添加到主题”作为确认消息,它正在工作,但任务控制不同意。似乎没有任何javax.management.*特定的日志消息表明出了什么问题。