如何设置JVM的最大内存使用情况如何?(How to set the maximum memory

2019-07-20 02:46发布

我想限制由JVM使用的最大内存。 请注意,这不只是堆,我想限制该进程使用的内存总量。

Answer 1:

使用参数-Xms<memory> -Xmx<memory> 。 使用MG用于分别指示字节梅格斯和演出的数字后。 -Xms表示最小和-Xmx最大值。



Answer 2:

你不应该担心栈内存泄漏(这是非常罕见的)。 你可以有堆栈中的唯一一次失控的是无限的(或非常深)递归。

这只是堆。 对不起,起初并不完全读你的问题。

您需要运行使用下面的命令行参数的JVM。

-Xmx<ammount of memory>

例:

-Xmx1024m

这将使内存为1GB的JVM的最大。



Answer 3:

如果要限制对JVM内存(不是堆大小)的ulimit -v

为了让JVM和堆内存之间的差异的想法,看看这个优秀的文章http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the- Java的process.html



Answer 4:

以上答案是种正确,你将无法正常控制Java进程多少本机内存分配。 这取决于你的应用程序在做。

这就是说,取决于平台,您可能能够例如用做某种机制,的ulimit,以限制Java或任何其他进程的大小。

只是不要指望如果它击中的是限制它优雅地失败。 本机内存分配失败的情况更难处理比对Java堆分配失败。 有一个相当不错的机会,应用程序会崩溃,但是这取决于它是系统的关键是如何保持工艺尺寸下仍可能适合你。



Answer 5:

该NativeHeap可以通过-XX被increasded:MaxDirectMemorySize = 256M(默认为128)

我从来没有使用过。 也许你会觉得它有用。



文章来源: How to set the maximum memory usage for JVM?