gpt4 book ai didi

java - HotSpot JVM 会动态改变新生代的大小吗?

转载 作者:行者123 更新时间:2023-11-29 03:16:02 26 4
gpt4 key购买 nike

关于 HotSpot JVM 垃圾收集的一些问题。

我们有一个正在运行的 java 进程,选项是:

-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps 
-Xloggc:/mnt/dfs/0/hdfs/logs/namenode.gc.log -XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=512M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled -XX:-DisableExplicitGC -XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled -XX:+UseCMSInitiatingOccupancyOnly -server -Xmx92160m -Xms92160m
-Xss256k -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=15 -XX:+PrintTenuringDistribution

如您所见,最大堆大小约为 90G。

根据 this article , NewRatio=2 和 SurvivorRatio=8 默认。所以伊甸园 大小应为90G*1/3*8/10=24G,幸存者大小应为90G*1/3*1/10=3G。

但实际上,当我使用jstat时:

sudo jstat -gcnew 37082
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
48960.0 48960.0 0.0 5981.3 15 15 24480.0 391936.0 82332.7 13351 1379.450

Eden 大小只有 390MB 左右,Survivor 大小只有 48MB。这导致了很多年轻的gc。

谁能告诉我为什么 Eden size 这么小?

最佳答案

Eden 的大小只是它需要的大小。如果您生成更多短期垃圾,NewSize 会更大。

关于java - HotSpot JVM 会动态改变新生代的大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26608136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com