WAS 经常有
heapdump.***.phd
和
javacore.***.txt
文件产生
问题描述:
发现在 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 时候的分析,应该能锁定问题的源头。