一起分析下WAS中因JVM内存溢出导致应用程序服务器频繁宕机重启的原因

AIX主机P740,32G内存,部署WAS5.1,跑公司ERP业务,访问DB2数据库。

topas.jpg


vmstat.jpg


nmon.jpg


WAS:

6个应用程序.jpg


jvm堆.jpg


JVMweb会话.jpg


AIX many heapdump files per month:

heapdump宕机.jpg


C01 errlog:

outofmemory.jpg


What can I do  about this?

5回答

杨建旭杨建旭  技术经理 , 中国人民银行清算总中心
dgl_2005aixchinasyyap等赞同了此回答
内存不足(outofmemory),可能有两种情况1)分配的JVM内存真的不足你的comp memory(计算内存)只占了62%,不妨给JVM多分配一些内存,看看效果(不确定,你的设备是否支持更大的JVM内存配置)2)内存本来够用,但应用有问题2.1)不妨看看,core、dump文件中,出现outofmemeory的时候有什么规律,那些进程/...显示全部

内存不足(outofmemory),可能有两种情况

1)分配的JVM内存真的不足

你的comp memory(计算内存)只占了62%,不妨给JVM多分配一些内存,看看效果(不确定,你的设备是否支持更大的JVM内存配置)

2)内存本来够用,但应用有问题

2.1)不妨看看,core、dump文件中,出现outofmemeory的时候有什么规律,那些进程/线程,在干什么事情

2.2)代码静态检查工具扫描看看,也许能发现内存泄露的问题

收起
 2017-03-09
浏览8269
  • 试过跟JVM分配更大的内存,不好使,感觉宕机重启次数更多了,所以又换回来了。
    2017-03-09
  • "OUTOFMEMORY 内存溢出" F000043/.._/erp/ts/jsp/tsjj008E2.jsp_1_17-2-8 .H10:02 "Java heap critical shortage 0.18637797 % free [星期三 二月 8 10:02:20 2017] Complete Java heap exhaustion. 4,112 bytes requested with 1,640 bytes available [星期三 二月 8 10:04:39 2017]" signal 4 received F000147/h*._/erp/il/do_iljjYF010_S_1_17-2-5 .H6:08 OutOfMemory F005179/h.c_/erp/mf/jsp/mfjjPrintXlsbyData.jsp_1_17-2-6 .H10:22 Java heap fragmentation 24,450,312 bytes requested with 247,112,264 bytes available [星期一 二月 6 12:08:54 2017] "OUTOFMEMORY 内存溢出" Java heap critical shortage 0.4177909 % free [星期六 二月 4 09:27:23 2017] "OUTOFMEMORY 内存溢出" Java heap critical shortage 0.81718063 % free [星期三 二月 8 10:58:35 2017] "OUTOFMEMORY 内存溢出" Java heap critical shortage 1.4514135 % free [星期三 二月 8 15:15:23 2017] "OUTOFMEMORY 内存溢出" Java heap critical shortage 0.19162916 % free [星期四 二月 2 17:09:09 2017] 不太会分析heapdump文件,看不懂软件这块,另外:代码静态检查工具是什么东西啊?
    2017-03-09
  • 试着用ibm heapdump分析下,查下内存泄露
    2018-09-05
yhsihyhsih  系统运维工程师 , 某烟草公司
syyapneilrulehufeng719赞同了此回答
偏方:用crontab 每晚定时执行一遍WAS重启,绝对管用,百试不爽。因为webSphere就是这尿性,只服重启!显示全部

偏方:用crontab 每晚定时执行一遍WAS重启,绝对管用,百试不爽。因为webSphere就是这尿性,只服重启!

收起
 2017-03-09
浏览8067
  • 是个好办法。我记得内存够用的标准是这么定义的:在下次重启之前,内存没有耗尽。内存泄露是最不好查的,很多单位的系统都有定时重启的。
    2017-03-09
shangke1207shangke1207  数据库运维工程师 , 济宁银行
neilrule赞同了此回答
was升级吧 至少升级到7版本64位 老版本的太多bug都已经在高版本中解决了显示全部

was升级吧 至少升级到7版本64位 老版本的太多bug都已经在高版本中解决了

收起
 2017-03-09
浏览7837
  • 技术力量跟不上,升级WAS需要更改好多ERP程序及系统应用脚本,我们只是两个人维护。应用方面懂得比较少。管理ERP软件的也只是几个会增删改查,没做过具体大项目的程序员。第三方厂家部署完毕后就撤走了,运行5-6年了
    2017-03-09
  • 如果不能升级的话,那就把was的详细垃圾回收选项打开,然后分析一下native日志看看能不能有收获,估计你的was是32位的,也无法配置太大的内存,现有情况下想彻底解决内存溢出,难度比较大
    2017-03-10
zymh_zyzymh_zy  IT顾问 , 国内某公司
aixchina赞同了此回答
WAS5.1,好老的版本。如果考虑业务风险,不能升级WAS5.1到高版本,然后作应用迁移。那只能从物理上作改进,加内存。如果内存加上,还是一样情况,那就从应用程序着手,查证一下应用变更日志(就是那种作了什么应用修改,发布那种文档性资料),然后 查证一下应用程序吧。...显示全部

WAS5.1,好老的版本。如果考虑业务风险,不能升级WAS5.1到高版本,然后作应用迁移。那只能从物理上作改进,加内存。如果内存加上,还是一样情况,那就从应用程序着手,查证一下应用变更日志(就是那种作了什么应用修改,发布那种文档性资料),然后 查证一下应用程序吧。

收起
 2017-03-09
浏览7826
overtopovertop  系统工程师 , 维保公司
不太懂JVM,JVM内存溢出一定会耗尽操作系统内存吗?能否限定一下?显示全部

不太懂JVM,JVM内存溢出一定会耗尽操作系统内存吗?能否限定一下?

收起
 2017-03-10
浏览7821
  • 我猜提问者说的是was server,可以理解为软件层面的server,不是物理机。
    2017-03-13

提问者

hufeng719系统工程师, 山东莱钢永锋钢铁

问题状态

  • 发布时间:2017-03-07
  • 关注会员:8 人
  • 问题浏览:15499
  • 最近回答:2017-03-10
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30