1
5
这很好,但据我所知,这不是Sun提供的JVM的一个选项。 xmx选项是指定最大内存,它可以防止jvm占用整个机器的可用内存。如果您想将其设置得更高,就不需要JVM分配所有的内存。为什么不把它设置为一个非常高的数字,让JVM随着时间的推移而增长呢? 为了确保您的JVM不会以太少的内存开始(在内存增长到所需大小时会产生大量停顿),请将XMS调整到您希望在启动时为JVM分配的大小。 |
2
3
简短的答案是,除非您的特定JVM允许在初始化后更改这些值,否则您不能(我相信这是Hotspot的情况)。
但是,您可以在不动态更改XMX的情况下实现目标。例如,您可以使用
见
java (windows)
或
java (*nix)
视情况而定(尽管
|
3
2
您不需要在备用实例上调整XMX,只要它不做任何事情(或大部分事情),因为它应该保持接近您用XMS设置的值,直到它开始真正工作为止。 XMX交换机管理Java实例可能消耗的最大堆大小。xms控制启动量。 如果您将备用实例上的xms small和xmx设置为程序所需的最大值,然后切换到备用实例(杀死常规实例),它应该可以正常工作。
|
4
0
为了让JVM填满所有堆,您必须生成足够的对象,以便在年轻一代集合中存活下来。这在轻负载的备用服务器上是不太可能的。 为了提高捕获年轻一代中所有垃圾的机会,请相应地配置年轻一代堆:更大的大小,对象老化之前的更多代。这是将备用服务器限制在年轻一代和主服务器中所需的收集配置文件之间的折衷方案。 更新:新的g1收集器使用不同的配置选项。请看 http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html
iow,当当前堆(最初最小堆大小)用完45%时,将启动与年轻一代集合等效的集合。轻负载服务器永远不应该保留最小堆大小(除非它生成相对较长的活动对象,在这种情况下,请参见-xx:maxtenuringstreshold)。 |