【发布时间】:2020-04-27 10:21:58
【问题描述】:
我正在尝试解决我的 java 服务中堆内存超过 90% 的问题。
下面是我正在使用的堆配置,
-Xms6144m \
-Xmx6144m \
-verbose:gc \
-XX:G1HeapRegionSize=2097152 \
-XX:+PrintGC \
-XX:+PrintFlagsFinal \
-XX:InitiatingHeapOccupancyPercent=40 \
-XX:NewRatio=2 \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-XX:+PrintAdaptiveSizePolicy \
-XX:+PrintTenuringDistribution \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=10 \
-XX:GCLogFileSize=50M \
-XX:+UnlockExperimentalVMOptions \
-XX:+UseG1GC -XX:+UseStringDeduplication \
-XX:+UseCGroupMemoryLimitForHeap \
-XX:+ParallelRefProcEnabled
-XX:+OptimizeStringConcat
-XX:MaxRAMFraction=2 \
-XshowSettings:vm
问题是我的老一代正在逐渐被填满,随着时间的推移,GC 后堆到达的下限正在增加,我的图表看起来像这样:
您能否建议我的堆参数是否正确,它们的配置方式是否存在冲突,或者如何减少使用的最大堆?
【问题讨论】:
标签: java memory-management g1gc