WebSphere存在大对象导致内存溢出宕机

几天内宕机了两次,都是因为大对象吃爆了内存,诡异的是这两次的大对象竟然一个字节都不差,太诡异了吧,分析heapdump文件和javacore文件都没有头绪
注意Object的大小:

QQ图片20140212161452.jpg




还有heapdump的树状图(两次的都差不多):




附上两次产生的javacore文件

附件:

附件图标20140210.zip (978.98 KB)

参与24

21同行回答

zhangpeng759zhangpeng759软件开发工程师北京文思海辉嘉讯科技有限公司
回复 3# niuph     首先谢谢大家的热心回复,不知道怎么@每个人,就都回复一下吧,被宕机的事情折磨了一个多月,3月24号,又宕机了一次,这一次请到了IBM的专家进行原因的分析,由于最近的一次宕机没有javacore文件,heapdump文件也是损坏的,无法入手,只能分析以前的日志,也就是...显示全部
回复 3# niuph


    首先谢谢大家的热心回复,不知道怎么@每个人,就都回复一下吧,被宕机的事情折磨了一个多月,3月24号,又宕机了一次,这一次请到了IBM的专家进行原因的分析,由于最近的一次宕机没有javacore文件,heapdump文件也是损坏的,无法入手,只能分析以前的日志,也就是我附件中上传的javacore文件,2月8号的日志有三个,用jca工具加载后,进行对比监控信息(Compare Monitors),发现在三个时间点都有一个线程在等待,那就是LocalNotificationServiceDispatcher,上网搜索了一下,这个是IBM的漏洞问题,我发帖子的时候忘了说WAS版本了,是6.1.0.0,然后我上网搜索LocalNotificationServiceDispatcher,找到了这个网页http://www-01.ibm.com/support/docview.wss?uid=swg1PM31699,大概意思就是说版本过低,得打补丁,听IBM工程师的意思说现在IBM对WAS6.X的版本好像都停止支持了,现在的服务器一般都是用7.0,我们也该升级一下服务器了,所以这几次的宕机终于找到了原因,对客户也有了一个交代。主要是谢谢大家的指导,从大家的回复上学习了不少知识,对宕机原因的分析也有了一个新的认识,再次感谢大家!收起
软件开发 · 2014-03-26
浏览1143
zhangpeng759zhangpeng759软件开发工程师北京文思海辉嘉讯科技有限公司
回复 2# 暗黑城堡new     首先谢谢大家的热心回复,不知道怎么@每个人,就都回复一下吧,被宕机的事情折磨了一个多月,3月24号,又宕机了一次,这一次请到了IBM的专家进行原因的分析,由于最近的一次宕机没有javacore文件,heapdump文件也是损坏的,无法入手,只能分析以前的日志,...显示全部
回复 2# 暗黑城堡new


    首先谢谢大家的热心回复,不知道怎么@每个人,就都回复一下吧,被宕机的事情折磨了一个多月,3月24号,又宕机了一次,这一次请到了IBM的专家进行原因的分析,由于最近的一次宕机没有javacore文件,heapdump文件也是损坏的,无法入手,只能分析以前的日志,也就是我附件中上传的javacore文件,2月8号的日志有三个,用jca工具加载后,进行对比监控信息(Compare Monitors),发现在三个时间点都有一个线程在等待,那就是LocalNotificationServiceDispatcher,上网搜索了一下,这个是IBM的漏洞问题,我发帖子的时候忘了说WAS版本了,是6.1.0.0,然后我上网搜索LocalNotificationServiceDispatcher,找到了这个网页http://www-01.ibm.com/support/docview.wss?uid=swg1PM31699,大概意思就是说版本过低,得打补丁,听IBM工程师的意思说现在IBM对WAS6.X的版本好像都停止支持了,现在的服务器一般都是用7.0,我们也该升级一下服务器了,所以这几次的宕机终于找到了原因,对客户也有了一个交代。主要是谢谢大家的指导,从大家的回复上学习了不少知识,对宕机原因的分析也有了一个新的认识,再次感谢大家!收起
软件开发 · 2014-03-26
浏览553
swallowluoswallowluo系统架构师中国金融电子化公司
这个问题需要分析heapdump文件才可以,需要看看是具体是哪个类中占用了太多的内存,javacore文件只能看到线程的信息。显示全部
这个问题需要分析heapdump文件才可以,需要看看是具体是哪个类中占用了太多的内存,javacore文件只能看到线程的信息。收起
软件开发 · 2014-03-05
浏览671
hujiqianghujiqiang软件开发工程师icbc
看heapdump图,应该是在io操作上有大对象,要看下是不是有特殊的业务操作。64位的was内存可以尝试设置大一点,能缓解大对象问题,但性能不一定太好显示全部
看heapdump图,应该是在io操作上有大对象,要看下是不是有特殊的业务操作。64位的was内存可以尝试设置大一点,能缓解大对象问题,但性能不一定太好收起
银行 · 2014-02-23
浏览727
moster33moster33软件架构设计师中科软
javacore中runnable的线程,逐个分析吧,也不会有太多,根据相关功能,然后到生产或测试环境复现根据你说的现象,应该是某个功能做某个操作引起的,不是并发。另外还要关注数据库,最好有发生问题时的awr...显示全部
javacore中runnable的线程,逐个分析吧,也不会有太多,根据相关功能,然后到生产或测试环境复现
根据你说的现象,应该是某个功能做某个操作引起的,不是并发。另外还要关注数据库,最好有发生问题时的awr收起
互联网服务 · 2014-02-20
浏览745
abelabel软件架构设计师IBM
把heapdump占用76%的那个树形结构点开,最后你就能看到是什么类占用这么大的内存了。如果是应用的,就分析应用逻辑吧。基本上都是把数据放到数组里面,没有清理导致的。显示全部
把heapdump占用76%的那个树形结构点开,最后你就能看到是什么类占用这么大的内存了。如果是应用的,就分析应用逻辑吧。基本上都是把数据放到数组里面,没有清理导致的。收起
软件开发 · 2014-02-19
浏览682
fwhtt934fwhtt934软件开发工程师中国石油
减少大对象。或者把大对象分拆位小对象显示全部
减少大对象。或者把大对象分拆位小对象收起
互联网服务 · 2014-02-19
浏览682
linmaonanlinmaonan系统工程师恒大集团
建议是把JVM参数中加上GC日志打印大对象信息,filter=#2m(这样代码大于2M的大对象都会打印出来),以便后续将大对象抓取出来,提供开发优化代码。显示全部
建议是把JVM参数中加上GC日志打印大对象信息,filter=#2m(这样代码大于2M的大对象都会打印出来),以便后续将大对象抓取出来,提供开发优化代码。收起
系统集成 · 2014-02-14
浏览736
guansnowguansnow系统分析师科大讯飞
需要分析那些大对像是干什么的,为什么要吃内存,还需要分析一下日志;显示全部
需要分析那些大对像是干什么的,为什么要吃内存,还需要分析一下日志;收起
系统集成 · 2014-02-13
浏览683
hnyzlboyhnyzlboy项目经理用友软件
给我发的问题类似 , 我遇到的问题也是大对象吃光了内存。可以把你的 JVM 设置成 1024-3076,再观察下,重点还的关注GC日志显示全部
给我发的问题类似 , 我遇到的问题也是大对象吃光了内存。可以把你的 JVM 设置成 1024-3076,再观察下,重点还的关注GC日志收起
互联网服务 · 2014-02-12
浏览715

提问者

zhangpeng759
软件开发工程师北京文思海辉嘉讯科技有限公司

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-02-12
  • 关注会员:2 人
  • 问题浏览:13123
  • 最近回答:2014-06-05
  • X社区推广