k_v*_*ath 3 java heap-memory kubernetes
我正在使用以下配置在 pod 内运行 spring boot。
Pod 限制:
resources:
limits:
cpu: "1"
memory: 2500Mi
requests:
cpu: "1"
memory: 2500Mi
Run Code Online (Sandbox Code Playgroud)
命令参数:
spec:
containers:
- args:
- -c
- ln -sf /dev/stdout /var/log/access.log;java -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false -Djava.security.egd=file:/dev/./urandom
-Xms1600m -Xmx1600m -XX:NewSize=420m -XX............
Run Code Online (Sandbox Code Playgroud)
-Xmx 标志仅控制 Java 堆内存,这是运行代码时可供您自己的 Java 对象使用的空间。如果用完,JVM 将进行垃圾收集以腾出空间。如果仍然用完,则会抛出 OutOfMemoryException。
Java JVM 还在内部使用一堆其他内存来加载类、JIT 编译等……因此您需要在 Kubernetes 中允许更多的内存,而不仅仅是 -Xmx 值。如果超过 Kubernetes 限制值,那么 Java 可能会崩溃。
您上面发布的配置看起来不错。通常,我会通过在无限制运行一段时间后查看 Kubernetes 内存使用图来找到这些值。
归档时间: |
|
查看次数: |
2859 次 |
最近记录: |