zoukankan      html  css  js  c++  java
  • java jvm heap dump及 thread dump分析

    一、概念:

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

    heap dump:

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

    thread dump:

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

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

    工具: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

  • 相关阅读:
    SAP 锁对象
    smartforms取消word为默认编辑器
    abap 配置 zconfig
    Ant步步为营(1)解压本地的zip包
    点击页面出现文字动画
    js简单实现累加
    github发布线上项目
    jsonp的实现
    js操作class
    js开发实用技巧
  • 原文地址:https://www.cnblogs.com/netsa/p/8961137.html
Copyright © 2011-2022 走看看