FullGC的一些常见原因

更新时间:2023-06-17 07:48:27 阅读: 评论:0

FullGC的⼀些常见原因in turn>crisps
1. ()⽅法的调⽤
2. ⽼年代不⾜
3. 永久代不⾜
4. concurrent mode failure
dial
情人节快乐 英文concurrent mode failure是在执⾏CMS GC的过程中同时有对象要放⼊⽼年代,⽽此时⽼年代空间不⾜造成的(有时候“空间不⾜”是CMS GC时当前的浮动垃圾过多导致暂时性的空间不⾜触发Full GC)。
相关参数:-XX:+UCMSInitiatingOccupancyOnly ,如果没有设置此参数,虚拟机会根据收集的数据决定是否触发(建议线上环境带上这个参数,不然会加⼤问题排查的难度)。
情人节英语怎么说相关参数:-XX:CMSInitiatingOccupancyFraction=80,即⽼年代满80%时触发CMS GC。设置太⾼,就容易产⽣concurrent mode failure,设置过低,CMS GC⼜太过频繁。
相关参数:-XX:UCMSCompactAtFullCollection=true,由于CMS没有对内存进⾏压缩,所以会有内存碎⽚,设置此参数,默认每次执⾏Full GC的时候会进⾏整理压缩,⽬前默认是true。
手技>alanis moristte
相关参数:-XX:CMSFullGCsBeforeCompaction=n,指定多少次不压缩的CMS GC刚才之后,跟着来⼀次带压缩的CMS GC。默认是0,表⽰每次发⽣forground的cms gc 都会进⾏压缩,但压缩会影响暂停时间,因此可以适当调整次参数。
5. promotion failed
minor gc时年轻代的存活区空间不⾜⽽晋升⽼年代,⽼年代⼜空间不⾜⽽触发full gc。
出国英语相关参数: -XX:SurvivorRatio=8,设置eden和survivor的⽐例,默认8:1。
相关参数: -XX:MaxTenuringThreshold=15,最多经过多少次minor gc后存活的年轻代对象会晋升⽼年代,默认15。
8年级下册英语6. 统计得到的Minor GC晋升到旧⽣代的平均⼤⼩⼤于⽼年代的剩余空间
当准备要触发⼀次young GC时,如果发现统计数据说之前young GC的平均晋升⼤⼩⽐⽬前old gen剩余的空间⼤,则不会触发young GC⽽是转为触发full GC(因为HotSpot VM的GC⾥,除了CMS的concurrent collection之外,其它能收集old gen的GC都会同时收集整个GC堆,包括young gen,所以不需要事先触发⼀次单独的young GC)。
>莲雾 英文

本文发布于:2023-06-17 07:48:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/973966.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:压缩   触发   空间   参数   相关
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图