4回复
4年前
为什么设置了SurvivorRatio=8,但是实际Eden与Survivor不是8:1:1
JDK 环境
JVM 参数
$JAVA -Xms1G -Xmx1G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./tmp -XX:SurvivorRatio=8 -XX:-UseGCOverheadLimit -Dlogback.loglevel=INFO -Djava.io.tmpdir=./tmp
但是出现的情况
当 -XX:SurvivorRatio=8 时,Eden 与 Survivor 的比例却不是 8:1:1
如上图:
新生代:341 MB;老年代:683 MB ;比例正常 1:2;
新生代内:
Eden: 293.5 MB;From:24MB;To:23.5MB:
比例不正常:Eden 区接近为 86%,而 Survivor 分别为 7%;
比例不是 Eden:From Survivor:To Survivor = 8:1:1
诡异的是:我将 -XX:SurvivorRatio=6 ,调整为 6 时,如下图:
新生代内:
Eden: 274MB;From:34 MB;To:33 MB:
比例为 Eden:From Survivor:To Survivor = 8:1:1
请问有大佬们经历过这种情况吗?
是有额外的东西影响到了这个参数吗?实在费解。
5047 阅读