问题标签 [java-mission-control]

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 回答
40 浏览

java - 有没有办法像在 JMC 5.x 中一样查找在 JMC 7.x 中分配的 TLAB 总数?

在 Java Mission Control 5.x 中,您可以轻松查看已分配 TLAB 的总大小。请参阅此图像右下角的“分配摘要”。

在此处输入图像描述

在 Java Mission Control 7.x 中,我找不到找到这种高级信息的简单方法。我可以按块查看 TLAB,并大致了解大量 TLAB 分配的时期,但我找不到分配的 TLAB 总数。 JMC 7.7 TLAB 视图

JMC 7.x 中有没有办法查看录制期间分配的 TLAB 的总大小?

0 投票
0 回答
63 浏览

java - Java Flight Recording 不报告 Java Mission Control 中的死锁

我试图模拟一个死锁情况,我将使用 Java Flight Recorder 记录并使用 Java Mission Control 进行检查。

由于某种原因,阻塞的线程未在线程部分下标记为阻塞,Java 任务控制部分中的自动分析也不会报告死锁情况

同时,收集到的线程转储清楚地表明线程被阻塞并发现了 1 个死锁

我正在使用具有所有默认设置的标准“分析”指标预设。

我试图了解我在哪里做错了,这使得死锁情况在 Java Mission Control 中变得如此不明显

阻塞线程看起来像活动 线程转储检测到死锁

0 投票
1 回答
467 浏览

java - 转储部分 Java Flight Record

假设我使用以下标志为我的 JVM 配置了连续飞行记录

据我了解,此配置在热点事件的内存中最多存储 200mb,达到限制时丢弃最旧的。

要转储我正在使用JFR.dump命令的记录,请通过jcmd. 还有一种通过任务控制提取记录的替代方法,但由于其中的一个错误,我没有成功提取在任务控制的 JVM 之外运行的记录。令人惊讶的是,MBean 服务器管理工​​作正常。

无论如何,我看到可以通过任务控制通过“转储”功能指定从连续记录转储的间隔范围,例如从 2021-01-01 13:00:00 到 2021-01-01 14:00: 00. 假设当前时间为 2021-01-02 17:00:00。如何通过 指定相同的间隔JFR.dump?查看JFR.dump参考,没有任何标志可以做到这一点。那么任务控制是如何做到的呢?

注意:我使用的是 JMC 8 和 Oracle JDK 11 0 10u8。

0 投票
0 回答
29 浏览

java - Java 任务控制在尝试分析正在运行的应用程序的堆转储时出错 - java.lang.Integer 无法转换为 com.'sometxt'.JavaHeapObject

眼镜:

  • Java JDK 8u212,我也尝试将 8u91 添加到我的 JVM 文件夹中
  • JMC 8.0.1、JMC 8 作为独立版本,都出现此错误 - 我使用这些作为默认的 JMC 在启动时冻结,这是一个已知错误(v. 7...?)

正如标题所述,当尝试在 Java 任务控制中的应用程序上运行堆转储时,我收到如下错误:

我不确定这意味着什么或该怎么做。我看到的所有其他 stackoverflow 帖子都与将字符串转换为整数或类似的东西有关。这似乎不同。另外,很遗憾,我无法发布代码,因为它属于我的公司,但我可以说的是,这东西已经投入生产一段时间了,所以代码不太可能是坏的。

如果您需要更多信息,请告诉我。

0 投票
0 回答
51 浏览

java - java - 如何使用java任务控制找到最耗时的方法?(不是专门的 CPU)

我有一个在 tomcat 8.5 上运行的 spring 批处理应用程序。这批处理大量数据,例如一千万条记录,而且速度太慢。我想找到最耗时的部分,例如数据库查询 EG、套接字 IO、线程阻塞或等待、CPU 消耗或可能会减慢应用程序速度的垃圾收集。我对 jdbc 查询 EG、套接字 IO 大多持怀疑态度。我尝试使用本地分区来扩展它并为 tomcat 提供更多内存并增加 spring 批处理设置中的提交间隔。我查看了 Jmc 中的 socketIO 选项卡并记录了它显示的一种方法的执行时间,但它只需要 15 到 30 毫秒。另一个问题是 Jmc 只显示百分比而不是确切的时间。所以,我无法弄清楚需要多长时间。我有点困惑。
提前非常感谢。

0 投票
0 回答
8 浏览

java - 在 Docker 中将 Java Mission Control 连接到 Flink App

我正在尝试使用--scaledocker-compose 选项在几个基于 docker 的 Flink 任务管理器中公开 JMX,以便与 Java Mission Control 一起使用。(例如 docker-compose docker/flink-job-cluster.yml up -d --scale taskmanager=2

我的基本问题是,即使我已经配置了 jmx,

来源:https ://github.com/aedenj/apache-flink-kotlin-starter/blob/multiple-schemas/conf/flink/flink-conf.yaml

然后像这样映射 docker-compose 文件中的端口,

来源:https ://github.com/aedenj/apache-flink-kotlin-starter/blob/multiple-schemas/docker/flink-job-cluster.yml

我无法使用任何端口将 Java Mission Control 连接到任务管理器。例如localhost:10000localhost:10001等等。但是我可以使用连接到作业localhost:9999管理器,并且如果我单独明确设置端口,我只能连接到任务管理器。不使用 docker-compose 文件中的动态端口映射。理想情况下,端口映射会起作用,所以我可以继续使用--scaledocker-compose 的命令。