环境:jdk1.6.0_23 Linux 2.6.32-220.17.1.el6.x86_64 tomcat 采用-XX:+UseParNewGC -XX:+UseConcMarkSweepGC垃圾收集
现象:jvm意外crash,生成hs_err_pid****.log,无dump文件生成。
hs_err_pid****.log关键字包含:SIGSEGV GCTaskThread
crash难以定位,比较一致的一点是崩溃时eden space通常会100%,怀疑是gc时出问题,检查jdk bug库,未找到类似问题。调整jvm参数,修改xmn,xss,-XX:-ReduceInitialCardMarks,-XX:-UseTLAB等,仍然宕机,采用jdk1.6.0_43后,系统稳定,不再出现crash。
总结:
1、系统中可能存在大对象/内存使用,或其他性能瓶颈,导致eden区暴增,导致gc crash;
2、低版本jdk中存在隐患,当出现类似崩溃问题时,请尝试是否可用高版本jdk规避。