java - 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)
我在这里想念什么?感谢您的关注。
解决方案
推荐阅读
- node.js - 护照反序列化用户未被调用
- node.js - 如何从 Fastify 服务器中的 URL 解析查询字符串参数?
- bash - 匹配不包含特定模式的行并在最后附加字符串 - Bash
- cypress - 如何在 Cypress 中正确使用 .wrap()
- python-3.x - 如何在一维中变形/缩放 3 维 numpy 数组?
- python - 403 禁止 - cloud_storage_bucket get_media
- bower - 如何创建自己的凉亭资产?
- django - 如何使用 CreateView 过滤表单字段之一中的查询集值?
- java - 如何在 Java Swing 中制作 JTabbedPane 的圆角
- flutter - Flutter中FlareController的使用