java在运行时动态增加xmx

Jas*_*Jas 7 java performance

我的机器中有一个jvm服务器,现在我想让我的两个服务器坐在同一台机器上,但我希望备用服务器有一个非常少的内存分配xmx,因为它是被动的,一个是主服务器(活动的)我想要为我的被动服务器分配更多的内存,而无需重新启动它(我已经让它们都有太多的xmx - 请注意它们会在启动时消耗内存而我不能允许outOfMemory).

所以我想要被动 - 低xmx一旦主动下降,我希望我的被动接收更多的xmx.

有没有办法让我实现这一目标.谢谢

Edw*_*uck 5

这会很好,但据我所知,它不是Sun提供JVM的选项.

Xmx选项是指定最大内存,它可以防止JVM占用整个机器的可用内存.如果要将其设置得更高,则不需要JVM分配所有内存.为什么不将它设置为一个非常高的数字,让JVM随着时间的推移而成长?

要确保您的JVM不会以太少的内存启动(在内存增加到所需大小时会产生大量暂停),请将Xms调整为您在启动时为JVM分配的大小.

  • @Jas我发现在实践中,JVM将使用你告诉它使用的所有东西.即使你只有10 MB的硬引用对象,如果给它-Xmx100G,即使几乎所有内存中的对象都可以被收集,它也会使用100G.这就是他们让我们指定它的原因 - 因为他们不知道如何很好地管理内存以使其自动增长. (2认同)