当前位置: 首页 > 知识库问答 >
问题:

在JVM达到Xmx选项设置的最大堆大小后,如何配置要增加的JVM堆内存大小

宋和颂
2023-03-14

我们有一个需求,即应用程序jvm总内存太高,并且根据输入数据集而变化。因此我们不知道要使用-xmx命令行选项设置的最大堆大小。所需的总内存大于默认的最大堆大小(总物理内存的1/4)。

当我们没有给出任何GC人体工程学命令行参数时,内存在9-9.5GB(系统中的总物理内存为38GB)之后没有增长。而应用程序就会在这一点上卡住。

如果我们将Xmx值设为20 GB,则应用程序正在运行。但是我们不确定最大堆大小值,因为它可以根据输入数据而改变。请就如何处理这种情况提出建议。我们是否有任何选项来增加堆内存超过Xmx值?谢谢你的帮助。

共有1个答案

丘学海
2023-03-14

尝试在-xms的同时使用-xmx。为您的操作系统提供-xms所需的最小值(20GB)和-xmx所需的最大值。

 类似资料:
  • 问题内容: 我收到以下错误: 问题答案: 以下是一些可用来更改堆大小的选项。

  • 问题内容: 当前,在我们的测试环境中,最大和最小JVM堆大小设置为相同的值,基本上与专用服务器计算机为我们的应用程序所允许的大小相同。这是性能最佳的配置,还是给JVM一个更好的范围? 问题答案: 设置- Xms的主要原因是,如果您在启动时需要一定的堆。(防止OutOfMemoryErrors在启动时发生。)如上所述,如果您需要启动堆来匹配最大堆,则是匹配它的最大时间。否则,您将不需要它。只是要求应

  • 如何设置Apache Ignite通过运行时可用的最大堆内存?文件似乎没有涵盖这项非常基本的任务。此外,如何验证设置是否实际工作? 我读到命令行选项可用于将JVM参数从传递到JVM进程,但我无法找到它实际工作的证据。例如,如果我按如下方式启动Ignite: 它在命令行中不明确地列出了和。

  • 问题内容: 有没有办法从正在运行的Java程序中设置堆大小? 问题答案: 没有。 对于具有非常多的堆需求的应用程序,您可以做的是设置最大的堆大小-Xmx并进行调整,以使堆缩小时该应用程序不会挂在大量内存上(使用默认设置即可) )。 但是请注意,当应用程序实际使用的内存变化剧烈且快速时,这可能会导致性能问题-在这种情况下,最好将其挂在所有内存上,而不是仅将其退还给操作系统以声明使用它再过一秒钟。您可

  • 我有一个Grails 2.3。X项目,除非使用命令行参数指定更多堆栈大小,否则无法编译。目前这很好,但每次我第一次构建项目时都需要导出/设置JVM选项。此外,刚开始项目的开发人员总是会遇到这个问题,所以我希望它成为签出版本控制的代码的一部分。 有没有办法在Grails 2.3中设置stacksize(-Xss)JVM选项。X BuildConfig? P、 Xss JVM选项是文档较少的选项之一。

  • 问题内容: 如何在不向程序中添加额外的批处理脚本的情况下设置最大的jvm内存。下面提供了答案。 问题答案: 这是一个很好的问题,但是您的渗透力有很多假设。我假设您必须记录jar的名称,以便用户调用“ java -jar xyz.jar”,这样您是否还可以在文档中包括“ -Xmx256M”的要求? 您可能需要使用Java启动,更多的运气如这一个针对Windows,你把发射器配置(路径,最大内存等),