互联网服务WAS内存溢出WAS 7.0

请帮诊断was outofmemory问题

出现内存溢出的时间段为15:56分左右,前台应用已不可用,后端java进程还在,详见附件。
请各位帮诊断问题所在,谢谢!
heapdump文件,见:
http://pan.baidu.com/s/1nt6ztiT

附件:

附件图标SystemErr.rar (103.04 KB)

附件图标native_stderr.rar (116.79 KB)

附件图标javacore.20141104.155649.25314.0003.txt.gz (722.24 KB)

附件图标javacore.20141104.155649.25314.0002.txt.gz (715.79 KB)

参与4

3同行回答

peter1407peter1407数据库运维工程师NRI
有问题可以留言,有了结果记得说一下显示全部
有问题可以留言,有了结果记得说一下收起
银行 · 2015-02-05
浏览808
peter1407peter1407数据库运维工程师NRI
1 看GC当时已经很频繁但没有效果,最终抛出javacore和heapdump然后was自己重启了;但看GC没有发现有大对象。2 看了javacore,当时已达3G最大堆,可用内存不足1m,判断是是内存泄露。3 需要用工具分析heapdump能大致判断出可能发生内存泄露的对象和程序。我的笔记本只有2G内存,你的...显示全部
1 看GC当时已经很频繁但没有效果,最终抛出javacore和heapdump然后was自己重启了;但看GC没有发现有大对象。
2 看了javacore,当时已达3G最大堆,可用内存不足1m,判断是是内存泄露。
3 需要用工具分析heapdump能大致判断出可能发生内存泄露的对象和程序。
我的笔记本只有2G内存,你的最大堆就3G,我打不开你的heapdump,你用工具ha,打开自己看一下就行。
用工具排一下序,一层层展开,找占用内存%多的,数量大的。
不知道能不能帮到你,有了结果反馈一下。收起
银行 · 2015-02-04
浏览775
BatcherBatcher软件开发工程师HP
1、检查JDBC连接池是不是设置的太小了,连接数不够用的话,会导致大量的线程阻塞。如果需要增加连接数的话,记得跟DBA打好招呼,数据库那边的参数可能也要调整。数据库的最大连接数需要大于(WAS的JDBC最大连接数 * WAS实例的个数)2、检查是否有大量数据的查询,如果一个SQL很长时...显示全部
1、检查JDBC连接池是不是设置的太小了,连接数不够用的话,会导致大量的线程阻塞。
如果需要增加连接数的话,记得跟DBA打好招呼,数据库那边的参数可能也要调整。
数据库的最大连接数需要大于(WAS的JDBC最大连接数 * WAS实例的个数)

2、检查是否有大量数据的查询,如果一个SQL很长时间执行不完,需要看看超时设置是否合理,或者SQL是否需要优化,再或者是否需要调整索引。

3、下次出问题的时候,检查是否有大量的TCP连接没有正常关闭:
netstat -an | awk '/^tcp/{a[$NF]++}END{for(i in a)print i,a[i]}'
可以考虑调整内核参数,让TCP连接尽快关闭。

4、最后一个办法,把Xmx从现在的3GB增加到4GB,看看是否有所好转。收起
互联网服务 · 2014-11-06
浏览874

提问者

wtiancai
项目经理ffcs
擅长领域: 应用服务器WAS服务器

相关问题

问题状态

  • 发布时间:2014-11-05
  • 关注会员:1 人
  • 问题浏览:5100
  • 最近回答:2015-02-05
  • X社区推广