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扫描下方二维码关注公众号和小程序↓↓↓