首页 > 解决方案 > Java RAM 百分比选项被忽略

问题描述

我在 K8s 上的 Docker 容器中运行 Java8u212。该容器设置了 1GB 的内存限制。

sh-4.2$ cat /sys/fs/cgroup/memory/memory.limit_in_bytes
1073741824

Java的容器启动配置如下:

- command:
        - /opt/tools/Linux/jdk/openjdk1.8.0_212_x64/bin/java
        - -XX:+HeapDumpOnOutOfMemoryError
        - -XX:HeapDumpPath=/heap-dump
        - -XX:InitialRAMPercentage=10.0
        - -XX:MinRAMPercentage=50.0
        - -XX:MaxRAMPercentage=80.0
        - -jar
        - app.jar
        - --server.port=8080

但是,在启动后登录到容器时,我注意到没有配置任何 RAM 百分比值,并且值设置为默认值。

sh-4.2$  java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|MetaspaceSize|ThreadStackSize | UseContainerSupport | InitialRAMPercentage | MaxRAMPercentage | MinRAMPercentage'
     intx CompilerThreadStackSize                   = 0                                   {pd product}
    uintx ErgoHeapSizeLimit                         = 0                                   {product}
    uintx HeapSizePerGCThread                       = 87241520                            {product}
    uintx InitialBootClassLoaderMetaspaceSize       = 4194304                             {product}
    uintx InitialHeapSize                          := 16777216                            {product}
   double InitialRAMPercentage                      = 1.562500                            {product}
    uintx LargePageHeapSizeThreshold                = 134217728                           {product}
    uintx MaxHeapSize                              := 268435456                           {product}
    uintx MaxMetaspaceSize                          = 18446744073709547520                    {product}
   double MaxRAMPercentage                          = 25.000000                           {product}
    uintx MetaspaceSize                             = 21807104                            {pd product}
   double MinRAMPercentage                          = 50.000000                           {product}
     intx ThreadStackSize                           = 1024                                {pd product}
     bool UseContainerSupport                       = true                                {product}
     intx VMThreadStackSize                         = 1024                                {pd product}
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (Zulu 8.38.0.10-SA-linux64) (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (Zulu 8.38.0.10-SA-linux64) (build 25.212-b04, mixed mode)

我在这里想念什么?感谢您的关注。

标签: javadockerkubernetesjvmlinux-containers

解决方案


推荐阅读