【发布时间】:2018-12-28 08:55:05
【问题描述】:
我有一个 swarm 集群,每个节点上都有 24Gb 的 RAM。
Free -g 显示已使用 6Gb,但在某些 java 或 elasticsearch 容器上出现一些 OutMemory 错误。
total used free shared buff/cache available Mem: 23 6 6 0 10 16 Swap: 1 0 1
我删除了对容器的所有保留或限制
知道是什么原因导致 OutOfMermory 吗?我确实在容器上设置了 Xmx,但它们并没有使用太多 RAM...
非常感谢
【问题讨论】:
-
是JVM还是操作系统认为内存不足?
-
JVM,操作系统看起来不错
-
较新版本的 Java 在决定包括内存在内的默认 JVM 值时会尊重 docker 环境。
-
我已经能够对 java 进行限制并且它起作用了。我最大的问题是只使用了 25% 的 RAM,但仍然出现 OutOfMemory 错误。
-
如果 JVM 出现内存不足异常,则为 JVM 分配更多 RAM。