Dump文件是进程的内存镜像,可以把程序的执行状态通过调试器保存到dump文件中。主要是用来在系统中出现异常或者崩溃的时候来生成dump文件,然后用调试器进行调试,这样就可以把生产环境中的dmp文件拷贝到自己的开发机上,调试就可以找到程序出错的位置。
1、查看正在运行的容器id
docker ps
2、拿到容器id,进入容器
docker exec -it CONTAINER_ID /bin/bash
或 docker exec -it CONTAINER_ID /bin/sh(上一个命令报错的情况下尝试)
3、在容器内查询进程
ps -ef|grep java
4、生成dump文件(文件名前可以加路径)
jmap -dump:live,format=b,file=m.hprof PID
文件名(m.hprof)
5. JDK1.8以下,使用jdk自带的jvisualvm.exe程序来查看内存溢出文件,在bin目录下
JDK1.8以上,不再集成,可从从官网下载独立版https://visualvm.github.io/index.html,或者安装JDK1.8版本
6. top命令,top是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况
7. 点击file/Open Heap Dump…,打开下载到本地的.hprof文件,打开之后,点击finish,分析过程比较慢需要一段时间。
8. 点击Leak suspects
9. 查看第一个占用内存大的问题的堆栈信息
10. 具体的堆栈信息,此信息跟idea和eclipse的控制台报错信息一致,可自己分析代码问题,也可以看问题详情
文章转载自琢磨先生DataBase,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
60分钟部署Oracle 21c RAC
王先生
247次阅读
2025-03-04 16:31:52
玩转DeepSeek系列:使用OCI GPU快速部署推理模型
甲骨文云技术
98次阅读
2025-03-03 09:46:33
EMQX MCP Server:实现 Claude 与 MQTT 交互新可能
EMQX
42次阅读
2025-03-07 10:29:52
docker下mysql升级
在路上
37次阅读
2025-03-02 19:55:18
如何使用 RisingWave 和 PuppyGraph 构建高性能实时图分析框架
RisingWave中文开源社区
29次阅读
2025-03-18 10:49:54
详细到没朋友的 NebulaGraph 桌面版部署指南
NebulaGraph 技术社区
25次阅读
2025-03-07 10:29:53
一键部署 GPU Kind 集群,体验 vLLM 极速推理
Se7en的架构笔记
20次阅读
2025-03-24 09:41:41
NineData 社区版初体验,大超预期
老叶茶馆
16次阅读
2025-03-18 10:45:49
基于openEuler的AI应用的一个典型案例分析
OpenAtom openEuler
14次阅读
2025-03-18 10:46:12
云原生时代的JVM调优:从被K8s暴打到优雅躺平
码哥跳动
11次阅读
2025-03-05 08:39:21