使用IBM工具分析javacore文件后,得到详细的分析,如下是部分信息:
1.================================================================================== Cause of thread dump : Dump Event "systhrow" (00040000) Detail "java/lang/OutOfMemoryError" received Date: 2013/03/18 at 15:09:34 Process ID : Not available Operating System : Windows XP 5.1 build 2600 Service Pack 2 Processor Architecture : x86 Number of Processors : 2 Java version : J2RE 6.0 IBM J9 2.4 Windows XP x86-32 build jvmwi3260-20080816_22093 Virtual machine version : VM build 20080816_022093_lHdSMr Just-In-Time(JIT) compiler switch, Ahead-Of-Time (AOT) compiler switch, Compiler version : JIT enabled, AOT enabled - r9_20080721_1330ifx2 Garbage collector version : GC - 20080724_AA Java Heap Information Maximum Java heap size : 2048m Initial Java heap size : 1024m 2.================================================================================== ... Free Java heap size: 11.71 KB Allocated Java heap size: 256 MB ... 3.================================================================================== 07:09:30:233142669 GMT j9mm.101 - J9AllocateIndexableObject() returning NULL! 16688 bytes requested for object of class 10F019E0 from memory space 'Flat' id=00141D5C 07:09:30:233082499 GMT j9mm.134 - Allocation failure end: newspace=0/0 oldspace=8144/268435456 loa=0/0 ...
分析:
第1段说明出现错误:"java/lang/OutOfMemoryError" ;
第2段说明heap可用空间不足;
第3段说明内存分配失败:Allocation failure,并且oldspace=8144/268435456说明old区很空闲。
查询资料可知,was7新生代默认分配空间如下,相对我们的产品来说确实太小了,需要适当增大。
-Xmns是-Xms的25%或者64M(在JDK 5.0中默认是25%) -Xmnx是-Xmx的25%或者64M(同上)
根据以上分析,采取增大新生代的方式来解决这个问题,经过调试初步确定jvm的新参数组合:
-Xms768m -Xmx1536m -Xmn768m -XX:PermSize=256m -XX:MaxPermSize=512m
重新部署应用顺利通过,而且WAS的响应也快了不少。
相关推荐
2. 排序循环:不断调用`pop_heap`函数将堆顶元素(当前最大元素)与末尾元素交换,然后调整堆,使得剩余元素仍然是一个堆。 3. 结束:当堆大小减至1时,排序完成。 堆数据结构在许多实际应用中非常有用,例如优先...
ION V2 heap是这个机制的一个版本更新,它在Linux内核版本2.13.6中得到了应用。在深入理解ION V2 heap之前,我们首先需要对ION有一个基本的了解。 ION是一个为硬件接口和驱动程序提供内存分配服务的框架,它优化了...
标题中的"core_analyzer_2_16_heap_coreanalyzer_dump_3danalyzer2.16_"似乎是指一个特定版本的内存分析工具,可能是Core Analyzer的2.16版,专门用于处理堆(heap)核心转储(dump)并进行三维(3D)分析。...
binary_heap_for_A_star
2. 导航至“服务器” > “服务器类型” > “WebSphere应用程序服务器” > 选择你的服务器实例。 3. 在“Java和JVM”部分,点击“JVM配置”。 4. 在“诊断选项”下,找到“堆转储(Heap dump)”选项。 5. 勾选“启用...
标题中的“test_heap_sort.rar_heap”表明这是一个关于堆排序(Heap Sort)的程序实现,使用了VC++(Visual C++)编程语言。堆排序是一种基于比较的排序算法,它的核心思想是利用二叉堆的数据结构来对数组进行排序。...
总之,“max_heap_test.rar_max”项目提供了一个C源码实现的最大堆,对于理解和学习最大堆及其操作提供了实例参考,对提升IT专业技能大有裨益。通过深入研究和理解这段代码,开发者可以更好地掌握数据结构和算法,...
2. **内存合并**:如果相邻的内存块都未被使用,Ion_chunk_heap会尝试合并它们,以减少碎片。 3. **内存释放**:当内存不再需要时,Ion_chunk_heap会将其归还给内存池,以便后续分配。释放过程也会考虑避免碎片。 4....
对于min_MAX heap,每个节点的两个子节点必须满足以下条件:对于最小堆部分,节点i的值不大于2i+1和2i+2的值;对于最大堆部分,节点i的值不小于2i+1和2i+2的值。这样,根节点总是当前堆中最小和最大的元素。 插入...
最近在学习STL的源代码,看到这么多优秀的代码,心里痒痒的,于是自己实现了一遍,当然,有自己的特色,都是模块函数,稍稍用了一些traits特性。相互学习,呵呵
2. 调整GC策略:根据应用类型和性能需求选择合适的垃圾收集器,并调整相应的参数,例如并行度、新生代与老年代的比例等。 3. 对象创建和引用管理:避免创建过多短生命周期的对象,减少对垃圾收集的压力;及时释放...
标题"push_heap_comp.rar_one more"以及描述中的"Allocate enough regions to completely fill the quarantine, plus one more."提到了两个关键点:堆(heap)操作和额外的内存分配。这里,我们将会深入探讨这两个...
3.抓取步骤2进程的堆栈数据,如进程pid是4723 am dumpheap -n 4723 /data/00.txt am dumpheap -n 4723 /data/01.txt 4.格式化堆栈数据 python native_heapdump_viewer.py --symbols symbols 00.txt >00.log python ...
"core_analyzer-2.18-src_Only_heap_src-only_analyzer_dump_" 这个标题表明我们正在讨论一个专门用于分析内存堆(heap)的工具,名为 "core analyzer" 的源代码版本,具体是2.18版。"src only" 指出这个版本仅包含...
标题中的“09-Index-Heap-Advance.rar_heap_show6nm”似乎暗示这是一个关于数据结构中堆(Heap)的进阶教程,其中可能包含了C语言实现的代码示例。"rar"表明这是一个压缩文件,而"show6nm"可能是某种特定的展示或...
标题 "heap_test.rar_The Test" 暗示我们关注的是一个关于堆(Heap)的数据结构测试,而描述中提到的 "the c source code of heap" 表明这是一个使用C语言编写的源代码,用于实现和测试堆的功能。在计算机科学中,堆...
2. **extractMax 或 extractMin**:删除并返回堆顶元素(最大或最小元素)。这个操作会将最后一个元素移动到堆顶,然后通过下沉操作(heapifyDown)调整堆,使其重新满足堆的性质。 3. **buildHeap**:从无序数组...
【标题】"is_heap_until.rar_If Not Now ..." 在IT领域,这个压缩包中的内容似乎与C语言编程和算法分析有关。"is_heap_until"通常指的是C++标准库中的一个函数,它用于检测一个数组是否满足堆的特性直到某个特定...
Windows consistency checks on the heap
毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以...