问题标签 [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.
tomcat - 如何在不重启tomcat的情况下执行JMX监控
我想知道是否有可能在不重新启动我的 TOMCAT 服务器的情况下配置 JMX 监控,因为它仍在工作
我想在 setenv.sh 文件中添加以下命令
我还想使用 SSL 建立安全连接,但我不知道创建和导入证书
java - Java Mission Control 空格是什么意思?
我想分析我的课程,它就像一个缓冲区,我保存用户数据并在之后获取它。我已经创建了 main 方法并在那里无限循环地运行测试方法。
msgSeqNum 是全局变量,我这样做是为了让 JVM 不删除我的调用(我认为它可以帮助我)。
我对它进行了 30 秒的分析,但正如我所见,我的代码运行了大约 40 次(我预计会有几千次)。我还看到了 JMC 中的空格(见截图),这表明我的 JVM 什么也没做。没有 GC、异常、外观、等待时间,我的代码运行速度非常快。
我尝试运行它几次,但我得到了相同的结果。为什么会这样?
操作系统 - 窗口
java - JMC Flight Recording是否强制Full GC?
我在 OSB 中实现的服务中遇到了一些与性能相关的问题(大部分时间都可以正常工作,并且不时会出现从 100 毫秒到 4/5 秒的响应时间峰值,没有明显的原因)。解释这种情况的假设之一是 JVM 可能在这些峰值期间执行 Full GC,我们正在使用任务控制监视 JVM。
管理员告诉我,jvm 正在使用 G1GC 禁用完整 gc 运行,我可以在启动命令中看到:
此外,当我分析 gc 日志时,没有执行 Full GC 的日志记录,我只能找到(根据这些配置,这很有意义):
但是,当我在 jmc 中打开飞行记录器并开始一些负载测试时,我立即注意到正在执行 Full GC
我可以在日志中看到它:
一旦我禁用飞行记录器,我就可以一遍又一遍地运行完全相同的负载测试,并且日志中不会记录 Full GC。
我在这里遗漏了什么,还是 Flight Recorder 真的强迫 JVM 执行 Full GC?
问候
java - 如何在 Java Mission Control 中分析异常?
在启用跟踪所有异常的情况下执行“飞行记录”时,我发现 JMC 存在不愉快的行为。
录制到面板后:
- 代码 -> 异常
- 事件->直方图->“事件类型”作为“Java应用程序/Java异常”和“分组依据”作为“类”
列出的不是所有抛出的异常,而是所有创建的异常(作为对象)。
有一种方式(或插件)可以在分析过程中生成抛出的异常列表?
问候
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 附加侦听器保持响应状态?
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)
java - 如何在 JMC 控制台中获取阻塞语句的堆栈跟踪?
我正在使用 Java Mission Control 来分析我的应用程序。“线程”选项卡中的有用指标包括每个线程被阻塞的次数。但是,我似乎无法找到一种方法来获取哪些代码线程被阻塞。有没有办法——以编程方式或通过 JMC——找出阻塞发生的位置?
java - 将 Java Mission Control 连接到 AWS EC2 实例
我有一个在 AWS EC2 实例(Amazon Linux AMI:Fedora)上运行的 java 应用程序。我正在为我的应用程序进行性能测试,我已经使用 JMC 和我的本地和远程服务器对其进行了测试,我将使用基本身份验证登录;但我在 JMC 控制台中没有看到任何使用证书连接到远程服务器的选项。
我想知道是否有一种方法可以从本地 JMC 控制台连接到 EC2。我是 AWS 环境的新手。任何帮助,将不胜感激。谢谢
java - Jrockit Old Collection 中扫频切换期间的长时间停顿
我在 Jrockit 中对旧集合进行扫描切换期间面临长时间停顿的问题,这使我的应用程序在几秒钟内没有响应
Jrockit 版本:R28.3.12-8
配置:
日志:
我的应用程序通常需要不到 1 秒的时间来完成旧集合,我可以看到普通旧集合和这次采用旧集合之间的唯一区别是,当在正常收集期间创建托儿所时,它在第一次创建时被赋予 2GB,而在长期运行的一个托儿所分配 2GB 是两部分
普通的:
长时间运行:
提前感谢您的任何帮助
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.*
特定的日志消息表明出了什么问题。