gpt4 book ai didi

java - Pod OOM - Xmx 未被尊重

转载 作者:行者123 更新时间:2023-12-02 09:30:57 25 4
gpt4 key购买 nike

我正在启动一个 Java 应用程序,如下所示

JAVA_OPTS=-Xmx7g -Xms512m -Xss1m -XX:+UseCompressedOops -XX:-OmitStackTraceInFastThrow

我为此使用的 Pod 具有

        resources:
limits:
cpu: 4096m
memory: 9Gi
requests:
cpu: 1024m
memory: 512Mi

但是,我偶尔看到 pod 被杀死

"Memory cgroup out of memory: Kill process 3284727 (java) score 1982 or sacrifice child
Killed process 3284727 (java) total-vm:15318320kB, anon-rss:9380388kB, file-rss:20180kB, shmem-rss:0kB"

为什么会发生这种情况?

既然我设置了Xmx=7G,为什么内存使用量超过了9G

最佳答案

使用-Xmx,您只需指定 Java 堆大小 - JVM 使用许多其他内存(例如堆栈、JVM 的 native 内存、直接缓冲区等)。

根据我们的经验,JVM 总使用量的正确大小是堆大小的 1.5 到 2 倍,但这在很大程度上取决于您的用例(例如,某些使用直接缓冲区的应用程序可能仅使用 1GB 堆就有 32GB RAM) .

因此,在更多限制下运行您的应用,检查实际使用情况,然后将 + 5% 定义为容器限制。

您还应该使用 -Xms512m 将您的请求调整为至少 1Gi

关于java - Pod OOM - Xmx 未被尊重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57991719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com