2009-05-21 13 views
4

Ich mache Performance-Tuning für unseren Tomcat-Cluster, der auf SPARC-Hardware läuft. Die 32-Bit-JVM gibt uns genügend Speicher, aber wir werden Terracotta für Server-Striping verwenden, so dass der zusätzliche Speicher, den die 64-Bit-JVM bietet, bald benötigt werden könnte.64-Bit- und 32-Bit-Performance auf SPARC-Hardware mit dem 1.6 JVM

Zusätzlich zu einem größeren Speicherbedarf führt der Wechsel zur 64-Bit-JVM auf SPARC zu einer Leistungseinbuße. Diese FAQ zeigt eine 10% - 20% Performance-Einbußen für die Version 1.4 des 64-Bit-JVM auf SPARC:

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

ich eine 10% unter interessiert mich nicht - 20% Performance-Einbußen, wenn ich kann vermeide es. Es gab Diskussion der Verwendung eines 32-Bit/64-Bit-Hybrid-Ansatz, um dieses Problem zu vermeiden, so vielleicht die 1.6 JVM die Leistung nicht getroffen hat, dass die 1.4 JVM hatte:

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

Hat jemand aktuelle Leistungsmetriken für den Wechsel von der 32-Bit-JVM zur 64-Bit-JVM mit Version 1.6 auf SPARC?

Danke.

Dean

+0

Nur aus Neugier - hast du es versucht? Hast du irgendwelche Metriken bekommen? –

+0

Nicht in den Antworten erwähnt ist die "komprimierte oops" -Option - 64-Bit-Code, 32-Bit-Zeiger. Da Objekte an 16-Byte-Grenzen ausgerichtet sind (andere Rundungen sind möglich), kann der Zeiger verschoben werden, um einen möglichen 64-GB-Java-Heap zu ergeben, ohne die Referenzgröße zu erhöhen. –

Antwort

4

Hier sind einige Ergebnisse basieren auf Test Kunden ein paar unserer Web-Services Aufruf auf Tomcat 5.5 unter Solaris mit den 64-Bit- und 32-Bit-Versionen von JDK 1.6.0_13.

Die 64-Bit-JVM führte bei Verwendung der Standardeinstellungen von Tomcat 5.5 zu einem Leistungseinbruch von etwa 7%. Wenn ich die Tomcat-Parameter acceptCount und maxThreads auf 1000 verdoppelte, betrug der Performance-Hit für die 64-Bit-JVM weniger als 1%. Dies liegt möglicherweise daran, dass die 1000 Threads der Anzahl der Testclients entsprechen, die ich in den Tests verwendet habe.

Das Ändern dieser Parameter senkte die Zeiten für 32-Bit- und 64-Bit-JVMs, aber die 64-Bit-JVM zeigte eine größere Leistungsverbesserung.

Ihre Laufleistung kann jedoch variieren.