docker 导出堆文件

1: 进入容器

   docker  exec -it  容器id/容器名称   sh

jps 查看jar进程编号, 此时默认为1, 1-5 为liunx进程编号, jmap或者 jstack 进程id无法获取

错误如下图所示:

解决方法:

  docker-compose  添加参数:  pid: "host" 

  将PID设置为主机PID模式, 跟随主机系统共享进程命名空间

  k8s 中为  hostPID: true

如下图所示:

docker-compose 添加参数后, 重新部署此服务

docker-compose stop   management

docker-compose rm     management

docker-compose up -d management

服务重新部署后进入容器查看:

命令生成堆文件:

jmap -dump:live,format=b,file=m.hprof   PID

jmap -dump:live,format=b,file=m.hprof   59229

 生成的文件如下图所示

将容器内的文件copy到宿主机:

docker  cp  -a  docker_management_1:/root/m.hprof   /dump/

容器名称:  docker_management_1

容器内文件存储路径及文件名:/root/m.hprof

宿主机存储路径: /dump/,  此文件夹为自己新建

如下图所示:

下一步就将此文件下载,   使用 Memory Analyzer 工具进行dump文件的分析了

      Memory Analyzer 大概介绍:JVM故障分析及性能优化实战(VI)——JVM Heap Dump(堆转储文件)的生成和MAT的使用 - 云+社区 - 腾讯云

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值