在写这个问题之前,我已经读过VisualVM shows "Not supported for this JVM"和"Not supported for this JVM" when attempting to connect to a remote host on VisualVM和VisualVM "not supported for this JVM" on all local applications?。
我的案子与我发现的情况不同。今天之前,我没有在VisualVM
中看到CPU图形(之前使用过几次,总是用于本地启动的应用程序)。今天,我像往常一样启动了Java应用程序,并启动了VisualVM,并且像往常一样,CPU显示“此JVM不支持”。然后,我记得我为在VisualVM中监视的Java进程运行jstat -gc 39814
,并发送了SIGINT
(参见下面的ADDED 2)。然后以与上一个相同的方式启动另一个Java应用程序。当我在VisualVM
中打开该新进程时,令我惊讶的是,现在我看到了第二个应用程序的CPU图形!
为什么会发生这种情况?是jstat
还是SIGINT
(请参阅下面的ADD 2),是某种原因还是其他巧合?您还需要其他信息吗?
MacOS Mojave
Java HotSpot(TM) 64-Bit Server VM (build 13+33,mixed mode,sharing)
启动的应用是JMeter(略有不同的测试计划),具有:
JVM_ARGS="-Xlog:class+unload -Xlog:class+load" jmeter -n -t /path_to/foo.jmx -l cl5_inline_transactions.jtl -j cl5.log -J time=20 -J threads=200 -J steps=4 -J hold=40 1>term5.1.txt 2>term5.2.txt &
已添加:
几次启动Java应用程序,然后再次通过SIGINT
终止它后,我看到CPU“此JVM不支持”。
最后一次与以前的几次不同,在VisualVM即时打开新进程之前的那一刻,“监视”选项卡打开了大约一分钟。现在进入“采样器”选项卡CPU sampling:
Not available. Failed to create JMX connection to target application. Use 'Add JMX Connection' action to attach to the application.
上的最后一个应用程序
并且没有“线程”选项卡。
可能与我的其他问题有关: JVM monitoring: now cannot connect via jconsole (can via VisualVM) "Connection failed: Retry?"
运行jstat
并没有帮助...
添加2:
在阅读visualvm intellij "Failed to create JMX connection to target application" profiling not working之后,注意了回答并提到了错误:
https://bugs.openjdk.java.net/browse/JDK-8023786
那是从2014年开始的,但是谈论的是MacOS的细节和SIGUIT-我回想起今天我发了很多Java进程及其parents processes with signals including
SIGQUIT`信号(在VisualVM开始“工作”之前)。现在可以尝试该方向。