JVM -XX:CMSInitiatingOccupancyFraction=90 这个参数是有取值范围的
CMSInitiatingOccupancyFraction值与Xmn的关系公式
promontion faild产生的原因是EDEN空间不足的情况下将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=2048 xmn=256 SurvivorRatior=8(默认值)时 CMSInitiatingOccupancyFraction<=((2048-256)-(2048-256/(8+2)))/(2048-256)*100=87.14
当xmx=128 xmn=36 SurvivorRatior=1时 CMSInitiatingOccupancyFraction<=((128.0-36)-(36-36/(1+2)))/(128-36)*100 =73.913
当xmx=128 xmn=24 SurvivorRatior=1时 CMSInitiatingOccupancyFraction<=((128.0-24)-(24-24/(1+2)))/(128-24)*100=84.615…
当xmx=3000 xmn=600 SurvivorRatior=1时 CMSInitiatingOccupancyFraction<=((3000.0-600)-(600-600/(1+2)))/(3000-600)*100=83.33
CMSInitiatingOccupancyFraction低于70% 需要调整xmn或SurvivorRatior值。
通过CMSInitiatingOccupancyFraction计算公式,计算得出value为73是,可以避免promotion faild问题,同时满足堆内存监控报警值在80%:内存大小128M*80%=102.4M 102.4M-36M=66.4M(老生代达到此值报警) 老生代达到67.15M(92M*0.73)将发生Full GC,所以在老生代大小达到66.4M时也就是WARN报警时将很有可能出现Full GC。
CMSInitiatingOccupancyFraction 设置是有取值范围的超过这个范围的值,按可用范围最大值来算
JVM -XX:CMSInitiatingOccupancyFraction=90 这个参数是有取值范围的相关推荐
- 一行命令获取当前JVM所有可设置的参数以及当前默认值
2019独角兽企业重金招聘Python工程师标准>>> 一行命令获取当前JVM所有可设置的参数以及当前默认值 博客分类: java jvm 一行命令获取当前JVM所有可设置的参数以及 ...
- 【参数】REMOTE_LOGIN_PASSWORDFILE参数三种取值及其行为特性分析
在某些情况下可以使用REMOTE_LOGIN_PASSWORDFILE参数增强系统的安全性,所谓提高安全性就是禁止以SYSDBA或SYSOPER特权用户从客户端登陆到数据库系统中.这是一种牺牲管理便捷 ...
- LR参数化,参数化类型:Fille类型--参数分配与取值规律
1.Select next row:下次取值怎么取 (1)Sequential:按照顺序一行行的取值.每一个虚拟用户都会按照相同的顺序读取 (2)Random:在每次迭代里随机的读取一个,但是在循环中 ...
- python函数参数顺序_Python 中的参数深入、取值顺序、内置函数等
封面图片来源:沙沙野 内容概览动态参数 形参的顺序问题 名称空间与作用域 加载顺序 取值顺序 内置函数 高阶函数 关键字 global 关键字 nonlocal 动态参数前面文章提到,形参有三种:位置 ...
- JSF中的h:commandLink如何传递参数 三种取值比较
声明本人刚学jsf三天 如有不足请指教.... 本人总结了三种取得参数的方法 这是jsf中的代码 <h:commandLink action="#{}"> ...
- 带参数标签的取值方法
方法一: <html><head> <meta http-equiv="Content-Type" content="text/html; ...
- numpy.max中参数axis的取值问题
np.max(a, axis=None, out=None, keepdims=False) 求序列的最值 最少接收一个参数 axis:默认为列方向,即axis=0 一般为二维数组,用来表示行和列的信 ...
- [mybatis]映射文件_参数处理_#取值时指定参数相关规则
jdbcType通常需要在某种特定的条件下被设置: 在我们数据为null的时候,有些数据库可能不能识别mybatis对null的默认处理.比如Oracle(报错): jdbcType OTHER:无效 ...
- java -XX:+PrintFlagsInitial该命令可以查看所有JVM参数启动的初始值
java -XX:+PrintFlagsInitial 该命令可以查看所有JVM参数启动的初始值 [Global flags]intx ActiveProcessorCount = -1 {produ ...
最新文章
- 用看板工具leangoo做人事招聘
- 【6】青龙面板系列教程之xdd-plus与nolanjdc的对接
- Gartner:大数据投资增长,但计划投资的组织机构却在减少
- Kickstart+NFS+DHCP+TFTP+PXElinux实现CentOS的网络自动安装
- 为什么使用NoSql及NoSql的优点
- sql性能优化之多表联查
- C# WinForm中的Label换行方法
- php汽车找车位,自动找车位+停车?这样的车5个月后就要交付给用户了!
- 架构之美-读书笔记之二
- 世界杯来了,移动办公的“世界杯”怎么踢?
- mysql版本查询命令
- 怎么清理计算机后台程序,怎么清理电脑应用插件-电脑插件清理的方法 - 河东软件园...
- Ubuntu 无法复制大文件 卡死
- 自定义view画钟表
- 蓝桥杯--并查集1 sdutoj 小雷的冰茶几
- 广义瑞利商_瑞利商和广义瑞利商
- (八)相机对焦功能实现
- Java 公历转农历,然后农历减一年(或者几天或者任意天),再把这个日期转成公历...
- 5.6.3 分组总计查询
- c++动态规划解决一系列数中互不相邻数字之和的最大值