【レポート】

BEAWorld 2005 Tokyo - 一歩先を行くJVM、BEA JRockit 5.0

25日と26日の両日におよび、BEAの製品や関連技術を紹介するテクノロジ・カンファレンス「BEAWorld 2005 Tokyo」が赤坂プリンスホテルで開催された。SOAを中心に、関連する製品や採用事例の紹介のセッションが催され、プレス向けには新製品の発表も行われた。

25日はTechnical Day、26日はBusiness Dayとしてさまざまなセッションが催されているが、ここではとくに25日のTechnical Dayに開講されたBEA JRockitに関するセッション「一歩先を行くJVM、BEA JRockit 5.0」の様子をお届けしたい。

BEA JRockit 5.0

JRockitといえば、サーバ用途向けに高速カスタマイズされたJava仮想マシンとして知られている。Sun JDKをカスタマイズした製品で、WindowsおよびLinuxで動作するほか、今後はSolaris版、HP-UX版、AIX版も公開される予定。最新版はBEA JRockit 5.0。従来はJRockit 7.0、8.1とバージョンが上がってきたが、J2SDK 1.4.2からバージョンの命名規則がJ2SDKと同じ番号に変更され、以降はJRockit 1.4.2、JRockit 5.0と変則的な番号になっていることに注意されたい。

JRockitはもともとスウェーデンの企業アピールバーチャルマシンによって開発されていたJava仮想マシン。現在ではBEAからWebLogicなど同社製品の一部として提供されているほか、単体での無料ダウンロード提供もなされている。BEAは2002年のはじめごろにアピールバーチャルマシンを買収してJRockit技術を獲得。以来、IAサーバで高速に動作するJava仮想マシンとして開発を続け、現在同社の製品郡の中でも性能を支える重要な位置づけにある。

Java仮想マシンとしてはSunが開発し配布しているSun JDKが標準だが、Sun JDKは実装に開発の余地があることでも知られている。SunはリリースごとにJDKの実行速度改善を行っているが、それでもサードベンダからリリースされるJava仮想マシンの方が高速に動作しているのが現状。

BEA JRockit以外の高速なJava仮想マシンとしてはIBM JDKが有名だ。IBM JDKはSun JDKとは別に開発されたJava仮想マシンを搭載しており、その実行速度には定評がある。BEA JRockitも同様に高速なJava仮想マシンだが、BEA JRockitにはこれまで採用され稼働しているという実績と、実際にミッションクリティカルな分野でも採用されているという実績がある。

日本BEAシステムズ 三木雄平氏

「一歩先を行くJVM、BEA JRockit 5.0」と名うって公演したのは日本BEAシステムズのグローバルカスタマサポート本部、シニアデベロッパ リレーションズエンジニアの三木雄平氏。まず同氏はBEA JRockitの紹介をしたうえで、BEA JRockitが、BEA WebLogic専用のJava仮想マシンだと誤解されていることが多い点を指摘。BEA JRockitはBEA WebLogic専用のJava仮想マシンではなく、汎用的に使用できるJava仮想マシンである。

性能を左右するガベージコレクタとJIT

Sun JDKに搭載されているガベージコレクタは、Mark&Sweepを基本の方式としてシングルスレッドで動作する。ガベージコレクタスレッドが動作している間はほかのスレッドは停止せざるをえない。これはよく「Stop The World」と揶揄される。Stop The Worldはレスポンスやスループットを要求される用途におけるJavaの致命的な欠点だ。

BEA JRockitではこれに対し、ガベージコレクタのマルチスレッド化および通常スレッドとの並列動作化というふたつの方策、さらにガベージコレクタの方式を従来のMark&Sweepと世代別を導入したMark&Sweepのふたつを用意することで対処している。

まず、ガベージコレクタのマルチスレッド化がある。従来のガベージコレクタはシングルスレッドであるため、マルチプロセッサ環境になっても性能が向上しない。ようするに、ガベージコレクタの時間を短くしようとしてCPUの数を投入しても効果がないのである。これをマルチスレッド化することで、性能向上にあてることができる。通常スレッドとの並列動作化は、通常のスレッドが動作している状態でもガベージコレクタスレッドを動作するというもの。このふたつの方法にはレスポンスとスループットの面で一長一短の関係にある。

つぎにガベージコレクタの基本方式。従来のMark&SweepではJSPのような短期オブジェクトが大量に生成される場合に、長期にわたりオブジェクトが残ってしまうという問題があった。これに対し、コンパクションする段階を別のヒープに移動するようにした世代別Mark&Sweepが用意されている。

BEA JRockit 5.0ではこれらが状況に応じて自動的に切り替えて使われる。もちろんオプションを指定して方式を固定して使うこともできる。

また、BEA JRockitの高い性能を支えているのは搭載されているJITにある。JITは実行時にJavaバイトコードをネイティブコードに変換する機能。これは起動に遅延が生じるという欠点があるが、サーバとして運用する場合はその点を加味しなくてすむことから、BEA JRockitでは積極的に採用されている。

同氏はガベージコレクタの方策やMark&Sweepの動作、ヒープの使い方などを説明したあとで、BEA JRockitをチューニングする方法や指針を説明した。

BEA JRockitと関連ツール

詳細は省くが、同氏はBEA JRockitと連帯して動作するツールの紹介をおこなった。JRockit管理コンソール、JRockit Runtime Analyzer(JRA)、Ctrl-Break Handler、メモリリークツールだ。特に同氏が強く推薦したのはCtrl-Break Handler。Ctrl-Break HandlerはCUIツールだが、BEA JRockitを停止することなくJava仮想マシンやオブジェクトなど実行上のデータを取得するツールで、極めて有用なツールといえる。

JRockit管理コンソール 実行例その1

JRockit管理コンソール 実行例その2

Ctrl-Break Handler 設定ファイル

Ctrl-Break Handler 実行例

もう一つのJava仮想マシンとして

Javaは考慮して実装すれば高速に動作することは知られているが、実装を誤ると実行速度が遅くなることも同様に知られている。投入する開発費やその中での兼ね合いになるが、システムの高速化を図る場合、Java仮想マシンをBEA JRockitに置き換えるというのは、性能の面でも安定性の面でも利点があると考えられる。BEA WebLogicの性能を支えているだけのことはあるといえるだろう。



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

求人情報