问题标签 [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.
java - Java Flight Recorder:它需要 JMX 读写访问权限还是只读权限?
JMX 允许您在一个名为的文件中为用户设置访问权限jmxremote.access
(您可以在 中找到模板<JAVA INSTALL>/jre/lib/management
)。在那里你可以为每个用户指定如果用户有..
或者..
...权限。
现在,我想为 JXM 用户激活此访问控制功能,我通过 JMC 使用它来访问飞行记录器数据——按照默认安全标准,为该用户提供尽可能少的权限。
--> 给用户readonly
权限就足够了,还是Java Flight Recorder还需要在某处写东西?
java - 如何在运行的 JVM 上启用 JMX/管理代理?
我正在尝试从当前运行的 JVM 获取 JMX 指标。我希望能够在运行应用程序时无需在 CLI 上启用它就可以做到这一点。我正在尝试编写一个通用的 CLI 实用程序,但 JConsole 和 JMC 缺少一些功能。JConsole 和 JMC 都这样做。然而,似乎没有任何关于他们如何做到这一点的文档。
java - 如何在 ubuntu 中将 JMC(Java Mission Control)连接到远程 JVM?
我能够在同一系统上将 JMC 连接到 JVM。但是,我想监视远程服务器。如何将本地 JMC 连接到远程 JVM?
aspectj - 将 oracle JMC 与其他 javaagent 一起使用,例如 aspectj
我正在尝试使用 JDK 捆绑的 JMC 飞行记录器来分析我的应用程序
但是,当我在 JVM 参数下应用以启用记录器时:
我所有的 aop 建议似乎都不起作用,看起来代理没有生效:
我想知道是否-XX:+FlightRecorder
有自己的类乐器/增强功能,与aspectj weaver等其他人有冲突?
java - java飞行记录器如何转储异常,FlightRecordingDumpOnUnhandledException
java 版本1.7.0_79
Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, 混合模式)
我使用的参数
错误
使用的正确选项是什么?转储异常记录
java - Java Flight Recoder cmd args 以启用对象统计信息的收集
我正在使用 jvm 的命令行参数列表
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=delay=2m,duration=30m,filename=member.jfr,settings=profile
开始飞行记录。
但是,当我打开 .jfr 录音时。我看到内存视图的对象统计选项卡,未填充
例外选项卡也未填充。
如何通过命令行选项启用对象静态集合。
这不是一个生产系统,所以我不担心额外的开销
我对尽可能多的细节感兴趣。那么什么是最好的命令行设置。
谢谢
jmc - 江铃飞行记录仪不工作
I Java(TM) SE 运行时环境(构建 1.7.0_45-b18)Java HotSpot(TM) 64 位服务器 VM(构建 24.45-b08,混合模式)部署在 Linux 机器上。我能够运行 Java Mission control (JMC),但是我无法从 JMC 运行“飞行记录器”。我收到一条弹出消息:
未启用商业功能。在JDK7u4及以上,JVM必须以-XX:+UnlockCommercialFeatures -XX:+FlightRecorder启动。
我检查了我的 jmc.ini 文件,该文件与 JMC 应用程序本身位于同一 $JAVA_HOME/bin 目录中,它具有以下两个标志:
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
飞行记录器可能有什么问题?
先感谢您。
java - 如何使用 Java Flight Recorder 避免截断堆栈跟踪
我正在使用 Oracle Java Flight Recorder收集 Java 应用程序的堆栈跟踪示例。这些堆栈跟踪使我最终能够生成CPU Flamegraph。
我的问题是超过 64 帧的堆栈跟踪被 Java Flight Recorder 截断。在 Flamegraph 中很容易观察到,使用调试器我可以观察到 noFLRStackTrace
超过 64FLRFrame
秒,并且几乎所有 64 帧的堆栈跟踪都将其 TruncationState 设置为TRUNCATED
。
有谁知道这个 64 帧限制是否可以增加?如果堆栈跟踪不完整,火焰图将毫无用处。
java - Java Flight Recorder 如何对原生帧进行采样 (jni / jna)
我试图了解 Java Flight Recorder 如何对使用本机库的应用程序进行采样(在我的例子中是通过 JNA)。
让我们编写一个将大部分时间花在本土的测试用例:
doStuff 是一个缓慢的、受 CPU 限制的函数
doStuff 在我的机器上执行大约需要 2 秒,而 main 在大约 30 秒内完成。我使用以下 JVM 选项使用 jdk1.8.0_60 运行此测试用例:-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=jna.jfr
.
当我打开时jna.jfr
,我看到转储包含一个堆栈跟踪事件。据我了解,与大多数分析器不同,JFR 在本机代码运行时不会生成堆栈跟踪事件。我完全理解 JFR 不会分析本机代码,但我希望生成堆栈跟踪事件,堆栈跟踪在 java/本机代码边界处被截断。
我的设置有问题还是预期的行为?我发现它真的很容易出错。如果您不仔细验证样本计数,很容易认为热点位于 Java 代码中,而大部分时间都花在本机代码中。
也不可能知道最昂贵的本地调用在哪里,这就是您首先使用分析器的原因:)
java - 如何确定当前使用的远程 RMI 服务器端口
我在想要使用 Java Mission Control 监控的某个远程服务器上运行了一个 java 进程(在 java 7 上)。但是,JMC 无法连接,尽管我可以使用端口 jmx 远程端口(此处为 12345,见下文)远程登录到服务器。
远程java进程开始于
这些对我来说似乎是正确的价值观。防火墙上已经开放了12345端口,但是我怀疑rmi服务器端口被防火墙屏蔽了。
因此,我的问题是:有没有办法(在服务器上使用 netstat 或者甚至从客户端使用 telnet)来确定 java 进程当前在服务器上使用哪个 rmi 服务器端口?(使用 netstat,我看到 java 进程使用了几个端口。但是,我不知道哪个是 rmi 端口。)