`

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 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:...

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

    51JAVACMS是一款基于JAVA平台研发的内容管理系统,依托JAVA的高效、安全、稳定等优势,并且汲取了php的简洁和方便,开创国内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...

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

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

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

    Java完整CMS(可直接拿来用) 不用自己再去慢慢的写了。

    JAVA开源cms

    JAVA开源cms

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

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

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

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

    java CMSjava CMSjava CMS

    java CMS

    java_cms源码2018版

    java_cms源码2018版.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的开发源码-Jease Java CMS.zip 基于java的...

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

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

    javaCMS 生成静态页面简单列子

    java CMS 生成静态页面 通过后台发布来改变网站内容

    java开源CMS管理系统jeetemp

    java..java开源CMS管理系统jeetemp 为了压缩文件我把WEB-INF下面的lib包打包放在 网盘下载地址:http://pan.baidu.com/s/1FMOb0

    完整的开源java版CMS

    开源的java版内容管理系统 ,内含内容管理源代码和多套网站模板 ,方便快速建站和网站管理

    Java CMS内容管理系统

    Java CMS内容管理系统

    jeecms java版本CMS

    jeecms java版本CMS

    基于java的CMS系统

    本系统采用纯java语言编写,操作方便,功能齐全,自动生成静态化页面,便于搜索引擎收录。 网站栏目完全自定义,满足是常网站的一切需求。用户只需会打字,简单排版,即可以轻松快捷的建立起属于自己的站点。 本系统...

    国产java类cms v3.0.161109

    tjpcms是一套基于java的cms解决方案,开源免费。其独有的实时配置增删改查的功能,是其区别于同类cms的最大特点,也是最大优势,极大减少了重复劳动。懂jsp即可实现快速建站、静态化等,学习成本极低。文档齐全,...

Global site tag (gtag.js) - Google Analytics