4

我正在为我们在 SPARC 硬件上运行的 Tomcat 集群进行性能调整。32 位 JVM 目前为我们提供了足够的内存,但我们将开始使用 Terracotta 进行服务器条带化,因此很快就会需要 64 位 JVM 提供的额外内存。

除了更大的内存占用之外,迁移到 SPARC 上的 64 位 JVM 还会导致性能下降。此常见问题解答显示 SPARC 上 64 位 JVM 的 1.4 版性能下降了 10% - 20%:

http://java.sun.com/docs/hotspot/HotSpotFAQ.html#64bit_performance

如果可以避免的话,我对性能降低 10% - 20% 不感兴趣。已经讨论过使用 32 位/64 位混合方法来避免此问题,因此 1.6 JVM 可能没有 1.4 JVM 所具有的性能影响:

http://blog.juma.me.uk/2008/10/14/32-bit-or-64-bit-jvm-how-about-a-hybrid/

是否有人在 SPARC 上使用 1.6 版从 32 位 JVM 迁移到 64 位 JVM 的当前性能指标?

谢谢。

院长

4

1 回答 1

4

以下是一些基于测试客户端调用我们在 Solaris 上的 Tomcat 5.5 上使用 64 位和 32 位版本的 JDK 1.6.0_13 运行的 Web 服务的一些结果。

在 Tomcat 5.5 上使用默认设置时,64 位 JVM 导致性能下降约 7%。当我将 Tomcat 参数 acceptCount 和 maxThreads 加倍到 1000 时,64 位 JVM 的性能下降不到 1%。这可能是因为 1000 个线程对应于我在测试中使用的并发测试客户端的数量。

更改这些参数降低了 32 位和 64 位 JVM 的时间,但 64 位 JVM 显示出更大的性能改进。

不过,您的里程可能会有所不同。

于 2009-06-18T16:44:59.007 回答