堆内存溢出定位(Heap Dump)

配置 jvm 参数,内存溢出时会自动HeapDump(指定 dump 文件路径是可选的)

-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home

或者用 jmap

jmap -dump:format=b,file=<filename.hprof> <pid>

必要时将dump文件从容器中拷贝到物理机

# docker cp <container_name>:<container_path>  <local_path>

docker cp 4d09feaf6483:/home/java_pid8.hprof /work
# kubectl cp default/POD_NAME:bin/FILE_NAME /Users/username/FILE_NAME

kubectl cp default/docker-sample-799db6c8d7-mqwww:/home/java_pid8.hprof /home/K8S/java_pid8.hprof

MAT(Memory Analyzer Tool) 定位堆内存溢出问题

下载安装 MAT(Memory Analyzer Tool),这个软件是 eclipse 基金会搞的。

打开 MAT -> File -> Open Heap Dump -> 选择对应 .hprof 文件

MAT 1

点击查看 leak suspects(泄露嫌疑人),分析内存泄露

MAT 2

点击这个 Problem Suspect1Details,在 Shortest Paths To the Accumulation Point (到达累积点的最短路径)点击 java.lang.Object[360145] ,选择

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值