WAS7一直吃虚拟内存到机器宕机,有啥好的解决思路

环境:
网站,前端f5,ihs
PowerVM虚拟AIX6.1
was7.0.0.11集群两节点
oracle 10G RAC

故障:
WAS7集群的两个节点AIX6.1系统宕机

分析结果:
1、宕机前was没有留下任何有用日志,因之前实施人员未调整was的日志文件大小和个数。
2、AIX的PS(虚拟内存)不停占用不释放,一直占满到宕机(直接原因),但是物理内存使用正常。
3、目前临时的解决办法3-5天交换重启一次was节点,可释放虚拟内存,保证系统正常运行。
4、现生成日志全部正常,基本是I,O级别日志,几条W,E级别日志属于正常情况。
5、外网网站,正常在线用户量预估20-30。现没有排除访问量激增和攻击的可能,前方工程师没有拿到故障时的IHS的log文件对访问量进行分析。

怀疑:
1、was7的BUG,未发现有此类BUG的相关信息(不确定)
2、web池设置太小,50-50(目前没有发现报不够使用的错误,暂时排除。)
3、应用连接数据库采用XML配置方式直连,没有使用was的数据池(目前没有发现连接数据库的相关错误,暂时排除。)
4、操作系统层面问题,排查无问题。(重启was解决问题,暂时排除。)
5、访问量激增和攻击(未确认,但是访问量正常时虚拟内存也在一直占用不释放,可能性比较小)
6、代码问题,系统上线运行一年以上,并为出现过类似问题。(暂时排除)

谁有过类似的故障解决办法,分享一下。









参与19

17同行回答

zymh_zyzymh_zyIT顾问国内某公司
个人倾向于还是代码问题。不然不会吃虚拟内存到机器死机的。既然是生产环境,那就查一下维护记录,看这段时间,有做什么维护,包括,应用升级,系统补丁升级。如果一直好好的,而硬件又没有做过调整,那意外出现这些死机问题,那很大可能是人为因素在内。...显示全部
个人倾向于还是代码问题。不然不会吃虚拟内存到机器死机的。既然是生产环境,那就查一下维护记录,看这段时间,有做什么维护,包括,应用升级,系统补丁升级。如果一直好好的,而硬件又没有做过调整,那意外出现这些死机问题,那很大可能是人为因素在内。收起
IT咨询服务 · 2013-08-27
浏览1907
bj5921bj5921技术支持WAS
代码问题,也考虑过。代码那边调整还比较麻烦,客户没有协调来代码的人,所以只能从WAS上下手了。显示全部
代码问题,也考虑过。代码那边调整还比较麻烦,客户没有协调来代码的人,所以只能从WAS上下手了。收起
IT咨询服务 · 2013-08-27
浏览1833
edwards6309edwards6309系统工程师江苏省无锡市交巡警支队交通指挥中心
期待最终结果啊,究竟是什么原因?显示全部
期待最终结果啊,究竟是什么原因?收起
政府机关 · 2013-08-26
浏览1815
bj5921bj5921技术支持WAS
关于此问题通过IBM的实验室给出已知BUG如下,进行测试1、IV46157: NATIVE OOM ON AIX 64BIT PLATFORM WHEN COMPRESSED REFERENCES ENAB LEDJVM参数:-Xgc:preferredHeapBase=0x100000000http://www-01.ibm.com/support/docview.wss?uid=swg1IV461572、使用反射代理类加载器...显示全部
关于此问题通过IBM的实验室给出已知BUG如下,进行测试
1、IV46157: NATIVE OOM ON AIX 64BIT PLATFORM WHEN COMPRESSED REFERENCES ENAB LED
JVM参数:-Xgc:preferredHeapBase=0x100000000
http://www-01.ibm.com/support/docview.wss?uid=swg1IV46157
2、使用反射代理类加载器的潜在内存使用问题
http://www-01.ibm.com/support/docview.wss?uid=swg21636746
JVM参数:-Dsun.reflect.inflationThreshold=0
等待测试结果收起
IT咨询服务 · 2013-08-26
浏览1896
bj5921bj5921技术支持WAS
大家的建议都非常好。现在就是两可能最大,代码内存泄漏。was的BUG。等下周看看分析的结果如何,大家还有什么不同的想法或者经验,继续分析一下。11楼的方法经常能用到,大家多多学习。...显示全部
大家的建议都非常好。
现在就是两可能最大,代码内存泄漏。was的BUG。等下周看看分析的结果如何,大家还有什么不同的想法或者经验,继续分析一下。
11楼的方法经常能用到,大家多多学习。收起
IT咨询服务 · 2013-08-24
浏览1864
wxawxa系统运维工程师IT
javacore, heapdump 还有 native_stderr.log  收集到, 估计应用代码内存泄露的嫌疑比较大显示全部
javacore, heapdump 还有 native_stderr.log  收集到, 估计应用代码内存泄露的嫌疑比较大收起
互联网服务 · 2013-08-23
浏览1840
Luga LeeLuga Lee联盟成员系统架构师None
拿数据说话吧!从整体到局部层层分析显示全部
拿数据说话吧!从整体到局部层层分析收起
互联网服务 · 2013-08-23
浏览1859
hbhehbhe网站架构师icitic
烩总:从was层面也可以分析,具体分析办法如下(仅个人意见,非权威):1、  JVM日志的目录 WASHOME/profiles/yourprofile/logs/yourserver/native_stderr.log 和 native_stdout.log 2、  日志收集方式方法,在用系统的日志收集 进入DM控制台选中系统管理->Dep...显示全部
烩总:从was层面也可以分析,具体分析办法如下(仅个人意见,非权威):
1、  JVM日志的目录
WASHOME/profiles/yourprofile/logs/yourserver/native_stderr.log 和 native_stdout.log

2、  日志收集方式方法,在用系统的日志收集
进入DM控制台
选中
系统管理->Deployment Manager->Java和进程管理->进程定义->Java虚拟机->详细垃圾回收(保存配置后重新启动服务生效)
系统管理->Deployment Manager->Java和进程管理->进程定义->Java虚拟机->运行时->详细垃圾回收(确认后立即生效)

3、如何手动的生成javacore、heapdump文件
系统管理->Deployment Manager->Java和进程管理->进程定义->Java虚拟机->通用 JVM 实参
写入-Xdump:java+heap:events=user
重启服务后生效。
kill -3 pid后就可以直接生成javacore和heapdump文件 后可在
/wps/WebSphere/AppServer/profiles/Dmgr01下生成
javacore.20130607.202533.2629.0002.txt
heapdump.20130607.202831.2629.0003.phd
文件


4、
步骤:  STEP1:下载PMAT, ga441.zip
Step2:解压,打开终端,cd到解压的目录
Step3:java –Xmx1000m –jar ga441.jar
Step4:ga窗口中,打开native_stderr.log
可以看到内存的大体消耗图。收起
IT培训教育 · 2013-08-23
浏览2134
bj5921bj5921技术支持WAS
回复 7# hbhe 从系统层面找,类似这样的问题要是进程比较多用这个办法不错。大家多学习7楼提供的的系统命令,非常实用。客户环境系统上只有一个was,其它的没有。gcore PID 可以作为一个分析的一个办法,感谢7楼提供的方法。...显示全部
回复 7# hbhe

从系统层面找,类似这样的问题要是进程比较多用这个办法不错。
大家多学习7楼提供的的系统命令,非常实用。

客户环境系统上只有一个was,其它的没有。gcore PID 可以作为一个分析的一个办法,感谢7楼提供的方法。收起
IT咨询服务 · 2013-08-23
浏览2041
hbhehbhe网站架构师icitic
同时可以收集native_stderr.log 和 native_stdout.log日志,用工具分析一下内存使用情况。显示全部
同时可以收集native_stderr.log 和 native_stdout.log日志,用工具分析一下内存使用情况。收起
IT培训教育 · 2013-08-23
浏览2087

提问者

bj5921
技术支持WAS
擅长领域: 中间件服务器应用服务器

相关问题

相关资料

问题状态

  • 发布时间:2013-08-22
  • 关注会员:1 人
  • 问题浏览:14873
  • 最近回答:2013-08-27
  • X社区推广