在内存调优中, 内存设置越大, 处理请求的效率也就越高, 但同时垃圾收集所需要的时间也就越长, 在垃圾收集期间的处理效率肯定会受影响, 因此需要作出相应的权衡.
关于 promotion failed(晋升失败) : JVM发生Young GC时, Eden区存活的对象 和 Eden区的From块中存活的对象, 两者的体积超过了Eden区中To块的大小, Young GC的悲观策略将使这些存活的对象都迁移到Old区, 而此时Old区的大小不足以容纳这些对象, 从而发生promotion failed, 程序将暂停很长时间.
CMSInitiatingOccupancyFraction的设置技巧: 参考: CMSInitiatingOccupancyFraction计算公式
(Xmx-Xmn) * (1-CMSInitiatingOccupancyFraction / 100) >= (Xmn-Xmn / (SurvivorRatior+2))
进而推断出:
CMSInitiatingOccupancyFraction <= ( (Xmx-Xmn) - (Xmn-Xmn / (SurvivorRatior+2) ) ) / (Xmx-Xmn) * 100
参考资料:
JVM内存管理——垃圾搜集器参数精解
JVM系列三:JVM参数设置、分析
G1(Garbage-First)垃圾回收器
版权声明作者: ma_shoufeng(马瘦风)
出处: 博客园 马瘦风的博客
您的支持是对博主的极大鼓励, 感谢您的阅读.
本文版权归博主所有, 欢迎转载, 但未经博主同意必须保留此段声明, 且在文章页面明显位置给出原文链接, 否则博主保留追究法律责任的权利.