首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

YGC导致CPU负载过高的排查与解决

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

3.8K30

CMS GC 新生代默认是多大?

你一定会觉得这还不简单吗,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 的配置有一定的关系。

2.4K20

程序员如何优化 Java GC

在设置内存空间大小时,你还需要设置一个参数:NewRatioNewRatio的值是新生代和老年代空间大小的比例。...如果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是最佳的参数值

1.1K30

jvm系列(九):如何优化Java GC「译」

在设置内存空间大小时,你还需要设置一个参数: NewRatioNewRatio的值是新生代和老年代空间大小的比例。...如果 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是最佳的参数值

1.5K120
领券