《was manage内存溢出.docx》由会员分享,可在线阅读,更多相关《was manage内存溢出.docx(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、wasmanage内存溢出wasmanage内存溢出异常内存溢出有个复杂的讲明,为此学习啦我为大家整理推荐了下面内容,希望大家喜欢。wasmanage内存溢出WAS内存溢出(OutofMemory)问题分析常用方法简述OOM(内存溢出):内存溢出是指在应用系统中存在无法回收的内存或内存使用的太多,最终导致应用程序无法为新的对象分配内存空间,这时Java运行时会抛出一个OutOfMemoryError的异常,简称OOM。简述Java堆(JavaHeap):JVM内存从逻辑上来讲分为多个空间,Java堆是JVM所管理的内存空间中最大的一块。我们能够通过JVM启动参数-Xms、-Xmx来设定它的大小
2、。GC工作的主要区域也是在这里,由于基本上所有的对象实例的内存都是在这里分配的。简述GC(垃圾采集器):在JVM中,内存的释放是由垃圾采集器(GarbageCollection,GC)完成的,当一个对象不再被引用的时候,GC便回收它所占用的内存空间。-触发内存溢出的可能原因:1、集合类中(List、MAP)有对对象的引用,使用完后未清空2、内存一次性加载的数据量太多3、内存产生大量碎片,没有连续可用空间4、代码中存在死循环或递归调用5、JVM启动参数内存值设定的过小6、系统物理内存过小-在分析问题时,我们需要采集下面日志:GC日志:native_stderr.log(在JVM启动参数中参加-v
3、erbose:gc打开具体垃圾回收)通过GC日志native_stderr.log查看垃圾回收情况应用系统日志:SystemOut.log查看详细错误信息线程转储:javacore通过heapdump分析可疑泄漏对象堆转储:heapdump通过javacore分析线程执行状态-生成javacore和heapdump,能够屡次采集,然后通过工具比拟分析,这样更容易发现问题rootwas01bin#./wsadmin.sh-userwasadmin-passwordpassword设置jvm环境变量wsadminsetjvm$AdminControlcompleteObjectNametype=J
4、VM,process=server1,*生成javacore文件:wsadmin$AdminControlinvoke$jvmdumpThreads找到JVM对象名字wsadminsetobjectName$AdminControlqueryNamestype=JVM,process=server1,*生成heapdump文件:wsadmin$AdminControlinvoke$objectNamegenerateHeapDump-在WAS中,我们能够尝试下面方法,缓解内存溢出问题,详细方法请根据实际情况判定:1、更改垃圾回收算法2、优化JVM启动参数3、增加JVM内存大小要想更好的解决ja
5、va.lang.OutOfMemoryError的问题,我们需要从应用程序入手,由于优化程序带来的性能改善远远高于对WAS的调试。-下面是对内存泄漏的几种分类:(摘抄自网络)1.常发性内存泄漏。发生内存泄漏的代码会被屡次执行到,每次被执行的时候都会导致一块内存泄漏。2.偶发性内存泄漏。发生内存泄漏的代码只要在某些特定环境或操作经过下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。3.一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块且仅有一块内存发生泄漏。4.隐式内存泄漏。程序在运行经过中不停的分配内存,但是直到结束的时候才释放内存。严格的讲这里并没有发生内存泄漏,由于最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存可以能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。wasmanage内存溢出异常内存溢出有个复杂的讲明,为此学习啦我为大家整理推荐了下面内容,希望大家喜欢。wasmanage内存溢出WAS内存溢出(OutofMemory)问题分析常用方法简述OOM(内存溢出):内存溢出是指在应用系统中存在无法回收的内存或内存使用的推荐度:
限制150内