Java 飞行记录器 Docker 容器

Java 飞行记录器 Docker 容器

我想使用 JFR 对 Docker 容器内的 Java 应用程序进行性能分析。我该怎么做?我想要分析的应用程序不是我的,所以我无法更改 Dockerfile 或任何源代码。

Docker 运行命令:

docker run -itd --privileged --memory="_g" --cpuset-cpus x-y -p 
p1:p1 -p p2:p2 -p p3:p3 -p p4:p4 -p p5:p5 --net=host -v 
<hostDirectory>:<containerDirectory> --name=<containerName> <image>

答案1

如果 Java 应用程序在较新的 JDK 上运行,您可能能够使用 jcmd 附加到该进程并开始录制,即

jcmd <pid> JFR.start name=test
jcmd <pid> JFR.dump name=test filename=recording.jfr

相关内容