嗯…很久以后,我再次看到这个问题:)
一台机器上的多个JVM实例解决了很多问题。首先让我们面对这个问题:尽管JDK 1.7即将面世,但许多旧版应用程序都是使用JDK
1.3或1.4或1.5开发的。而且,JDK的主要部分仍在其中。
现在您的问题:
从历史上看,系统架构师通过在一个盒子上部署多个JVM解决了三个主要问题:
Garbage collection inefficiencies:
随着堆大小的增长,由于单线程GC,垃圾回收周期(尤其是对于主要垃圾回收)会在处理过程中引入大量延迟。多个JVM通过通常允许较小的堆大小并在GC周期内启用某种程度的并发性来解决此问题(例如,对于四个节点,当一个节点进入GC时,您仍有三个其他节点在积极处理)。Resource utilization:
较早的JVM无法有效地扩展到超过四个CPU左右。答案?在包装盒中,每2个CPU运行一个单独的JVM(里程可能会因应用程序而异)。64-bit issues:
较早的JVM无法分配超出32位最大值的堆大小。同样,多个JVM使您可以最大程度地利用资源。Availability:
人们有时在单个机器上运行多个JVM的最后一个原因是可用性。的确,这种做法并不能解决硬件故障,但是确实可以解决应用程序服务器单个实例中的故障。
摘自(http://www.theserverside.com/discussions/thread.tss?thread_id=20044)
我主要看过weblogic。这是进一步阅读的链接:
http://download.oracle.com/docs/cd/E13222_01/wls/docs92/perform/WLSTuning.html#wp1104298
希望这会帮助你。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)