一、现象:
客户反映NGBOSS系统的WebLogic Server在运行过程中会出现内存紧张的现象,主要表现为WebLogic Server 的JVM不停的出现Full GC现象,整个Server 的响应速度很慢,甚至无法响应的现象。
二、分析:
目前内存出现连续Full GC 主要有两种不同的原因:
一是应用代码中调用了system.gc()方法,导致连续的Full GC。
二是应用代码在处理某个特定业务请求时,缩需要的内存量太大,导致Heap 内存快速耗尽。
对于第一种故障问题,目前应用开发商已经明确了解所使用的jxl 代码包中带有相关的参数开关,可以将显式Full GC 功能关闭。
对于第二种故障情况,目前建议开发商仔细检查
/custcare/group/groupSubMember.do?act=toexcel&fileType=book 对应的代码,尽可能控制业务处理中cache 及临时变量的数量。或者将一次性的大数据量分多批处理,以便减少单次业务请求带来的内存消耗。
三、解决:
对于应用代码中显式调用System.gc()方法,如果没有自己的参数可以将其屏蔽,可以采用如下的JVM 参数配置将其屏蔽:-XX:+DisableExplicitGC
如果发现是由于应用确实需要较多的内存而导致的内存连续Full GC问题,可以再启动脚本中添加: -XX:HeapDumpOnCtrlBreak ,但此时要注意,添加此参数后,对WebLogic进程做kill -3 的操作后,都会导致heapdump 操作,heapdump文件较大,此过程很费时间,所以建议只有在故障出现时才做此操作。同时建议将Heap 的Size 的最大值减小到2G 或更小,以便生成的heapdump 文件能够分析
该贴被zhang.chen编辑于2014-3-24 15:16:58
该贴由system转至本版2014-5-4 4:48:55