-XX:NewRatio 新生代(Eden + 2*S)与老年代(不包括永久区)的比值 4 表示新生代 :老年代 = 1:4 ,意思是老年代占 4/5 -XX:SurvivorRatio 2个Survivor
-Xmn 设置新生代大小 -XX:NewRatio 新生代(eden+2*s)和老年代(不包含永久区)的比值。新生代和老年代默认比例是1:2。
为了配置内存大小你还需要设置NewRatio,NewRatio是新生代和老年代的比率。...因此,NewRatio值越大,老年代的大小就越大,新生代则越小。 NewRatio的值将显著影响整个GC的性能。...通过添加 -verbosegc 日志来获取更详细的日志,以下三个选项分别设置在不同机器上,且没有添加其他参数: NewRatio=2 NewRatio=3 NewRatio=4 一天之后,获取GC日志。...在这种状态下,不用改变其他JVM参数,选择一个合适的 NewRatio值即可。那么,我们怎么决定最佳的NewRatio值呢?...我们可以分析下不同NewRatio值下的每次Minor GC的平均时间,数据如下: NewRatio=2: 45 ms NewRatio=3: 34 ms NewRatio=4: 30 ms 现在我们可以下结论了
1.8 中使用 CMS 收集器,UseAdaptiveSizePolicy 参数会被设置为 false,导致 young 区和 old 区大小不会动态调整 jdk 1.8 中使用 CMS 收集器,默认的 newRatio...为什么新生代是 332.8MB 在做出调整之前要找到 newRatio 没生效的原因,为什么 8G 的堆内存,新生代只有 332MB 登上服务器查看服务启动时的参数配置: java -server...Q:回到之前的问题,为什么 newRatio 参数默认为 2 没有生效 A:想起来 jdk 1.8 新生代默认的收集器并不是 CMS,是 ParallelGC。...于是继续 google 1.8 cms newRatio,找到了一篇 JVM bug 报告,在 1.8 中使用 CMS 收集器会导致默认的 newRatio 不生效,解决办法:在启动参数中显式配置一次,...:为什么动态调整没有生效 在 JDK1.7 中如果开启了 -XX:+UseAdaptiveSizePolicy 配置项,JVM 将会动态调整 Java 堆中各个区域的大小以及进入老年代的年龄,–XX:NewRatio
你一定会觉得这还不简单吗,NewRatio 默认为 2,也就是 YoungGen 与 OldGen(老年代)的比例是 1:2,那 YoungGen 大小应该是 2048M/3 = 672M。...看提示 1,在 MaxNewSize 和 NewRatio 都是默认配置时,MaxNewSize 值为 preferredmaxnewsize,而 preferredmaxnewsize 是什么呢?...(younggenperworker * parallelgcthreads) 中较小的那个,max_heap/(NewRatio+1) 这个我们都了解,就是按照 NewRatio 来计算,ScaleForWordSize...所以绕了半天,ScaleForWordSize 的值大约是 64M * 4 * 13 / 10 = 332.8M,再做下对齐就得到 332.75M 了;max_heap / (NewRatio+1) 的值为...YoungGen 的大小在没有设置的情况下是通过计算得出的,其大小可能与 NewRatio 的默认配置没什么关系而与ParallelGCThreads 的配置有一定的关系。
XX:SurvivorRatio=4 一>Eden:S0:S1 =4:1:1 survivorRatio值就是设置eden区的比例占多少,s0/s1相同 -XX:SurivorRatio -XX NewRatio...配置年轻代与老年代在堆结构的占比 默认 -Xx:NewRatio=2 新生代占1,老年代2,年轻代占整个堆的1/3 假如 -XX:NewRatio=4 新生代占1,老年代4,年轻代占整个堆的...1/5 NewRatio值就是设置老年代的占比,剩下的1给新生代 -XX MaxTenuingThreshold :设置年轻代垃圾去老年代垃圾的最大年龄
在设置内存空间大小时,你还需要设置一个参数:NewRatio。NewRatio的值是新生代和老年代空间大小的比例。...如果NewRatio等于2,则新生代:老年代=1:2,因此,NewRatio的值设置得越大,则老年代空间越大,新生代空间越小。...=2 NewRatio=3 NewRatio=4 一天后我得到了系统的GC log,幸运的是,在设置完NewRatio后系统没有发生任何Full GC。...在这样的情况下,就没有必要去改变其他的参数值了,只要选择一个最合适的NewRatio值即可。那么,如何确定最佳的NewRatio值呢?...在每种参数下Minor GC的平均响应时间如下: NewRatio=2:45ms NewRatio=3:34ms NewRatio=4:30ms 我们可以根据GC时间的长短得出NewRatio=4是最佳的参数值
在设置内存空间大小时,你还需要设置一个参数: NewRatio。 NewRatio的值是新生代和老年代空间大小的比例。...如果 NewRatio等于2,则新生代:老年代=1:2,因此, NewRatio的值设置得越大,则老年代空间越大,新生代空间越小。...=2 NewRatio=3 NewRatio=4 一天后我得到了系统的GC log,幸运的是,在设置完NewRatio后系统没有发生任何Full GC。...在这样的情况下,就没有必要去改变其他的参数值了,只要选择一个最合适的 NewRatio值即可。那么,如何确定最佳的NewRatio值呢?...在每种参数下Minor GC的平均响应时间如下: NewRatio=2:45ms NewRatio=3:34ms NewRatio=4:30ms 我们可以根据GC时间的长短得出NewRatio=4是最佳的参数值
1884160.0 262144.0 262144.0 262144.0 262144.0 54 5 新生代是 212,992 KB,老生代是1,884,160 KB 新生代:老生代是1:9, 调整NewRatio...NewRatio=2 NewRatio=3 NewRatio=4 如果其中一个设置没有FULL GC发生,就是合适新生代和老生代的大小。...随着新生代内存减小,其GC时间缩短: NewRatio=2: 45 ms NewRatio=3: 34 ms NewRatio=4: 30 ms 内存输出结构: S0 S1 E O P YGC YGCT
表2: NewRatio by OS and option OS and option Default -XX:NewRatio Sparc -server 2 Sparc...参数,新生代大小则为 1/(NewRatio +1)。...因此最好将NewRatio设置成 Sparc -server相似的的值(2或3)。 你也可以使用NewSize 和 MaxNewSize 来代替 NewRatio。...通过NewSize指定新生代创建时的大小,最大值为MaxNewSize,Eden区和Survivor区的增长也取决于NewRatio比例。...如果你同时指定了 NewRatio和NewSize,起作用的将是较大的值。
SurvivorRatio的值就是设置eden去的比例占多少,S0和S1相同 -XX:NewRatio:配置年轻带与老年带在堆结构的占比。...默认:-XX:NewRatio=2新生代占1,老年代2,年轻带占整个堆的1/3。假如:-XX:NewRatio=4新生代占1,老年代占4,年轻带占整个堆的1/5。...NewRatio的值就是设置老年代的占比,剩下的1给新生代。
GenCollectorPolicy::initialize_flags实现: 1、新生代的初始值NewSize默认为1M,最大值需要设置,可以通过参数-XX:NewSize和-XX:MaxNewSize或-Xmn进行设置; 2、NewRatio...1、如果MaxNewSize重新设置过,即设置-Xmn参数,则根据不同情况设置max_new_size; 2、否则通过scale_by_NewRatio_aligned方法根据NewRatio和_max_heap_byte_size...重新计算max_new_size值,其中NewRatio默认为2,表示新生代的大小占整个堆的1/3; ?...4、如果NewSize重新设置过,即设置了-Xmn参数,则使用NewSize设置_min_gen0_size,否则使用scale_by_NewRatio_aligned方法重新计算新生代最小值和初始值,
MaxNewSize = 697892864 (665.5625MB) OldSize = 8965783552 (8550.4375MB) NewRatio...= 2 NewRatio=2 但是实际新生代获得的内存空间只有 665.5625MB,这就有点奇怪了,不是说好的老年代:新生代 2 : 1 吗。...修复新生代比例大小 添加启动参数 -XX:NewRatio=2,完整启动命令: java -Xms9g -Xmx9g -XX:NewRatio=2 -XX:+UseConcMarkSweepGC...-XX:MaxDirectMemorySize=1g -jar Node.jar -c config.conf 通过 jstat -gc pid 1000 观察一下 GC 情况 添加 -XX:NewRatio...MaxNewSize = 3221225472 (3072.0MB) OldSize = 6442450944 (6144.0MB) NewRatio
:initialize_flags实现: 1、新生代的初始值NewSize默认为1M,最大值需要设置,可以通过参数-XX:NewSize和-XX:MaxNewSize或-Xmn进行设置; 2、NewRatio...1、如果MaxNewSize重新设置过,即设置-Xmn参数,则根据不同情况设置max_new_size; 2、否则通过scale_by_NewRatio_aligned方法根据NewRatio和_max_heap_byte_size...重新计算max_new_size值,其中NewRatio默认为2,表示新生代的大小占整个堆的1/3; ?...4、如果NewSize重新设置过,即设置了-Xmn参数,则使用NewSize设置_min_gen0_size,否则使用scale_by_NewRatio_aligned方法重新计算新生代最小值和初始值,
-XX:NewSize=n 设置年轻代大小 -XX:NewRatio=n 设置年轻代和年老代的比值。...如:-XX:NewRatio=3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4,默认新生代和老年代的比例=1:2。...java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold...-XX:NewRatio=4 设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5 。
-XX:-DisableExplicitGC 禁止调用System.gc() -XX:= 设定数字参数 -XX:NewRatio...-XX:+PrintGCDetails 打印GC回收信息 -XX:NewRatio...新生代和老年代空间大小的比率,由-XX:NewRatio参数控制-XX:NewRatio参数的默认值是2,表示新生代和老年代的比例是1:2如果将-XX:NewRatio设置为4,表示新生代和老年代的比例是
set HEAP=-Xms256m -Xmx8192m ## HEAP:表示堆内存总空间为8G set NEW=-XX:NewSize=1330m -XX:MaxNewSize=3072m -XX:NewRatio...=2 -XX:SurvivorRatio=8 ## NewSize:表示新生代的内存空间 ## NewRatio:表示新生代和老年代的比例。
-server -Xms6144m -Xmx6144m -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:MaxTenuringThreshold=10 -XX:NewRatio...server -Xms13312m -Xmx13312m -XX:NewSize=3072m -XX:MaxNewSize=4096m -XX:MaxTenuringThreshold=10 -XX:NewRatio...server -Xms29696m -Xmx29696m -XX:NewSize=6144m -XX:MaxNewSize=9216m -XX:MaxTenuringThreshold=10 -XX:NewRatio...-XX:NewSize:设置年轻代大小 -XX:MaxNewSize:设置最大的年轻代大小 -XX:PermSize:设置永久代大小 -XX:MaxPermSize:设置最大永久代大小 -XX:NewRatio
1.3/1.4) , -XX:MaxNewSize (for 1.3/1.4) , -Xmn 3,持久代: -XX:PermSize -XX:MaxPermSize 4,年轻代和老年代的比例: -XX:NewRatio...(年轻代和老年代的比值,年轻代多,除去持久代) 当设置了-XX:+UseConcMarkSweepGC后,会使-XX:NewRatio=4失效,此时需要使用-Xmn设置年轻代大小 5,Eden与Survivor
explicitly setting young generation size with the -Xmn option or any or other related option such as -XX:NewRatio...大概解释下:G1回收器模式下,应该尽量避免配置-Xmn,或者-XX:NewRatio等固定年轻代的选项,因为这个配置会覆盖设置的停顿时间目标。
领取专属 10元无门槛券
手把手带您无忧上云