问题描述:
发现在AppSvr01下面有heapdump.***.phd和javacore.***.txt文件产生,有时会很快将空间充满
产生的原因:
生产这两个文件,说明有OutOfMemory发生,可以查看SystemErr.log确定发送的愿意,是参数设置有问题,还是程序有内存泄露。
首先查看SystemErr.log”确定内存溢出的原因,是PermSize太小,还是Nativethread无法创建,前者用MaxPermSize调整(IBM JDK没有这个参数),后者调小最大堆大小或者Xss调整每个线程非配内存的大小。
如果是常见的堆溢出,确保OutOfMemory时能生成heapdump文件,用Dumpanalyzer或者MDD4J分析dump文件,找到堆中占用空间总数最大的(或数量最多的)对象。然后调整堆范围到一个比较小的区间,比如256M至384M,重新启动服务器,在运行1小时后手动做一次heapdump,运行4小时后做一次heapdump,运行8小时后做一次(间隔仅做参考)。然后分析一下三者的区别,看看那个对象数据增长很多,占用空间增加很大。结果OutOfMemory时候的分析,应该能锁定问题的源头。