zoukankan      html  css  js  c++  java
  • Linux下快速分析DUMP文件

    dump文件传输到本地进行分析, 常常需要大量的等待时间。 使用IBM的eclipse的MAT工具可以直接在服务器上进行快速DUMP分析。

    运行环境要求

    • linux操作系统
    • JDK8 以上

    下载MAT的linux版本

    Eclipse的MAT工具下载链接
    MAT支持各种操作系统,找到Linux版本下载下来

    # 运行uname -m 看一下linux是 x86_64还是 x86的帮助你选择下载那个版本。
    uname -m
    #x86_64
    
    http://iso.mirrors.ustc.edu.cn/eclipse/mat/1.8/rcp/MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip
    

    解压配置MAT基本参数

    unzip MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip
    ## 修改MAT的内存大小, 注意这个大小要根据你dump文件大小来的,如果dump文件是5GB那么 这里最好配>5GB 否则会报MAT内存不足的异常
    ## 修改MemoryAnalyzer.ini 的 -Xmx6024m 
    vi MemoryAnalyzer.ini
    

    jmap dump整个堆

    想了解更详细的请看这篇博文望闻问切使用jstack和jmap剖析java进程各种疑难杂症

    jmap -dump:format=b,file=jmap.info PID
    

    MAT分析 dump

     ./ParseHeapDump.sh jmap.info  org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components
    

    等待结果….

    结果会生产如下三个zip文件,很小可以直接拷贝到本机

    jmap_Leak_Suspects.zip
    jmap_System_Overview.zip
    jmap_Top_Components.zip
    

    查看报告结果

    有两种查看报告的方法

    • 直接把zip下载到本地,然后解压用浏览器查看index.html
    • 把zip下载到本地, 用MAT可视化工具解析zip

    遇到问题

    Unable to initialize GTK+

    遇到这个问题的话,是因为ParseHeapDump.sh
    里面需要调用GTK的一些东西。解决方法:

    vi ParseHeapDump.sh
    #注释掉 "$(dirname -- "$0")"/MemoryAnalyzer -consolelog -application org.eclipse.mat.api.parse "$@"这一行
    #然后加入下面
    #注意plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar要根据你自己本地的文件名做修改调整
    java -Xmx4g -Xms4g 
    -jar  plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar 
    -consoleLog -consolelog -application org.eclipse.mat.api.parse "$@"
    

    然后继续运行

     ./ParseHeapDump.sh jmap.info  org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components
    

    问题解决

    MAC 如何使用 mat工具

    MAC 版本 Eclipse的MAT工具下载链接
    下载加压缩以后

    #修改内存大小,默认1G不够用
    vi mat.app/Contents/Eclipse/MemoryAnalyzer.ini
    

    运行

    sudo  mat.app/Contents/MacOS/MemoryAnalyzer 
    ## 1、点击最上面的Overview的 tab
    ## 2、点击最先面的 Open a Head Dump 就可以选择加载dump文件了

    转自: http://www.moheqionglin.com/site/blogs/84/detail.html

    经常使用, 故记录于此

  • 相关阅读:
    环境变量
    多重继承
    参数检查(@property)
    限制属性绑定(__slots__)
    实例属性和类属性
    2017-11-28 中文编程语言之Z语言初尝试: ZLOGO 4
    2017-10-23 在各种编程语言中使用中文命名
    2017-11-27 汉化了十数个编译器的前辈的心得体会
    五行
    阴阳
  • 原文地址:https://www.cnblogs.com/wuchangsoft/p/12157038.html
Copyright © 2011-2022 走看看