我想使用 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