jvm达到Xmx选项设置的最大堆大小后,如何配置JVM堆内存大小增加
How to configure the JVM heap memory size to be increased after jvm reached the maximum heap size set by the Xmx option
我们有一个要求,其中总应用程序 jvm 内存太高并且根据输入数据集而变化。所以我们不知道使用 -Xmx 命令行选项设置的最大堆大小。所需的总内存大于默认的最大堆大小(总物理内存的 1/4)。
当我们不提供任何 GC ergonomics 命令行参数时,内存在 9-9.5 GB(系统中的总物理内存为 38GB)后不会增长。应用程序会在此时卡住。
如果我们将 Xmx 值设为 20 GB,则应用程序为 运行。但是我们不确定最大堆大小值,因为它会根据输入数据而变化。
请告知在这种情况下如何进行。我们是否可以选择将堆内存增加到 Xmx 值以上?感谢您的帮助。
尝试将 -Xmx 与 -Xms 一起使用。为 -Xms 提供所需的最小值 (20GB),并为 -Xmx 提供适用于您的操作系统的最大可能值。
由于内存最初不会增长超过 9-9.5GB,
设置-Xms
为9GB
并设置 -Xmx
为 maximum available physical memory - 1 or 2 GB
如果没有其他进程是 运行 ( 30 GB for 32 GB RAM machine
)
除了这些内存设置之外,您还可以微调垃圾收集算法。
如果 -Xms
和 Xmx
具有相同的值,则 CMS
有效。
对于较大的堆,G1GC
非常有效。您可以为最小堆和最大堆设置不同的值,如果您适当地微调相关参数,它就可以正常工作。
看看相关的SE问题:
Java 7 (JDK 7) garbage collection and documentation on G1
和
我们有一个要求,其中总应用程序 jvm 内存太高并且根据输入数据集而变化。所以我们不知道使用 -Xmx 命令行选项设置的最大堆大小。所需的总内存大于默认的最大堆大小(总物理内存的 1/4)。
当我们不提供任何 GC ergonomics 命令行参数时,内存在 9-9.5 GB(系统中的总物理内存为 38GB)后不会增长。应用程序会在此时卡住。
如果我们将 Xmx 值设为 20 GB,则应用程序为 运行。但是我们不确定最大堆大小值,因为它会根据输入数据而变化。 请告知在这种情况下如何进行。我们是否可以选择将堆内存增加到 Xmx 值以上?感谢您的帮助。
尝试将 -Xmx 与 -Xms 一起使用。为 -Xms 提供所需的最小值 (20GB),并为 -Xmx 提供适用于您的操作系统的最大可能值。
由于内存最初不会增长超过 9-9.5GB,
设置-Xms
为9GB
并设置 -Xmx
为 maximum available physical memory - 1 or 2 GB
如果没有其他进程是 运行 ( 30 GB for 32 GB RAM machine
)
除了这些内存设置之外,您还可以微调垃圾收集算法。
如果-Xms
和 Xmx
具有相同的值,则 CMS
有效。
对于较大的堆,G1GC
非常有效。您可以为最小堆和最大堆设置不同的值,如果您适当地微调相关参数,它就可以正常工作。
看看相关的SE问题:
Java 7 (JDK 7) garbage collection and documentation on G1
和