`
longdick
  • 浏览: 579951 次
  • 性别: Icon_minigender_1
  • 来自: 0
社区版块
存档分类
最新评论

jvm crash,疑似GC的bug

    博客分类:
  • JVM
阅读更多
在对一个应用做压力的时候,不定时发生jvm crash,查看hs_error.log
内容摘要如下:

Current thread (0x0000000051f8f800):  GCTaskThread [stack: 0x00000000413c2000,0x00000000414c3000] [id=15399]

Heap
PSYoungGen      total 348288K, used 347520K [0x00002aaae0cb0000, 0x00002aaaf6200000, 0x00002aaaf6200000)
  eden space 347072K, 100% used [0x00002aaae0cb0000,0x00002aaaf5fa0000,0x00002aaaf5fa0000)
  from space 1216K, 36% used [0x00002aaaf5fa0000,0x00002aaaf6010000,0x00002aaaf60d0000)
  to   space 1152K, 50% used [0x00002aaaf60e0000,0x00002aaaf6170000,0x00002aaaf6200000)
PSOldGen        total 699072K, used 324379K [0x00002aaab6200000, 0x00002aaae0cb0000, 0x00002aaae0cb0000)
  object space 699072K, 46% used [0x00002aaab6200000,0x00002aaac9ec6f40,0x00002aaae0cb0000)
PSPermGen       total 65536K, used 34650K [0x00002aaaae200000, 0x00002aaab2200000, 0x00002aaab6200000)
  object space 65536K, 52% used [0x00002aaaae200000,0x00002aaab03d68d8,0x00002aaab2200000)


看样子似乎是GC的时候crash掉了,heap的状态是eden space  100% used,看样子是在eden区转移到survival区时,由于某些原因crash。

鉴于jvm启动时使用的gc为ParallelGC,于是试着换成串行GC和并行GC,压了18个小时都没有发生crash。
使用的环境是64位 liunx系统,java 1.6.0_18 64bit。
初步怀疑是ParallelGC在并发回收处理eden区内存对象的时候的bug导致,在64位机器和32位机器上都有这个问题。
不知道大家有没有碰到过这个问题?


疑似jdk 6u18 的 bug
http://www.oracle.com/technetwork/java/javase/6u18-142093.html

#
Card-Marking Optimization Issue
#

A flaw in the implementation of a card-marking performance optimization in the JVM can cause heap corruption under some circumstances. This issue affects the CMS garbage collector prior to 6u18, and the CMS, G1 and Parallel Garbage Collectors in 6u18. The serial garbage collector is not affected. Applications most likely to be affected by this issue are those that allocate very large objects which would not normally fit in Eden, or those that make extensive use of JNI Critical Sections (JNI Get/Release*Critical).

This issue will be fixed in the next Java SE 6 update.

Meanwhile, as a workaround to the issue, users should disable this performance optimization by -XX:-ReduceInitialCardMarks.
分享到:
评论
2 楼 hobitton 2010-11-18  
http://sesame.iteye.com/blog/799952
1 楼 yangyi 2010-11-18  
-XX:-ReduceInitialCardMarks 1.6_18 bug

相关推荐

    jvm crash的崩溃日志详细分析及注意点

    本篇文章主要介绍了jvm crash的崩溃日志详细分析及注意点。具有很好的参考价值,下面跟着小编一起来看下吧

    深入理解JVM&G1GC

    资源名称:深入理解JVM & G1 GC内容简介:G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。《深入理解JVM & G1 GC》主要为学习Java语言的...

    JVM crash 错误日志分析

    NULL 博文链接:https://myspace1916.iteye.com/blog/1441465

    年轻代gc jvm crash

    NULL 博文链接:https://lovewen-2004.iteye.com/blog/2427798

    jvm 参数及gc详解

    jvm配置参数详解,以及Java gc详解

    深入理解JVM&G1; GC

    深入理解JVM &G1; GC内部结构,年轻代,老年代,元空间等分布情况

    JVM与GC调优课程视频

    JVM与GC调优课程视频 〖课程介绍〗: JVM与GC调优课程视频 〖课程目录〗: 1.笔记/ ├── 第1篇-字节码篇.png?x-oss-process=style/pnp8 ├── 第2篇-类的加载篇.png?x-oss-process=style/pnp8 ├── 第3篇-运行时...

    JVM&g1gc;带书签,完整版本

    最新的G1学习资料,JVM&g1gc;带书签,完整版本,好书。

    JVM_GC调优

    JVM_GC调优

    深入理解JVM & G1 GC

    深入jvm垃圾回收 调优细节。

    深入理解JVM & G1 GC.rar

    G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。本书主要为学习Java语言的学生、初级程序员提供GC的使用参考建议及经验,着重介绍了G1 GC ...

    JVM常用的GC策略介绍

    描述了JVM的常用GC算法、GC策略和常用的垃圾回收器,适用于JDK1.7。

    JVM调优,GC算法汇总

    JVM调优,GC算法汇总,面试必问,早点准备,很好的资料!

    Jvm1.8_GC.mmap

    GC:Gabage Collection,指JVM堆内存区域的垃圾回收 Minor GC:年轻代垃圾回收,所有的Majar GC都会触发进程暂停,只是这个实际很短 Major GC:也叫Full GC,年老代垃圾回收 年轻代和年老代的GC策略是不...

    JVM GC原理深入学习.pdf

    本文档可以作为学习JVM GC的工具书所使用,对于想深入学习JVM GC原理的同学,这一本书就足够了。因为本文档是作者花费数月时间,查阅GC相关的国内外众多资料并加以思路清晰的条目化而形成。因为篇幅所限,可能有部分...

    jvmgc过程介绍

    jvmgc过程介绍(jpg)

    JVM垃圾回收机制与GC性能调优

    JVM堆相关知识 为什么先说JVM堆? JVM的堆是Java对象的活动空间,程序中的类的对象从中分配空间,其存储着正在...这些对象的建立方式就是那些new一类的操作,当对象无用后,是GC来负责这个无用的对象(地球人都知道)。

    jvm和GC演讲ppt

    此文档是本人在公司做技术分享,个人做的ppt。如果有同学需要做jvm和gc技术演讲得,可以参考此文档。

    JVM、GC详解及调优_jvm_JVM、GC详解及调优_

    JVM、GC详解及调优,资料很详细,清楚,仔细阅读

    JVM_GC_-调优总结.pdf

    JVM_GC_-调优总结

Global site tag (gtag.js) - Google Analytics