weblogic节点内存溢出检测及处理方式
1、weblogic节点内存溢出的现象就是系统运行变的缓慢,同时在后台应用日志中出现Java.lang.OutOfMemoryError: PermGen space
2、在服务器上使用top命令,可以看到对应的java进程CPU使用率非常高(1000%颍骈城茇-4000%,CPU使用率高是JVM使用很多GC线程想要努力回收内存导致,也不是唯一监测指标,不过比较容易看);
3、捂执涡扔使用jstat -gcutil $PID 1000 100命令监测2中发现的异常进程(jstat 命令只要装了JDK,设置了环境变量就可使用,-gcutil指定监控GC情况,$PID告诉命鸡舍诽浓令需要监控的程序进程ID,1000代表1000ms显示一条,100代表监控100次;也就是每秒显示对应PID的GC情况,显示100);使用后会看到以下输出(正常情况的输出):

5、下面是内存溢出的情况下jstat的输出:年轻代保持100%左右的满负荷使用率无法回收,年老代也维持在很高的水平,即使FULLGC次数从32增加到33次,年轻代依然很快就恢复到100%;


8、获得DMP之后可以用多种工具分析,我们这里使用eclipse的MemoryAnalyzer插件分析;
9、打开eclipse,使用open->open file打开生成的dmp文件

11、Eclipse 将会自动在存放dmp目录下自咿蛙匆盗动生成$pid_Leak_Suspects.zip。打开zip文件中的index.html。即可开始分析,会分析出dmp文件保存的线程内存使用率,如下图,我们可分析到4.4G被占用而没有释放,只剩710.8M,我们接着点击detail就可以查看到哪个代码是泄露点,并把相应报告反馈给开发。

12、找到问题所在后,临时解决方案是将溢出的java进程重启即可,即kill -3 对应进程号