WAS 中JAVA内存溢出的解决方法
内存溢出是使用WAS时会经常遇到的问题。
1.现在WAS的控制台上打开详细垃圾回收。一旦出现OOM的错误时,会在nativeerr.log中有记录,也可以从这个日志中看出内存分配的情况。
解决方法:
首先查看systemerr.log确定内存溢出的原因,是PermSize太小,还是Native thread无法创建,前者用MaxPermSize调整(IBM JDK没这个参数),后者调小最大堆大小或者Xss调整每个线程分配内存的大小(管理控制台:服务器->应用程序服务器->server1->进程定义->Java 虚拟机(初始堆大小 128 ;
最大堆大小 512)。
【WAS 中JAVA内存溢出的解决方法】如果是常见的堆的溢出,确保OutOfMemory时能生成heapdump文件,用Dump analyzer或者MDD4J分析dump文件,找到堆中占用空间总数最大的(或者数量最多的)对象。然后调整堆范围到一个比较小的区间,比如256M~384M,重新启动服务器,在运行1小时候手动做一次heapdump,运行4小时后做一次heapdump,运行8小时候做一次(间隔仅作参考)。然后分析一下三者的区别,看看哪个对象数量增长很多,占用空间增加很大。结合OutOfMemory时候的分析,应该能锁定问题的源头。
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募