You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建Quarkus原生应用时出现OOM,设置Xmx12G仍提示内存不足如何解决?

问题原因

你遇到的退出码137本质是构建进程被系统OOM(内存不足)杀手强制终止,你已经正确给native-image进程设置了12G堆内存,但是忽略了Docker容器本身的运行内存上限,这是用容器模式构建Quarkus原生镜像最常见的配置遗漏。

解决方案

  • 先调整Docker运行内存配额:
    如果你用的是Windows/macOS的Docker Desktop,打开设置→资源面板,将分配给Docker的总内存上调到至少16G,预留足够的运行开销;如果是Linux环境直接运行Docker命令,在执行构建的docker run参数中增加--memory 16g --memory-swap 16g,避免容器超出默认内存限制被宿主机强制终止。
  • 修正Xmx参数配置方式:
    不要手动修改插件生成的docker run命令中的参数,通过Quarkus官方配置项设置更稳妥,Maven构建时直接追加参数即可:mvn package -Dnative -Dquarkus.native.native-image-xmx=12g,也可以将配置quarkus.native.native-image-xmx=12g写入项目的application.properties文件固化配置。
  • 版本优化:
    你当前使用的Quarkus 2.2.1.Final配套的GraalVM 21.2版本本身内存占用偏高,可尝试升级Quarkus到2.7以上的稳定版,配套的GraalVM 22.x系列对内存占用做了大量优化,空原生项目构建的内存占用可降到8G以内。
  • 临时规避方案:
    如果暂时无法调整Docker内存配额,可以关闭容器构建模式,在本地安装对应版本的GraalVM并配置好GRAALVM_HOME环境变量,构建时追加参数-Dquarkus.native.container-build=false,直接用本地环境构建即可避开Docker的内存限制。

内容的提问来源于stack exchange,提问作者Akash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:27:02