使用jstat从Docker容器中获取GC日志数据



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

谢谢:(

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

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

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

最新更新