`
longdick
  • 浏览: 584781 次
  • 性别: 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(Java Virtual Machine)是Java程序运行的核心组件,它负责解释和执行字节码。然而,当JVM出现严重错误或无法恢复的问题时,它可能会崩溃并生成一个崩溃日志,这通常被称为`hs_err_pid.log`文件。这篇内容将深入...

    深入理解JVM&G1GC

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

    深入理解JVM&G1; GC

    《深入理解JVM & G1 GC》一书深入剖析了Java虚拟机(JVM)的工作原理,特别是针对垃圾收集器(GC)中的G1(Garbage-First)算法进行了详尽的探讨。JVM是Java程序运行的基础,它负责解析、编译、执行Java代码,并管理...

    年轻代gc jvm crash

    "年轻代GC JVM crash"可能是因为在垃圾回收过程中遇到了严重问题,导致JVM崩溃。这可能是由于以下原因: 1. **内存溢出**:如果年轻代的空间不足以容纳新分配的对象,或者Survivor区无法容纳从Eden区晋升的对象,就...

    JVM crash 错误日志分析

    在Java开发过程中,JVM(Java Virtual Machine)的崩溃可能会导致应用程序无法正常运行,严重影响服务的稳定性和用户体验。当JVM出现崩溃时,系统会产生一个名为“hs_err_pid.log”的错误日志文件,这个文件包含了...

    深入理解JVM & G1 GC

    《深入理解JVM & G1 GC》这篇文章和相关压缩包文件主要聚焦于Java虚拟机(JVM)的内存管理,特别是垃圾收集器(GC)的优化,特别是G1(Garbage-First)垃圾收集器的深度解析。下面将详细阐述JVM、GC的基本概念,...

    jvm 参数及gc详解

    Java虚拟机(JVM)是Java程序运行的基础,它的配置参数和垃圾收集(GC)机制对于优化应用程序性能至关重要。本文将深入探讨JVM参数及其与Java垃圾收集相关的知识。 一、JVM参数详解 JVM参数可以分为三类:启动参数...

    java jvm GC和GC Tuning 详解

    java jvm GC和GC Tuning详解

    jvm和gc详解及调优

    《JVM和GC详解及调优》是一本深入解析Java虚拟机(JVM)和垃圾收集(Garbage Collection,简称GC)的专业书籍,对于Java开发者来说,是进阶提升的必备资料。书中详尽地阐述了JVM的工作原理,以及如何进行有效的性能...

    JVM与GC调优课程视频

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

    深入理解JVM & G1 GC.rar

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

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

    Java虚拟机(JVM)的垃圾回收(GC)机制是Java程序高效运行的关键部分,它自动管理内存,释放不再使用的对象以避免内存泄漏。本文主要探讨JVM堆内存的结构和GC的工作原理,以及如何进行性能调优。 JVM堆是Java应用...

    jvm gc

    Java虚拟机(JVM)的垃圾收集(Garbage Collection, GC)是Java程序运行时管理内存的关键机制。它自动地识别并释放不再使用的对象,从而避免了程序员手动管理内存可能导致的内存泄漏问题。理解JVM的GC对于优化Java...

    JVM_GC调优

    ### JVM_GC调优详解 #### 一、JVM体系结构概览 Java虚拟机(JVM)作为Java程序的运行环境,其内部结构复杂且高效。为了更好地理解JVM_GC调优,我们首先来了解一下JVM的基本组成部分。 1. **类装载器子系统(Class ...

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

    《JVM、GC详解及调优》是一份深入解析Java虚拟机(JVM)和垃圾收集(Garbage Collection,简称GC)的详细资料。本文将根据提供的信息,深入阐述JVM的工作原理,GC的机制以及如何进行JVM的性能调优。 首先,JVM是...

    JVM调优,GC算法汇总

    其中,垃圾收集(Garbage Collection, GC)是JVM管理内存的关键机制。GC的主要目标是自动回收不再使用的对象所占用的内存空间,以防止内存泄漏,并确保程序能够持续稳定地运行。 GC的工作原理可以分为几个主要阶段...

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

    "JVM&g1gc;带书签,完整版本"的学习资料提供了深入了解JVM内存管理和G1垃圾收集器的详细内容。通过对G1的理解和实践,开发者可以更好地优化Java应用的性能,降低垃圾收集对应用运行的影响,实现更高效的内存管理。这...

    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)

Global site tag (gtag.js) - Google Analytics