内存泄漏故障排查
作为一名运维工程师,Weblogic内存不足或内存泄漏是常见的故障。如何排查呢?

故障症状及原因
JVM会抛出Java.lang.OutOfMemoryError异常,服务响应缓慢或不响应业务请求,应用程序可以忽略错误或处理异常。可能原因有:没有足够的堆;对象的活动时间过长;应用程序在内存中缓存对象过多;内存泄漏;因存在jvm错误未能执行完整的GC;内存碎片。
排查步骤
首先获取应用进程号ps,然后查看pidjvm堆使用情况、垃圾回收情况jstat,开启OOM快照,dump查看方法栈信息jstack-lpid>xxx,dump查看JVM内存分配以及使用情况jmap-heappid>xxx,dumpjvm二进制的内存详细使用情况(需要借用内存分析工具如:MemoryAnalyzer(MAT)来分析)jmap-dump:format=b,file=xxx。
解决方案
如果出现年老代堆空间被占满异常或持久代被占满异常,需要分别进行对应的解决方案,例如根据垃圾回收前后的情况对比,同时根据对象引用情况(常见的集合对象引用)分析,增加持久代内存等。
此外,在排查故障时,可以借助堆快照、线程快照等工具来辅助分析,提高排查效率。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6545.html
