Jump to content 日本-日本語

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

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

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

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
Javaパフォーマンス徹底検証・後編
前述の計測結果をもとに、それぞれのサーバについてコア数による最大スループットの変化をグラフ化したものが、以下の図である。ここで、横軸がコア数、縦軸が最大スループットを表す。なお図中の「理想値」は、1コア時の性能値を基にリニアにスケールアップした場合の性能値を示している。
Javaパフォーマンス徹底検証・後編
スケールアップ・アプローチによる計測
スケールアップ時のボトルネックを解決する

スケールアップ・アプローチによる各サーバの最大スループット計測結果
図2:スケールアップ・アプローチによる各サーバの最大スループット計測結果
このグラフからは、以下のことが分かる。
  • rx4640やrx3600の最大スループットは、同じコア数のA社製品<2>と比較して2倍以上高い
  • rx4640、rx3600、およびA社製品<2>の最大スループットは、コア数に比例してほぼリニアにスケールアップしている
  • A社製品<1>の最大スループットはほとんどスケールアップしておらず、1コアの場合と比較して最大でも1.5倍程度しかスループットが伸びていない
  • A社製品<1>の8コアの性能は、rx4640やrx3600の1コアの性能にも満たない
このように、前編で示したHP IntegrityサーバとA社製品<1>の性能差は、スケーラビリティの違いに起因することが明らかとなった。

スケールアウト・アプローチによる計測

上述のスケールアップ・アプローチでは、WebLogic Serverのインスタンス数(すなわちWebLogic Serverが稼働するJVMのプロセス数)を1に固定して、各サーバのスケールアップ能力を計測した。そこで次に、同インスタンス数を増加させていくスケールアウト・アプローチによる計測結果を見てみたい。

なおスケールアウト・アプローチでは、個々のWebLogic Serverインスタンスを特定のCPUに割り当てて計測を行っている。HP Integrityサーバの場合、この割り当てはHP-UX Processor Sets(pset)により実施し、A社製品については同社OSの同様の機能を用いている。こうしたCPUへの割り当てにより、以下のような効果が期待できる。
  • コンテキストスイッチ時のCPUコア切り替えによるオーバーヘッドを排除できる
  • CPUコアごとにキャッシュが用意されているアーキテクチャでは、キャッシュの利用効率を高められる
以下のグラフは、スケールアウト・アプローチによる計測結果をグラフ化したものだ。ここで、横軸はWebLogic Serverインスタンス数、縦軸が最大スループットを表している。また図中の理想値は、1インスタンス時の性能値を元にリニアにスケールアウトした場合の性能値を示している。

スケールアウト・アプローチによる各サーバの最大スループット計測結果
図3:スケールアウト・アプローチによる各サーバの最大スループット計測結果

このグラフからは、以下のことがわかる。
  • rx4640およびrx3600の1インスタンスあたりのスループットは、A社製品<2>と比較して約2倍高い
  • rx4640、rx3600、およびA社製品<2>では、インスタンス数の増加にほぼ比例して最大スループットが伸びており、オーバーヘッドもほとんどない
  • A社製品<1>は、4インスタンス付近を境に最大スループットが頭打ちとなり、8インスタンスでは理想的なスループットの半分程度にとどまっている
このように、WebLogic Serverのインスタンス数を増加させていくスケールアウト・アプローチの場合にも、HP Integrityサーバのスケーラビリティの優位性は明らかである。

A社製品<1>のパフォーマンス・チューニング

ここまで見てきたとおり、A社製品<1>だけはスケールアップ・アプローチとスケールアウト・アプローチのいずれにおいてもスケーラビリティの低さが目立つ結果となった。そこで今回のベンチマーク・テストでは、同サーバに対して以下のチューニングを実施している。
  • A社製品<1>、A社製品<2>共に最新のパッチを適用
  • 不要なバックグラウンド・プロセスは全て停止
  • WebLogic Serverのスレッド数自動チューニング機能を使用した場合と使用しない場合の両方で測定を実施
  • SPEC jAppServer2004計測時と全く同じチューニングを実施
  • WebLogic Serverインスタンスに割り当てるコア数を2コアや4コアに変更した構成や、コアへの割り当てを行わない構成での測定も実施
これらのチューニングを実施した後でも、A社製品<1>のスケーラビリティのボトルネックを解消することはできなかった。

ただし、スケーラビリティの低さの原因をある程度絞り込むことはできた。A社提供のドキュメントなどを参考にしてCPU統計情報を取得したところ、「DTLB_miss」すなわちCPU上のデータ・キャッシュ用のTLS(Translation Lookaside Buffer:仮想アドレスから実アドレスへの変換用バッファ)のミス回数が異常に大きいことが分かったのである。そこでドキュメントに記されている対処方法を実施したが、やはりボトルネックは解消されなかった。もともと、1プロセッサに8コアを集積するA社製品<1>の独特のCPUアーキテクチャについては、キャッシュやTLBといった共有資源の不足を懸念する見方もあった。同サーバのスケーラビリティの低さは、そうした理由が背景にあるとも考えられる。

スケールアップ時のボトルネックを解決する

スケールアップ・アプローチによるベンチマーク結果では、いずれのサーバにおいても、コア数の増加にともないパフォーマンスが頭打ちとなる現象が観察された。このボトルネックを改善する方法を考えてみたい。

J2EEアプリケーションではマルチスレッドの利用が一般的である。マルチスレッド・プログラミングでは、同じコードやオブジェクトを複数のスレッドで並行して実行しても不整合が発生しないように排他制御を実装し、いわゆる「スレッドセーフ」なコードとする必要がある。しかし、多数のスレッドから高い頻度で共有オブジェクトにアクセスするような状況が発生すると、排他制御によるロック競合やロック待ちが発生する。マルチスレッド・プログラミングの集積とも言えるJ2EEアプリケーションでは、こうしたロック競合やロック待ちは避けて通れない問題だ。しかしいずれの現象も、J2EEアプリケーションの表面的な動作からは発見することが難しい。

そこでHPでは、こうしたJavaアプリケーションのボトルネックを容易に発見して改善する手段として、独自の解析ツールHPjmeterを提供している。以下の画面は、8コアのHP Integrityサーバ上でHP独自ベンチマークを実行し、その動作状況をHPjmeterで解析した例である。

HPjmeterによるロック競合の解析例
図4:HPjmeterによるロック競合の解析例
この「Thread Groups Histogram」画面では、WebLogic Server内部で動作する各スレッドの処理時間の内訳が表示されている。この画面を見ることで、処理時間の24.4%がロック競合、34.1%がロック待ちによって占められていることがわかる。  

つづいて、HPjmeterのもうひとつの画面「Lock Delay - Method Exclusive」の表示例を見てみたい。
ロック競合による消費時間の解析
図5:ロック競合による消費時間の解析
この画面では、ロック競合により消費されている累計総時間がメソッドごとに表示される。HP独自ベンチマークではWebアプリケーション・フレームワークとしてApache Strutsを使用しており、そのライブラリ中のメソッドによるロック競合が多発していることが上記例によって理解できる。
 
今回は、3種類のベンチマーク結果を通じて、デュアルコアItanium 2と新開発HP JVMのコンビネーションの実力を明らかにした。ここで示した計測結果を見ても分かるとおり、スケールアップとスケールアウトといった構成の違い、またはアプリケーションの違いにかかわらず、他社製品と比較しても高いスケーラビリティが得られることが実証された。また、JVMというソフトウェア・コンポーネントをアップデートするだけでも、Javaアプリケーションのパフォーマンス上昇が期待できることも注目すべきだろう。  

さらに、スケールアップ構成でボトルネックが生じている場合でも、HPjmeterという無償のプロファイリング・ツールを利用することで、ボトルネックを軽減できる。一般的には、こうした作業には有償ツールの購入が不可欠となる。

ここで紹介した内容により、HP IntegrityサーバとJavaアプリケーションの相性のよさを再認識していただけたはずだ。あらゆる構成において最適なパフォーマンスを引き出せるという特徴を生かして、今後のITインフラに求められる「変化に強いインフラ」を構築する上で、強力な土台を提供するだろう。

関連サイト

 
HP Integityサーバ
Java2 Platform Standard Edition for HP-UX
 

トップへ 戻る    

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

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

その他のコラム(特集)もお読み下さい

 
 

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