WAS的内存溢出监控?

WAS出现内存溢出的情况,如何进行事前发现?
有没有对应的工具可以使用,或者有was相关的接口

参与20

1同行回答

swallowluoswallowluo  系统架构师 , 中国金融电子化公司
可以通过查看垃圾回收日志中剩余内存的大小或者已用内存的大小进行初步判断,如果JVM的空闲内存一直在减小,那么结果就一定是内存溢出,只不过是时间早晚的问题。如果发现有内存溢出的隐患时,可以通过kill -3或者wsadmin命令生成内存转储文件,使用IBM提供的HA工具对内存转储文件...显示全部

可以通过查看垃圾回收日志中剩余内存的大小或者已用内存的大小进行初步判断,如果JVM的空闲内存一直在减小,那么结果就一定是内存溢出,只不过是时间早晚的问题。
如果发现有内存溢出的隐患时,可以通过kill -3或者wsadmin命令生成内存转储文件,使用IBM提供的HA工具对内存转储文件进行分析,找到溢出点,并进行修改。
如果实在找不到问题原因,并且在垃圾回收日志中可以看到有内存溢出的迹象,那么就要制定定期重启WAS的机制了,然后一直到找到问题为止。

收起
软件开发 · 2017-11-10
浏览2315
  • 谢谢回答,有几个疑点:1、一直减小未必就一定内存溢出,有可能是没有进行fullGC。2、看GC日志、看JVM使用情况,以及剩余内存等,貌似都不能唯一确定是不是内存溢出。3、您后面说的这些措施都是事后的处理,这些都没问题,可是还是不知道如何事前发现
    2017-11-10
  • 在垃圾回收日志中是可以看出哪些是fullGCC,哪些是minorGC的,而且如果没有内存溢出的话,fullGC后,空闲内存会有较大提升,所以看垃圾回收日志是可以看出一些内存溢出的端倪的。 发现有内存溢出的端倪后,就可以获取内存转储文件去分析了,这是在真正出现溢出前做的。 当然如果在应用中,短时间内申请大量内存而造成的溢出,这种办法是没法发现的,只能在事后进行分析了。
    2017-11-10
  • 谢谢。WAS的DM部署架构,dmgr可以检测到appServer的内存溢出情况,然后可以陪着相应的重启等操作。这样的话,我理解是WAS自身(或nodeAgent)已经有了判断内存溢出的逻辑,不知道有没有相应的接口可以开放,这块是否有了解?
    2017-11-10
  • WAS提供了API和Mbean的接口,只要dmgr和nodeagent启动着,这些接口就可以在Java程序中远程调用,通过这些接口的调用可以实现WAS Server启停,获取堆的使用情况(空闲内存、最大小等)等等,不过好像没有找到判断是否已经出现内存溢出的接口。
    2017-11-10

提问者

dogboy
系统运维工程师a

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-11-10
  • 关注会员:4 人
  • 问题浏览:4563
  • 最近回答:2017-11-10
  • X社区推广