日本オラクルは2010年7月1日、Javaアプリケーション・サーバー「WebLogic」で使っているJava VM(仮想マシン)の新版「Oracle JRockit R28」を発表した。VMが備える自己診断/監視機能を用いて、新たにシステム障害や性能障害を解析できるようにした。2010年7月6日に出荷する。
JRockitは、Javaアプリケーション・サーバー向けのJava VMである。新版では、システム障害や性能劣化の原因を解析するための、JRockit Flight Recorderと呼ぶ機能を追加した。障害の発生時の振る舞いをフライト・レコーダのようにすべて記録しておき、後から管理ソフト「JRockit Mission Control」を用いてオフラインで障害原因を解析できるようにする。
今回の新機能は、以前からセルフ・チューニングのためにVMが自前で備えていた監視機能を、システム障害の解析用途に流用したもの。Java VMが自前で監視機能を備えているため、ほかのJava VMやJavaプロファイラ(稼働詳細状況の監視ソフト)を組み合わせた場合と比べて監視にともなうシステム負荷が少なくて済む。同社によれば、監視によるオーバーヘッドは数%という。
JRockit Flight Recorderは、エラーの発生や性能劣化(定めたしきい値を超える)などをトリガーに、Javaオブジェクトの稼働状況や性能、メモリー状況などを記録する。解析用の情報はヒープ領域(メモリー)の一部に記録されるが、手動または自動でファイル出力することも可能である。
JRockitの稼働環境は、x86系CPUまたはSPARCで、Windows、Linux、Solarisで動作する。JRockitは、Javaアプリケーション・サーバー製品のWebLogic Server Enterprise Editionに含まれている。WebLogic Server Enterprise Editionの価格は、プロセッサあたり285万3270円(税込)、または指名ユーザーあたり5万7105円(税込)。
監視機能の内蔵と自己チューニングに特徴
今回の新機能の前提となったJRockitの特徴の1つは、Java VM内に、稼働状況の詳細や性能、メモリー使用状況などを監視する機能を内蔵している点である。同機能は、JMX(Java Management Extentions)仕様の管理エージェントとして実装されており、外部ツールのJRockit Mission Controlから、VMの稼働状況を監視/管理できる。管理画面として、プロファイラ機能を提供するJRockit Runtime Analyzerや、メモリー領域を監視するMemory Leak Detectorなどがある。
さらに、JRockitでは、通常であればVMの起動時オプションなどで明示的に指定しなければならないメモリー管理の設定内容を、VMの稼働中に動的にセルフ・チューニングする機能を備えている。これにより、メモリーに起因する急激なシステム負荷の高まりを可能な限り抑制する。
チューニングの対象は、参照されないオブジェクトをヒープ領域(メモリー領域)から消去するGC(ガベージ・コレクション)のアルゴリズムや、GCの挙動に影響を与える各ヒープ領域のサイズなどである。一般に、GCなどの挙動によってシステム負荷が高まるため、どのようにGCを発生させるかをチューニングによって制御する。