Java 设置堆内存的最大值和最小值的几种方式

Java JVM About 2,074 words

InitialHeapSize

默认值:物理内存的1/64

举例: -Xms100M

MaxHeapSize

默认值:物理内存的1/4

举例:-Xmx1G-Xmx500M-XX:MaxHeapSize=8589934592(8G)

MinHeapSize

JVM自动计算的大小值。

-Xms

-Xms会同时设置InitialHeapSizeMinHeapSize

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

Views: 1,001 · Posted: 2023-12-15

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh