[英]Get GC log data from the Docker container using jstat
我有一个 java 应用程序在带有 OpenJDK11 的 docker 容器内运行。 我想使用jstat
工具从这个应用程序中获取 GC 数据。 知道如何从主机或同一主机上的另一个容器中实现这一点吗?
谢谢:)
这些进程在主机上是可见的,因此如果您知道主机看到的 pid,则jstat -gcstat <pid>
可以在主机上工作。
您可以通过docker inspect -f '{{.State.Pid}}' <container name>
获取容器 pid-1 的主机 pid,然后遍历进程树(例如,通过/proc
或封装该逻辑的一些库) 找到 java 子进程然后调用 jstat。
另一种选择是(部分)通过nsenter
或docker exec
加入容器的命名空间,然后在容器内执行jps
和jstat
。 但如果您不信任容器,这可能是一个安全问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.