dump文件介绍
Dump文件是进程或系统在给定时间的快照,
例如当进程崩溃或进程出现其他问题时,
甚至在任何时候,我们都可以使用工具备份系统或进程的内存以进行调试和分析。
Dump文件包含模块信息、线程信息、堆栈调用信息、异常信息等。
程序的执行状态可以通过调试器保存到Dump文件中。
操作流程
生成dump文件分析dump文件
dump文件生成方式
项目出故障时生成 java项目启动参数配置上以下参数,出故障时会生成dump文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/xxx项目名/logs
项目正常运行时生成 通过jps查到目标进程号,再通过jmap命令生成
-- 24336是进程号, dumpfile是导出的文件的命名
jmap -dump:format=b,file=/home/log/dumpfile.hprof 24336
注意事项: 1.生成dump文件可能会导致stop the world, 谨慎使用 2.dump文件貌似比较大(win下只运行项目但没有任何调用量,导出的文件也400多兆) 3.碰到jps等命令用不了的话,先检查下是否有把jdk的bin目录配置到环境变量Path参数中 4.dump文件的后缀:.hprof
dump文件的分析工具
jdk的bin目录下自带的工具jvisualvm.exe
eclipse的MAT工具 下载地址:https://eclipse.dev/mat/previousReleases.php
工具对比: 3. MAT界面有报表更友好,visualVM是JDK自带的更方便 4. MAT下载时需要根据JDK版本号,机器64位或32位选择对应版本,可能需要到.ini配置文件指定JDK的版本。图中选中的是64位的
相关命令
jps jps命令描述
jps 是 Java Process Status Tool 的简称,
它的作用是为了列出所有正在运行中的 Java 虚拟机进程
每一个 Java 程序在启动的时候都会为之创建一个 Jvm 实例,通过 jps 可以查看这些进程的相关信息
jps 是 Jdk 提供的一个工具,它安装在 JAVA_HOME/bin 下