0

我有一个在 OpenJDK11 的 docker 容器中运行的 java 应用程序。jstat我想使用工具(在容器中可用)从此应用程序获取 GC 数据。知道如何从主机或在同一主机上运行的另一个容器实现这一点吗?

谢谢 :)

4

1 回答 1

0

这些进程在主机上是可见的,因此jstat -gcstat <pid>如果您知道主机所看到的 pid,则可以在主机上工作。

您可以通过获取容器 pid-1 的主机 pid,docker inspect -f '{{.State.Pid}}' <container name>然后遍历进程树(例如,通过/proc或封装该逻辑的某些库)以找到 java 子进程,然后调用 jstat。

另一种选择是(部分)通过nsenteror加入容器的命名空间docker exec,然后在容器内执行jpsand jstat。但如果您不信任容器,这可能是一个安全问题。

于 2021-11-18T20:44:26.437 回答