使用jprofiler分析dump文件一个实例

1.. jstact 命令先分析一下

一次fullgc之后 old 老年代使用比例 只降低2% 应该有什么大的对象常驻内存。

2.可以使用jmap 命令查看对象大小 (这里后面使用jprofiler 就没用这个命令)

jmap -histo:live 72947 | more

3 .dump 线上文件栈

[[email protected] ~]# jmap -dump:live,format=b,file=heap201712.hropf  72947   
Dumping heap to /root/heap201712.hprof ...
Heap dump file created

4

使用jprofiler 加载dump文件 (jprofiler版本9.1.1)

点击菜单biggst object 发现大对象是arrayblockingqueue 占用400M 点击show in graph 图形展示对象

发现关联的可能问题来自 logback

继续查看

也是指向logback

查看logback的配置文件 info级别

  1. <!-- 异步输出,异步的log片段必须在同步段后面,否则不起作用 -->

  2.  

    <appender name="ASYNC_INFO" class="ch.qos.logback.classic.AsyncAppender">

  3.  

    <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 , 保持INFO的events,设置该值为0。 -->

  4.  

    <discardingThreshold>0</discardingThreshold>

  5.  

    <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->

  6.  

    <queueSize>100000000</queueSize> <!-- 设置太大 ,系统可能跑步起来 0<queueSize<1个亿 -->

  7.  

    <!-- 添加附加的appender,最多只能添加一个 -->

  8.  

    <appender-ref ref="INFO" />

  9.  

    </appender>

queuesize 设置的太大了 调小该值即可  是个初始的blockingqueue

原文地址:https://www.cnblogs.com/hadley/p/9557474.html

时间: 2024-11-02 07:51:13

使用jprofiler分析dump文件一个实例的相关文章

[Java基础] 使用JMAP dump及分析dump文件

转载:http://blog.csdn.net/kevin_luan/article/details/8447896 http://liulinxia02.blog.163.com/blog/static/26868772009111861834942/ http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/ 其中jmap是java自带的工具 查看整个JVM内存状态 jmap -heap [pid]要注意的

WinDbg分析DUMP文件

1. 如何生成dump文件? 原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件: SetUnhandledExceptionFilter:https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SETUNHANDLEDEXCEPTIONFILTER);k(DevLang-%22C%2B%2B%22)&a

MAT 分析dump文件

public class OOM { private static List<Byte[]> list = new ArrayList<Byte[]>(); public static void main(String[] args) { Zip zip = new Zip(); zip.test(list); } } public class Zip { private List<Byte[]> a = null; public List<Byte[]>

使用windbg分析iis崩溃的一个实例

问题背景说明:客户的生产环境不定时发生崩溃,需要定位崩溃的原因.在开发环境不能重现该问题,准备抓取IIS的dump文件分析 第一步:在客户的生产环境抓取dump文件 参考:IIS崩溃时自动抓取Dump 等IIS崩溃时,会自动转存dump文件 第二步:分析dump文件 2.1  选择在那个环境分析dump文件 一般可以选择在生产环境分析dump文件,(如果开发环境有符号表文件,也可以把dump文件拷贝到开发环境分析) 2.2 安装windbg 参考:wndbg下载与安装 2.2 选择dump文件

(转)JVM性能调优之生成堆的dump文件

转自:http://blog.csdn.net/lifuxiangcaohui/article/details/37992725 最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录. 一.JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以

WinDbg-如何抓取dump文件

这要分两种情况: 第一种情况:如果是Vista或者是Windows2008操作系统就是一个简单的事情,在任务管理器中,切换到"进程"选项卡,右键点击你想要创建dump文件的进程,然后选择"Create Dump File"即可.如果你想要创建dump文件的进程是w3wp.exe,可能会看到有很多w3wp,但不知道哪一个是你要要抓的网站,可以通过下需的命令查看,对于vista或win2008系统使用:%windir%/system32/inetsrv/appcmd l

Windows下获取Dump文件以及进程下各线程调用栈的方法总结(转)

1. Dump文件的用途 Dump文件, 主要用于诊断一个进程的运行状态,尤其是碰到崩溃(Crash)或者挂起(hang)不响应时,需要分析它的工作状态.  除了平时常见的attach到这个进程, 分析Dump文件就成了一个重要的手段了. 相信一些做软件维护和支持的工程师在这方面深有体会, 比如某天某时,客户说, 呀, 糟糕, 服务器进程挂掉了, 怎么回事? 然后,看看了日志文件,也没有什么可用的信息.  技术支持告诉他, 按某步骤生成一个dump文件来看看...... 2. 如何生成Dump文

Java千百问_07JVM架构(014)_什么是Dump文件

点击进入_更多_Java千百问 1.什么是Dump文件 Dump文件是进程的内存镜像.可以把程序的执行状态通过调试器保存到dump文件中. Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开. 当我们的程序发布出去之后,在客户机上是无法跟踪代码的,所以Dump(扩展名是 .dmp)文件对于我们来说特别重要.我们可以通过.dmp文件把出现问题的情况再现,然后根据再现的状况(包括堆栈调用等情况),可以找到出现问题对应的行号. 2.如何生成Dump文件 生成Dump文

Windows Phone App的dump文件实例分析- System.ExecutionEngineException

前言 在开始这篇文章之前我们先来讲讲如何从高度优化的Release版的Dump中找到正确的异常上下文地址,并手动恢复异常发生的第一现场. 1. 什么是异常上下文 简单来说,在windows体系的操作系统里面,每个线程都有自己的线程上下文来保存需要的信息,其中包括当前寄存器的值.我们这里需要找到的异常上下文就是当异常发生的时候,异常分发器帮我们保存的当前寄存器的值(也叫寄存器上下文),利用这些信息结合汇编代码的分析,我们就可以进一步找到发生异常的原因.关于寄存器上下文结构体的定义我们可以在winn