微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker 查看 JVM 状态

查看 docker 进程,获取containerid

docker ps

在这里插入图片描述

进入容器

docker exec -it containerid /bin/bash

有时候直接用上述命令会有以下错误出现,,这个错误说明,该镜像不包含bash的风格操作,没有这样的文件或目录,可能你的镜像基于busyBox,他没有bash shell,但他在/bin/sh 有一个shell,可以使用以下命令调用

OCI runtime exec Failed: exec Failed: container_linux.go:337: starting container process caused “exec: “/bin/bash”: stat /bin/bash: no such file or directory”: unkNown

docker exec -ti containerid /bin/sh

查看 JVM 信息

  • jstack 查看线程堆栈信息
  • jmap 导出内存堆栈信息
  • jstat 统计gc 回收信息
  • jinfo 统计gc 回收信息
    这里可能会出现pid 为1导致openjdk 为8时打印不了堆栈信息,我将dockerfile 的openjdk改为11 后可以,但网上有其他方式解决,详情看:http://www.likecs.com/show-46716.html
    报错信息:Unable to get pid of LinuxThreads manager thread

    在这里插入图片描述

jstack 查看线程堆栈信息示例

jstack app 或者查看下pid 文件上的pid值

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐