2009-05-21 8 views
4

SPARCハードウェア上で動作するTomcatクラスタのパフォーマンスチューニングを行っています。 32ビットJVMは今のところ十分なメモリを提供していますが、サーバーストライピングにTerracottaを使用し始めます。そのため、64ビットJVMがすぐに必要となる余分なメモリがすぐに必要になります。1.6 JVMを使用したSPARCハードウェア上の64ビットと32ビットのパフォーマンス

より大きなメモリフットプリントに加えて、SPARC上の64ビットJVMに移行すると、パフォーマンスが低下します。私はできれば20%のパフォーマンスヒット - 私は10%を取ることに興味はないよ

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

:SPARC上の64ビットJVMのバージョン1.4のための20%のパフォーマンスヒット - このFAQは10%を示しそれを避けてください。ので、多分1.6 JVMは、パフォーマンスが1.4 JVMが持っていたことをヒットしていないこの問題を回避するために、32ビット/ 64ビットのハイブリッドアプローチを使用しての議論が行われています:

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に移行するためのパフォーマンスメトリック

ありがとうございました。ここディーン

+0

ちょうど好奇心から〜あなたはそれを試しましたか?メトリクスはありますか? –

+0

答えに言及されていないのは、圧縮されたoopsオプション - 64ビットコード、32ビットポインタです。オブジェクトは16バイト境界に整列され(他の丸めも可能です)、ポインタを移動して参照サイズを増やさずに64 GBのJavaヒープを可能にします。 –

答えて

4

はJDK 1.6.0_13の64ビットと32ビットバージョンを使用してSolaris上のTomcat 5.5上で実行されている弊社のWebサービスのカップルを呼び出すテストクライアントに基づいていくつかの結果です。

Tomcat 5.5のデフォルト設定を使用すると、64ビットJVMのパフォーマンスが約7%低下しました。 TomcatのパラメータacceptCountとmaxThreadsを1000に倍増させたとき、64ビットJVMのパフォーマンスがそれぞれ1%未満でした。これは、テストで使用していた同時テストクライアントの数に1000のスレッドが対応しているためです。

これらのパラメータを変更すると、32ビットJVMと64ビットJVMの両方の時間が短縮されましたが、64ビットJVMのパフォーマンスが大幅に向上しました。

あなたの走行距離は異なる場合があります。

関連する問題