• mat工具记录一次full gc的过程


           最近两天线上的一个job服务持续的报full gc问题,运维的同事把dump文件给我们导了出来。2个多g,把自己使用mat 分析的过程记录下。

           下载mat工具,官网下载:https://www.eclipse.org/mat/

           自己的是mac,下载后解压。自己遇到个问题:解压后直接打开文件,会提示异常,需要去日志查询。日志显示的是需要在启动配置里面 添加-data,但是把哪个解压后的文件放到应用里面,启动是正常的。

           好了之后,打开运维给的dump文件,提示 文件过大。这个时候修改应用里面的mat工具。具体方法为:

         

       

     3.

      修改最大值后

    -startup
    ../Eclipse/plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar
    --launcher.library
    ../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.1100.v20190907-0426
    -vmargs
    -Xmx2048m
    -Dorg.eclipse.swt.internal.carbon.smallFonts
    -XstartOnFirstThread

    把-Xmx1024 修改为 2048m.

    好了之后,打开dump文件。大约需要几分钟

      

     打开后是上图所以,主要是看Dominator_tree

     

        发现有一个线程名wecaht-offcial-pool 开头的线程名字把heap占满了,点开任意一个如下图:

      

     发现是一个list对象占满了,然后找代码。。。

      最后发现这是一个跑公众号,查询关注信息的job。近期随着关注的人增多,程序里面处理时候对象太大了导致full gc频繁发生。

  • 相关阅读:
    day⑥:logging模块
    day⑥:shelve模块
    day⑥:xml模块
    day⑤:冒泡排序
    day⑤:模块
    day⑤:re深入
    day④:递归
    day④:迭代器
    day④:装饰器
    day③:函数式编程
  • 原文地址:https://www.cnblogs.com/thinkingandworkinghard/p/14313755.html
Copyright © 2020-2023  润新知