JVM快速调优手册之四:堆内存分配的CMS公式解析-创新互联

JVM 堆内存组成

Java堆由Perm区和Heap区组成,Heap区由Old区和New区(也叫Young区)组成,New区由Eden区、From区和To区(Survivor)组成。

创新互联建站是专业的龙圩网站建设公司,龙圩接单;提供网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行龙圩网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

JVM快速调优手册之四: 堆内存分配的CMS公式解析

Eden区用于存放新生成的对象。Eden中的对象生命不会超过一次Minor GC。Survivor Space 有两个,存放每次垃圾回收后存活的对象,即图的S0和S1。Old Generation Old区,也称老生代,主要存放应用程序中生命周期长的存活对象

公式

将EDEN与From survivor中的存活对象存入To survivor区时,To survivor区的空间不足,再次晋升到old gen区,而old gen区内存也不够的情况下产生了promontion faild从而导致full gc.那可以推断出:

eden+from survivor < old gen区剩余内存时,不会出现promontion faild的情况。

即:

(Xmx-Xmn)*(1-CMSInitiatingOccupancyFraction/100)>=(Xmn-Xmn/(SurvivorRatior+2))

进而推断出:

CMSInitiatingOccupancyFraction <= ((Xmx-Xmn)-(Xmn-Xmn/(SurvivorRatior+2)))/(Xmx-Xmn)*100

参数含义
Xmx-XmnOld区大小
CMSInitiatingOccupancyFraction/100Old区百分之多少时,cms开始gc
1-CMSInitiatingOccupancyFraction/100Old区开始gc回收时剩余空间百分比
(Xmx-Xmn)*(1-CMSInitiatingOccupancyFraction/100)Old区开始gc回收时剩余空间大小
(Xmn-Xmn/(SurvivorRatior+2))eden+from survivor区的大小

参数

参数含义
-Xmxjava heap大值。建议均设为物理内存的80%。不可超过物理内存
-Xmnjava heap最小值,一般设置为Xmx的3、4分之一,等同于-XX:NewSize 和 -XX:MaxNewSize ,其实为young区大小
-XXCMSInitiatingOccupancyFraction=70 :使用cms作为垃圾回收使用70%后开始CMS收集
-XXSurvivorRatio=2: 生还者池的大小,默认是2

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

分享标题:JVM快速调优手册之四:堆内存分配的CMS公式解析-创新互联
转载来源:https://www.cdcxhl.com/article16/hppdg.html

成都网站建设公司_创新互联,为您提供企业建站动态网站网站排名定制网站手机网站建设小程序开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设