首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Quarkus本机可执行内部版本:高内存消耗

Quarkus本机可执行内部版本:高内存消耗
EN

Stack Overflow用户
提问于 2019-07-23 22:51:21
回答 5查看 2.9K关注 0票数 5

我正在使用Quarkus - Building a Native Executable中描述的多阶段Docker构建构建Quarkus本机可执行文件

我的项目只包含了一些添加了ORM功能的Hello World-Example (所以没有太多的依赖项)。构建工作得很好,但我的问题是,它在构建期间消耗了大量内存。这意味着直到6 GiB。在我看来,构建时间也很长(总共大约4-6分钟)。

当我在CI/CD基础设施上构建时,问题就开始了。我们在那里没有那么多内存,所以使用Error: Image build request failed with exit status 137构建失败。

是我做错了什么,还是这只是正常行为?是否有可能至少减少内存消耗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-07-24 22:37:42

感谢Ken和Luca Burgazzoli!因此,对于GraalVM来说,使用大于4GiB的内存并花费超过3分钟是正常的。

可以通过将-J-Xmx2G指定为quarkus-maven-pluginadditionalBuildArgs-param来限制内存消耗。但这可能会增加构建时间。

票数 6
EN

Stack Overflow用户

发布于 2019-09-28 12:48:06

@ben的答案是正确的,但也许更精确的答案是有用的。您必须编辑getting-started目录中的pom.xml,并编辑native profile并添加<additionalBuildArgs>-J-Xmx2G</additionalBuildArgs>,如下所示:

代码语言:javascript
复制
  <profile>
        <id>native</id>
        <activation>
            <property>
                <name>native</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>io.quarkus</groupId>
                    <artifactId>quarkus-maven-plugin</artifactId>
                    <version>${quarkus.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>native-image</goal>
                            </goals>
                            <configuration>
                                <enableHttpUrlHandler>true</enableHttpUrlHandler>
                <additionalBuildArgs>-J-Xmx2G</additionalBuildArgs>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-failsafe-plugin</artifactId>
                     ...
                </plugin>
            </plugins>
        </build>
    </profile>
票数 4
EN

Stack Overflow用户

发布于 2020-11-05 21:15:17

现在,您可以从Quarkus限制内存使用:

在src/main/resources/application.properties文件中,只需设置:

代码语言:javascript
复制
quarkus.native.native-image-xmx=2G

或者直接将此选项传递给maven:

代码语言:javascript
复制
mvn package -Dnative -Dquarkus.native.native-image-xmx=2G
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57166853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档