简体   繁体   English

JVM的SurvivorRatio标志不起作用?

[英]SurvivorRatio flag of JVM does not work?

The document from Oracle writes "The SurvivorRatio parameter controls the size of the two survivor spaces. For example, -XX:SurvivorRatio=6 sets the ratio between each survivor space and eden to be 1:6, each survivor space will be one eighth of the young generation", but it does not work in my case below. Oracle的文档中写道:“ SurvivorRatio参数控制两个幸存空间的大小。例如, -XX:SurvivorRatio=6将每个幸存空间与eden之比设置为1:6,每个幸存空间将为两个的八分之一。的年轻一代”,但在下面的我的案例中却无效

The JVM Flags I set: 我设置的JVM标志: 在此处输入图片说明

The JVM heap infomation: JVM堆信息: 在此处输入图片说明

The gcutil output every 1 second: gcutil每1秒输出一次: 在此处输入图片说明

Here are the questions: 这里是问题:

  1. From Space capacity : Eden Space capacity = 4.5 : 824.5 which is not 1:6, so where is wrong? 来自空间容量:伊甸园空间容量= 4.5:824.5这不是1:6,那么哪里错了?
  2. Why the switch between S0U and S1U changes (Minor GC) so frequently which causes high cpu load. 为什么S0U和S1U之间的切换如此频繁地更改(较小的GC),这会导致较高的CPU负载。

I solved it! 我解决了!

-XX:+UseAdaptiveSizePolicy is enabled by default, and is incompatible with -XX:SurvivorRatio=n . -XX:+UseAdaptiveSizePolicy默认情况下-XX:+UseAdaptiveSizePolicy启用状态,并且与-XX:SurvivorRatio=n不兼容。 After when I used -XX:-UseAdaptiveSizePolicy to disable adaptive size policy, it works now. 当我使用-XX:-UseAdaptiveSizePolicy禁用自适应大小策略后,它现在可以工作了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM