`

Java之CMS GC Causes

    博客分类:
  • Java
阅读更多

Allocation Failure

Allocation Failure happens when there isn't enough free space to create new objects in Young generation. Allocation failures triggers Young GC.

On Linux, the JVM can trigger a GC if the kernel notifies there isn't much memory left via mem_notify.

  • 产生原因:新生代没有足够的空间分配对象。
  • 触发GC类型:Young GC。

GCLocker Initiated GC

The GC locker prevents GC from occurring when JNI code is in a critical region. If GC is needed while a thread is in a critical region, then it will allow them to complete, i.e. call the corresponding release function. Other threads will not be permitted to enter a critical region. Once all threads are out of critical regions a GC event will be triggered.

  • 产生原因:如果线程执行在JNI临界区时,刚好需要进行GC,此时GC locker将会阻止GC的发生,同时阻止其他线程进入JNI临界区,直到最后一个线程退出临界区时触发一次GC。
  • 触发GC类型:GCLocker Initiated GC。

Promotion Failure

Promotion Failure happens when there is no continuous memory space to promote larger object, even though total free memory is large enough. This is problem is called as heap fragmentation. Promotion Failure typically triggers Full GC.

  • 产生原因:老年代没有足够的连续空间分配给晋升的对象(即使总可用内存足够大)。
  • 触发GC类型:Full GC。
  • 解决方法:增加堆内存,特别是新生代内存,尽可能让对象在新生代被回收掉。减少对象的创建,缩短对象的生命周期。

Concurrent Mode Failure

The CMS collector uses one or more garbage collector threads that run simultaneously with the application threads with the goal of completing the collection of the tenured generation before it becomes full. In normal operation, the CMS collector does most of its tracing and sweeping work with the application threads still running, so only brief pauses are seen by the application threads. However, if the CMS collector is unable to finish reclaiming the unreachable objects before the tenured generation fills up, or if an allocation cannot be satisfied with the available free space blocks in the tenured generation, then the application is paused and the collection is completed with all the application threads stopped. The inability to complete a collection concurrently is referred to as concurrent mode failure and indicates the need to adjust the CMS collector parameters. Concurrent mode failure typically triggers Full GC.

  • 产生原因:CMS GC运行期间,老年代预留的空间不足以分配给新的对象。
  • 触发GC类型:Full GC。
  • 解决方法:适当调低-XX:CMSInitiatingOccupancyFraction,或者增加老年代内存。

关于GCLocker Initiated GC

shipilev.net/jvm-anatomy…

bugs.openjdk.java.net/browse/JDK-…

www.zhihu.com/question/61…

docs.oracle.com/javase/8/do…

docs.oracle.com/javase/8/do…

 

转载请注明来源:http://zhanjia.iteye.com/blog/2434083

 

个人公众号

更多文章,请关注公众号:二进制之路

 

0
0
分享到:
评论

相关推荐

    51javacms CMS系统 v1.0.9 源代码

     51JAVACMS是一款基于JAVA平台研发的内容管理系统,依托JAVA的高效、安全、稳定等优势,并且汲取了php的简洁和方便,开创国内JAVA版开源CMS之先河。 这个系统没有去做日志;审核;复杂权限等企业级的功能;主要想...

    完整的开源java版CMS

    Java CMS(内容管理系统)是一种基于Java技术开发的用于构建、管理和维护网站的软件工具。它提供了用户友好的界面,使得非技术人员也能轻松地创建、编辑和发布内容。开源的Java CMS意味着其源代码对外公开,允许用户...

    51javacms CMS系统 v1.0.9 正式版.zip

    51JAVACMS是一款基于JAVA平台研发的内容管理系统,依托JAVA的高效、安全、稳定等优势,并且汲取了php的简洁和方便,开创国内JAVA版开源CMS之先河。 这个系统没有去做日志;审核;复杂权限等企业级的功能;主要想的...

    JAVA gc日志分析工具GChisto及CMS GC补丁

    GChisto及CMS GC相应补丁文件,补丁文件未亲测。 This patch adds the following features and improvements when using CMS GC in incremental mode: detecting Full GCs corrected parsing errors when using -XX:...

    Java完整CMS(可直接拿来用)

    Java CMS(Content Management System,内容管理系统)是一种基于Java技术构建的用于管理数字内容的应用软件。这个"Java完整CMS"提供了一套完整的解决方案,允许开发者和非技术人员快速搭建和管理网站内容,无需从零...

    基于java的开发源码-tjpcms国产java类cms.zip

    基于java的开发源码-tjpcms国产java类cms.zip 基于java的开发源码-tjpcms国产java类cms.zip 基于java的开发源码-tjpcms国产java类cms.zip 基于java的开发源码-tjpcms国产java类cms.zip 基于java的开发源码-tjpcms...

    JAVA开源cms

    Java开源CMS,全称为Java Open Source Content Management System,是一种基于Java编程语言开发的内容管理系统。它为网站建设和管理提供了一整套解决方案,允许用户无需深入理解编程技术就能创建、编辑和管理网站...

    51javacms CMS系统 v1.0.9 源代码.rar

    51JAVACMS是一款基于JAVA**台研发的内容管理系统,依托JAVA的高效、安全、稳定等优势,并且汲取了php的简洁和方便,开创国内JAVA版开源CMS之先河。 这个系统没有去做**志;审核;复杂权限等企业级的功能;主要想...

    Java开发的内容管理系统(java cms).zip

    Java开发的内容管理系统(java cms)。使用SpringBoot、MyBatis、Vue3、ElementPlus2、Vite2、TypeScript等技术开发。 Java开发的内容管理系统(java cms)。使用SpringBoot、MyBatis、Vue3、ElementPlus2、Vite2、...

    现代化的Java博客 / CMS 系统.zip

    现代化的Java博客 / CMS 系统 现代化的Java博客 / CMS 系统 现代化的Java博客 / CMS 系统 现代化的Java博客 / CMS 系统 现代化的Java博客 / CMS 系统 现代化的Java博客 / CMS 系统 现代化的Java博客 / CMS ...

    Java开源内容管理系统(java cms).zip

    Java开源内容管理系统(Java CMS)是一种基于Java技术构建的用于创建、管理和发布数字内容的软件平台。这个系统通常包括一系列工具,允许用户无需深入编程知识就能创建、编辑、组织和展示网页内容。Java CMS的核心...

    Java GC的过程

    Java垃圾收集(Garbage Collection, 简称GC)是Java编程中的一项重要特性,它自动管理内存,释放不再使用的对象,避免了程序员手动管理内存可能导致的内存泄露问题。本篇将深入探讨Java中的GC过程。 一、Java内存...

    基于Java的CMS内容管理系统 附Windows/Liniux 完整安装文件及demo

    Magnolia 是一种开放式 Java 内容管理系统,可在企业规模上实现智能手机的简便性。受移动启发的 HTML5 用户界面通过可定制的、以任务为中心的应用程序、称为 Pulse 的通知流以及用于快速访问工作区的收藏夹系统运行...

    java_cms源码2018版

    Java CMS(内容管理系统)是用于构建和管理网站的软件平台,它允许非技术人员通过图形用户界面来添加、编辑和发布内容。2018版的Java CMS源码提供了一个全面的功能集,包括多个预设栏目,支持多种媒体类型,使得网站...

    免费可商用的开源Java CMS内容管理系统

    免费可商用的开源Java CMS内容管理系统/基于SpringBoot 2/前端Vue3/element plus/提供上百套模板,同时提供实用的插件/每两个月收集issues问题并更新版本/一套简单好用开源免费的Java CMS内容管理系/一整套优质的开源...

    java CMSjava CMSjava CMS

    Java CMS(Content Management System)是基于Java编程语言开发的内容管理系统,用于构建和管理网站内容。在Java领域,CMS系统因其可扩展性、安全性和跨平台特性而被广泛采用。本篇将深入探讨Java CMS的核心概念、...

    18个Java开源CMS系统一览.doc

    ### Java开源CMS系统知识点概述 #### 1. InfoGlue - **简介**: InfoGlue是一款采用Java语言编写的高级内容管理系统(CMS),以其高度可扩展性和稳健性著称。 - **特点**: - 完全支持多语言环境,满足国际化需求。 ...

    Java CMS内容管理系统

    Java CMS内容管理系统是一种基于Java开发语言构建的企业级内容管理解决方案,它主要用于管理和发布网站内容,提供了一套完整的、可扩展的、易于维护的系统架构。Java CMS的核心优势在于其跨平台性、稳定性和安全性,...

    java原生对接苹果cms V10 APP源码 仿麻花影视

    Java原生对接苹果CMS V10的APP源码是一个针对移动设备的应用程序开发项目,旨在构建一个类似麻花影视的视频播放平台。这个项目的核心是使用Java编程语言,结合苹果CMS V10的内容管理系统,为用户提供流畅的视频浏览...

    基于java的开发源码-Jease Java CMS.zip

    基于java的开发源码-Jease Java CMS.zip 基于java的开发源码-Jease Java CMS.zip 基于java的开发源码-Jease Java CMS.zip 基于java的开发源码-Jease Java CMS.zip 基于java的开发源码-Jease Java CMS.zip 基于java的...

Global site tag (gtag.js) - Google Analytics