Java 设置堆内存的最大值和最小值的几种方式
Java JVM About 2,074 wordsInitialHeapSize
默认值:物理内存的1/64
。
举例: -Xms100M
MaxHeapSize
默认值:物理内存的1/4
。
举例:-Xmx1G
、-Xmx500M
、-XX:MaxHeapSize=8589934592
(8G
)
MinHeapSize
JVM
自动计算的大小值。
-Xms
-Xms
会同时设置InitialHeapSize
和MinHeapSize
。
InitialRAMPercentage
堆内存最小值百分比,适用于Kubernetes
限制了容器内存大小的场景。(当然同样适用非容器场景)
默认值:1.5625
,表示机器内存(容器内存)的1.5625%
(和InitialHeapSize
一样,都是1/64
)。
MaxRAMPercentage
堆内存最大值百分比。
默认值:25.0
,表示机器内存(容器内存)的25%
(和MaxHeapSize
一样,都是1/4
)。
可用内存比较大的时候生效。
MinRAMPercentage
默认值:50.0
,表示机器内存(容器内存)的50%
(1/2
)。
可用内存比较小的时候生效。
注意
如果设置了-Xmx
/-Xms
,则InitialRAMPercentage
/MaxRAMPercentage
/MinRAMPercentage
将无效。
Fraction 相关参数
Fraction
相关参数已经过期。
RAM 相关参数
❯ java -XX:+PrintFlagsFinal -version | grep RAM
uintx InitialRAMFraction = 64 {product} {default}
double InitialRAMPercentage = 1.562500 {product} {default}
uint64_t MaxRAM = 137438953472 {pd product} {default}
uintx MaxRAMFraction = 4 {product} {default}
double MaxRAMPercentage = 25.000000 {product} {default}
uintx MinRAMFraction = 2 {product} {default}
double MinRAMPercentage = 50.000000 {product} {default}
openjdk version "17.0.7" 2023-04-18 LTS
OpenJDK Runtime Environment Corretto-17.0.7.7.1 (build 17.0.7+7-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.7.7.1 (build 17.0.7+7-LTS, mixed mode, sharing)
文档
Java 17
https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html
https://docs.oracle.com/en/java/javase/17/gctuning/ergonomics.html
Java 11
https://docs.oracle.com/en/java/javase/11/tools/java.html
https://docs.oracle.com/en/java/javase/11/gctuning/ergonomics.html
Java 8
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/sizing.html
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓