`

Heap OOM故障实例1

 
阅读更多

故障描述:

线上系统运行过程中出现OOM异常,导致jvm crash。

系统运行在IBM AIX上,通过IBM heap工具分析得到结果,如下图所示:


 

java应用日志分析:

1.通过查看应用日志,发现在某个时间点jvm heap内存出现异常:内存使用不断上升直至溢出。

2.由于系统特性使然,heap内存分配为64M,通过上图可以发现,异常时mina框架的MessageWriteRequest对象已经占用了61M左右的heap,导致溢出。

 

故障分析:

通过跟踪mina源程序,发现是由于大量消息阻塞的消息queue中,无法发送也没有及时清除,最终导致heap内存溢出。

 

  • 大小: 98.3 KB
2
3
分享到:
评论
3 楼 charles751 2013-02-26  
由于是agent软件,所以不能分配太多的内存。
我只做了BUG的分析定位,暂时不需要我来解决。
2 楼 freezingsky 2013-02-25  
一方面服务端分配的内存实在是太少了。另外,楼主都已经找到了问题的根源,无法清除也无法发送,那怎么不把解决的方法一并告知呢?
1 楼 richard_2010 2013-02-25  
64M的内存啊。。。。

相关推荐

    Heap Analyzer

    HeapAnalyzer通过分析heapdump文件,以了解哪些对象占用了太多的堆栈空间,来发现导致内存泄露或者可能引起内存泄露的对象。启动后使用open file菜单,浏览打开我们需要进行内存堆栈分析的heapdump文件

    OOM分析工具-MemoryAnalyzer.zip

    2. **heap histogram 视图**:这个视图提供了类实例的统计信息,按类名分组显示每个类的实例数量和内存占用。这对于识别可能存在内存泄漏的类非常有用。 3. **leak suspects 报告**:MAT会自动分析内存数据,生成一...

    IBM HeapAnalyzer

    1. **IBM HeapAnalyzer的工作原理** IBM HeapAnalyzer通过解析由`jmap`命令生成的堆转储文件(heap dump)来分析内存状态。`jmap`是JDK自带的一个命令行工具,允许开发者在运行时获取堆信息,包括对象分布、类加载...

    heapdump分析工具

    要生成heapdump,可以使用JVM内置的命令行选项,例如`-XX:+HeapDumpOnOutOfMemoryError`来配置JVM,在出现OOM错误时自动创建heapdump,或者使用`jmap`工具(需要与JDK配套)手动触发dump: ```bash jmap -dump:...

    api-ms-win-core-heap-l2-1-0.dll (64位).rar

    《API-MS-WIN-CORE-HEAP-L2-1-0.DLL:64位系统的核心内存管理组件解析》 在Windows操作系统中,DLL(Dynamic Link Library)文件扮演着至关重要的角色,它们包含了可被多个程序共享的代码和数据。"api-ms-win-core-...

    api-ms-win-core-heap-l2-1-0(64-Bit).zip

    《深入理解API-MS-WIN-CORE-HEAP-L2-1-0.dll:64位系统的内存管理关键组件》 在Windows操作系统中,API-MS-WIN-CORE-HEAP-L2-1-0.dll是核心堆管理库的一个重要组成部分,主要负责64位系统中的内存分配和管理。这个...

    java 内存溢出分析工具 HeapAnalyzer

    1. **生成Heap Dump** 在Java应用运行时,如果遇到内存问题,首先需要获取堆内存快照,这通常可以通过JVM参数`-XX:+HeapDumpOnOutOfMemoryError`设置,当发生OOM时自动生成dump文件。或者使用`jmap -dump:format=b,...

    IBM的HeapAnalyzer

    1. **生成heap dump**:当应用运行时,使用JConsole、VisualVM或jmap命令生成heap dump文件。 2. **打开heap dump**:在HeapAnalyzer中加载这个文件。 3. **分析**:进行对象搜索、引用分析等操作,寻找可能的问题...

    heapdump分析工具HeapAnalyzer

    heapdump分析工具------HeapAnalyzer: 2014年1月最新发布 用法: 在命令行执行 java -Xmx500m -jar ha453.jar

    api-ms-win-core-heap-l2-1-0.dll(32+64位都有)亲测可用

    《api-ms-win-core-heap-l2-1-0.dll:操作系统核心堆管理库解析》 在Windows操作系统中,`api-ms-win-core-heap-l2-1-0.dll`是一个至关重要的动态链接库文件,它是系统核心堆管理的一部分,用于32位和64位系统。该...

    api-ms-win-core-heap-l2-1-0.zip

    标题中的"api-ms-win-core-heap-l2-1-0.zip"是一个压缩包文件,它包含了一个名为"api-ms-win-core-heap-l2-1-0.dll"的动态链接库(DLL)文件以及一个"说明.txt"的文本文件。这个压缩包主要是为了解决系统中缺失"api-...

    使用IBM性能分析工具HeapAnalyzer解决生产环境中的性能问题

    在解决 OOM 问题时,我们首先需要了解 OOM 的原因,然后再使用 HeapAnalyzer 工具来查找应用程序中的性能瓶颈。OOM 的原因可以分为两种情况,一种是物理内存确实有限,另一种是应用系统本身对资源的不恰当使用、配置...

    api-ms-win-core-heap-l2-1-0.dll (64位)

    《API-MS-WIN-CORE-HEAP-L2-1-0.DLL:64位Windows 10系统的关键组件》 在计算机操作系统中,动态链接库(DLL)是实现功能模块化的重要部分,它们允许多个程序共享同一段代码和数据,节省内存并提高效率。"api-ms-...

    heapdump-tool工具

    1. **生成Heap Dump**:在遇到内存问题或需要定期监控内存状况时,heapdump-tool可以生成堆转储文件。这可以通过JVM命令行参数(如`-XX:+HeapDumpOnOutOfMemoryError`)实现,也可以通过JConsole或VisualVM等可视化...

    api-ms-win-core-heap-l2-1-0.dll

    api-ms-win-core-heap-l2-1-0.dll

    heap Analyzer heapdump分析工具

    heap Analyzer heapdump分析工具

    丢失api-ms-win-crt-heap-l1-1-0.dll 错误的解决办法

    丢失api-ms-win-crt-heap-l1-1-0.dll 错误的解决办法,在线等

    解决Java_heap_space问题

    Java堆空间是JVM用于存储对象实例的主要区域,包括类实例、数组等。当程序创建的对象过多或单个对象占用内存过大时,如果没有足够的空闲内存来分配新对象,JVM就会抛出“OutOfMemoryError: Java heap space”错误。...

    Linux_Android_内核_Heap_Spray_的几种姿势.pdf

    文章中提到了两个Heap Spray的实例,这些实例都是利用了SLUB内存分配器的一些特性,通过在内存中喷射大量的数据,覆盖了特定的内存地址,从而达到了提权的目的。 总的来说,Heap Spray是一种非常有效的攻击技术,它...

Global site tag (gtag.js) - Google Analytics