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

7nbnzgx9  于 2022-11-23  发布在  Docker
关注(0)|答案(1)|浏览(238)

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

cyvaqqii

cyvaqqii1#

进程在主机上是可见的,因此如果您知道主机看到的pid,jstat -gcstat <pid>就可以在主机上工作。
您可以通过docker inspect -f '{{.State.Pid}}' <container name>获得container-pid-1的host-pid,然后遍历进程树(例如,通过/proc或封装该逻辑的某个库)以找到java子进程,然后调用jstat。
另一种选择是通过nsenterdocker exec(部分地)加入容器的名称空间,然后在容器内部执行jpsjstat

相关问题