一 问题描述:
监控系统XXX、YYY、ZZZ,3月不定时有一个集群server挂起现象。
主要情况描述如下:
二 分析过程:
1.查看BHM系统weblogic信息情况,发现WLS为9.2mp3,JDK版本为1.5.12;查看问题点serverlog,发现日志很干净,不存在有应用程序导致server挂起的error信息;另外查看到大约一个月均会产生一个Jrockit.PID.mdump文件,跟你说的监控系统平均一个月挂一次一致。
2.查看mdump文件,有如下报错:
3.根据相关oracle support案例分析,出现memory at 0x00000000 could not be read导致Jrockit JVM崩溃此情况的原因是:
1.JVM调用本地内存时,内存没法读写或者分配失败崩溃;2内存条故障。
这种问题细致上可分为四种:1.本地内存不足;2.Jrockit兼容性问题;3.程序调用文件异常;4.内存条故障.
4.查看监控系统cpu、内存使用情况,发现JVM和ative内存都比较充足,排除内存不足导致的server崩溃问题。
5.另外查看下图可发现:heap-GOOD、0 OverFlow、0 OOM。但需调试查看下方法com/cssnet/的问题。
三 分析结论:问题基本确定是Illegal memory access(非法内存访问)导致JVM崩溃,然后server挂起BHM系统不提供服务了。
四 分析建议:建议先将Jrockit1.5.0.12版本升级到最新Jrockit1.5.0.24版本,排除Jrockit版本过时兼容性问题;并且调试com/cssnet/方法排除应用程序的相关method的异常;内存条方面导致 “0x00000000 could not be read”的不定性错误,可在排除上述错误后在行探查。
该贴被funny编辑于2014-3-13 11:26:56该贴被funny编辑于2014-3-13 11:29:29