zoukankan      html  css  js  c++  java
  • 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频繁发生。

  • 相关阅读:
    Java接收Cordys中webservice接口的返回数据并解析xml获取相应节点数据
    初识jenkins之-jenkins的安装与配置
    Linux(centos6.8)下Tomcat的安装与配置
    [置顶] Linux下(centos6.8)JDK1.8的安装与配置
    小白五一期间个人建站
    声明一些事
    js中apply()的用法淺談
    angularJS中的服务
    PHP中的常用关键字
    PHP中三大特性---继承性
  • 原文地址:https://www.cnblogs.com/thinkingandworkinghard/p/14313755.html
Copyright © 2011-2022 走看看