java jvm heap dump及 thread dump分析

1、概念:java

在进行java应用故障分析时,常常须要分析内存和cpu信息,也就说所谓的heap dump 和 thread dumplinux

 

heap dump:数据库

 heap dump文件是一个二进制文件,须要工具heap analyze打卡查看,主要查看那些占用了太多堆栈空间的内存信息。windows

thread dump:工具

文本文件,记录进行具体的运行信息,能够看到在那一点那一行所耗时最多,如数据库查询,长页面等,能够经过分析多个文件,查找发现问题的共同点来确认代码所在问题点。性能

 

2、利用JDK自带工具获取thread dump 和 heap dumporm

 

工具:jmap 、jstack对象

1.获取heap dump文件进程

        windows下切换到JDK_HOME/bin/,执行如下命令:jmap -dump:format=b,file=heap.hprof 2576 内存

        linux下切换到JDK_HOME/bin/,执行如下命令:./jmap -dump:format=b,file=heap.hprof 2576

        这样就会在当前目录下生成heap.hprof文件,这就是heap dump文件。

2.获取thread dump文件

        windows下执行:jstack 2576 > thread.txt

        linux下执行:./jstack 2576 > thread.txt

windows/linux则会将命令执行结果转储到thread.txt,这就是thread dump文件。有了dump文件后,咱们就能借助性能分析工具获取dump文件中的信息。

 

3.若是咱们只须要将dump中存活的对象导出,那么能够使用:live参数

jmap -dump:live,format=b,file=heapLive.hprof 2576   

说明:如上实例的2576是我当前须要分析的java进程PID

相关文章
相关标签/搜索