• 老李案例分享MAT分析应用程序服务出现内存溢出过程

  • 发布时间:2016-01-13 13:32 | 作者:yc | 来源:互联网 | 浏览:1200 次
  • 老李案例分享MAT分析应用程序服务出现内存溢出过程

    另述:

    原先上述第4步找疑问的历程能够简化为在Overview的饼图中颠末遴选Path to GC Roots 来发明JAVA的内存泄漏疑问

    (Pathto GC Roots:被JVM持有的目标,如当前运转的线程目标,被systemclass loader加载的目标被称为GC Roots, 从一个目标到GC Roots的引证链被称为Pathto GC Roots, 颠末剖析Pathto GC Roots能够找出JAVA的内存泄漏疑问,当法度榜样不在拜访该目标时仍存在到该目标的引证道路

    老李事例共享:MAT剖析运用法度榜样效劳出现内存溢出进程

    poptest是海内仅有一家培植测验开拓工程师的练习组织,以学员能担负主动化测验,功能测验,测验器械开拓等事情为方针在poptest的loadrunner的练习中,为了进步学员功能优化的经历,参加了许多效劳器方面的优化知识,为功能调优的才能打下根底,颠末很多的实战事例的讲解进步学员的实战经历,从速上手功能测验(咱们对课程感兴趣,请加qq:)

    说明:体系在并发环境下后台出现java.lang.OutOfMemoryError:GC overhead limit exceeded同伴,运用器械loadrunner 、AWR述说、jstack、MAT等进行六开彩开奖功能剖析

    1、用LoadRunner做50用户并发,先辈行2分钟的预热测验,为了体系能用到缓存确当地都先辈行缓存,然落后行5分钟的施压测验(颠末loadrunner的controller中设置,咱们能够看看loadrunner手册)

    2、大年夜概运转7分钟摆布,后台出现“java.lang.OutOfMemoryError”同伴信息;

    同伴信息如下:

    3、出现OutOfMemoryError同伴信息,平日出现该同伴信息是堆内存的溢出,以是咱们需求思虑捕捉一下堆内存的信息,捕捉堆内存的信息有2种措施:

    3.1 颠末在运用中心件(weblogic、tomcat 等)上参加响应的JVM参数,具体参数如下(参加参数后,体系在出现OutOfMemoryError同伴的时分便会主动天生相似java_pid9388.hprof的这么一个文件):

    -Xloggc:D:\heapdump\managed1_gc.log

    -XX:+HeapDumpOnOutOfMemoryError

    -XX:HeapDumpPath=D:\heapdump

    3.2 运用JDK自带的JMAP器械,具体运用措施如下:

    第一步:先用jps.exe指令找到响应的java进程ID,平日找Server PID的;

    第二步:jmap.exe-dump:format=b,file=d:\d买马网站ump\java_pid(第一步查询到的PID号).hprof PID(理当地必然要空格后随着响应的PID号)要是只dump heap中的存活目标,则加上选项-live,如下:jmap.exe -dump:live,format=b,file=/path/heap_pid. hprof 进程ID(PID)

    4.运用MAT器械来剖析天生的hprof文件内容

    4.1翻开需求剖析的hprof文件:

    4.2 在Overview(概述)界面运用饼图的择要信息来剖析哪些目标比较占内存

    4.3剖析Action部分内容:

    4.3.1点击“Leak Suspects”后的成果如下:

    4.3.2 在置疑疑问的第点Details

    4.3.3反省有疑问的的类所引证的统统目标此刻运用鼠标左键点击,然后弹出菜单中进行如下遴选:List Objects->with outgoing references

    老李案例分享MAT分析应用程序服务出现内存溢出过程(说明:

    图中的Shallow Heap(浅堆):指目标本身占用内存的巨细,不包括它引证的目标

    图中的 Retained Heap(深堆):指当前目标巨细+当前目标可直接或直接引证到目标的巨细总和

    )

    此刻能够点击鼠标左键,将sql句子的内容进行复制.

    老李案例分享MAT分析应用程序服务出现内存溢出过程

    此刻就找到了疑问)

  • 相关内容

友情链接: