Jump to content 日本-日本語

製品  >  ソフトウェア  >  HP- UX Developer Edge

Javaパフォーマンス徹底検証・前編

デュアルコアItanium + Java HPの新サーバはここが凄い

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
Javaパフォーマンス徹底検証・前編
HP Integrityサーバの心臓部であるItaniumの最大の特徴は、米国HPとインテル社が共同開発したEPIC(Explicitly Parallel Instruction Computing)アーキテクチャだ。HPでは、このEPICの特性を十二分に生かした最適化により、Itaniumのポテンシャルをフルに引き出すことができるHP JVM(Java仮想マシン)を新開発した。ここでは、3種類のベンチマークによるパフォーマンス・テストの計測結果をもとに、デュアルコアItaniumと新開発HP JVMのコンビネーションの、いったいどこが凄いのかを明らかにしたい。
Javaパフォーマンス徹底検証・前編
「ItaniumのためのJVM」を新開発
SPEC jAppServer2004の計測結果
2006年11月
テクニカルライター 吉川和巳

「ItaniumのためのJVM」を新開発

過去の特集「Itaniumの「底力」を引き出すHPのコンパイラ技術」でも紹介したように、HP Integrityサーバの心臓部であるItaniumの最大の特徴は、米国HPとインテル社が共同開発したEPIC(Explicitly Parallel Instruction Computing)アーキテクチャである。

一般的なプロセッサとは異なり、EPICでは命令スケジューリング(実行順序の決定)のほとんどをコンパイラが担当する。そのため、コンパイラが「EPICを意識した最適化」をどこまで実施できるかによって、プロセッサ・パフォーマンスに大きな差が生じる。つまりItanium対応コンパイラは「Itaniumの一部分」と言っても過言ではないのである。

では、Itanium上で動作するJavaアプリケーションの場合はどうだろうか。ご存じのとおり、Javaアプリケーションの実行環境であるHP JVMは、Hotspotコンパイラと呼ばれるJIT(Just-In-Time)コンパイラを内蔵しており、Javaアプリケーションを構成するコードのうち、頻繁に実行される部分(ホットスポット)を実行時に検出しマシンコードへと変換する。よって、JavaアプリケーションがItaniumの真の性能を引き出せるか否かは、このHotspotコンパイラがItaniumに最適化されたマシンコードを生成できるかどうかにかかってくる。

そこでHPは、Itaniumに特化したHotspotコンパイラを新開発し、Java 2 Platform Standard Edition(J2SE)5.0対応のHP JVMから提供を開始した。このHotspotコンパイラは、ItaniumのEPICアーキテクチャのポテンシャルをフルに引き出せるマシンコードを生成する。よってJavaアプリケーションや開発者の側では、Itaniumを意識した特別なチューニングを実施する必要はない。さらにHP JVMがバージョン・アップされるたびに、さらなるパフォーマンス向上も期待できる。

では、この新開発のHP JVMの実力はどれほどのものだろうか。この点を客観的に評価するため、HPでは以下の3種類のベンチマークによるパフォーマンス・テストを実施した。
  • SPEC JBB2005
  • SPEC jAppServer2004
  • HP独自ベンチマーク
以下、このパフォーマンス・テストの結果を紹介し、Javaアプリケーションの実行環境としてのHP Integrityサーバが他社製サーバに比べてどのような点で優れているか、明らかにしたい。

SPEC JBB2005の計測結果

SPEC JBB2005は、Javaアプリケーション一般のパフォーマンスを計測する際に広く用いられているベンチマークである。ディスクI/OやネットワークI/Oを伴わず、おもにJVM(ガベージ・コレクションを含めた処理速度)とハードウェアのパフォーマンスを示す指標と言えるだろう。以下のグラフは、最新版のデュアルコアItaniumを搭載した新製品、HP Integrity rx6600におけるSPEC JBB2005の計測結果である(出典:SPEC (Standard Performance Evaluation Corporation)より、2006年11月21日参照)。比較対象として、他社の同等製品の計測結果も掲載している。

SPEC JBB2005計測結果
図1:SPEC JBB2005計測結果
出典: SPEC (Standard Performance Evaluation Corporation) このリンクをクリックすると、HP社外へリンクします。 より、2006年11月21日参照
このグラフから分かるとおり、他社の同等製品と比較しても、HP Integrityサーバでの計測結果は抜きんでている。また注目すべき点は、計測に用いられたJavaインスタンス数(JVMのプロセスの数)である。HP Integrityサーバの計測値は1〜2個のJavaインスタンスによって得られたものであるのに対し、他社による計測値は1台のサーバ上で4個や8個といった多数のJavaインスタンスを並行して稼働することで得られたものだ。

一般的には、このように負荷を多数のJavaインスタンスに分散させることで、JVM内部のロック競合などによるボトルネックが軽減され、1台のサーバ上でより高いベンチマーク値を得ることができる。とはいえ、現実のアプリケーションは複数のJavaインスタンスに分割できない場合も多く、そうしたケースでは上記の計測値はほとんどあてにならない。つまりHP Integrityサーバの計測値は、より現実に近い構成での結果であると言える。

またHP Integrityサーバでは、Javaインスタンス数が1個の場合と2個の場合で計測値にほとんど差がないことから、HP JVMそのものがボトルネックとなりにくい設計であることがわかる。もし他社のJVMも同様の低ボトルネック設計であれば、より少ないJavaインスタンス数による計測値を公表しているはずだ。

ひきつづき後半では、SPEC jAppServer2004の計測結果について紹介したい。
トップへ   次のページへ

内容に関するご意見・ご質問・お問い合わせ

 
日本ITフォーラム (別途、会員登録が必要です)
 

本ページの内容は執筆時の情報に基づいており、異なる場合があります。
印刷用画面へ印刷用画面へ
プライバシー ご利用条件・免責事項