システムの詳細な稼働情報を記録/可視化する「Java Flight Recorder」と「Java Mission Control」がJava SE 7のHotspot VMで利用可能に!

WebLogic Channel編集部
2013-10-28 11:00:00
  • このエントリーをはてなブックマークに追加

2013年9月、Java SEの機能アップデート「Java SE 7 Update40」がリリースされ、システムの稼働情報を記録/可視化するツール「Java Flight Recorder」と「Java Mission Control」がHotspot VMで利用可能になった。

Java SE 7の機能アップデート。主な機能追加は4つ

 2013年9月、「Java SE Update 40」がリリースされた(最新版はUpdate 45)。2012年4月のJava SE 7 update 4以来の大きな機能アップデート(Limited Update)※1となるJava SE Update 40では、主に次の4つの機能強化が図られている。

【Java SE 7 Update 40の主な強化ポイント】

(1)システムの稼働情報記録ツールであるJava Flight Recorderと、システム障害分析ツールであるJava Mission Controlの提供

(2)新たなセキュリティ機能「Deployment Rule Set」の導入。特定のJavaアプリケーションまたはアプリケーション・グループの実行をブロックしたり、アプリケーション実行時の警告表示をオフにしたりといった設定をアプリケーション配布者(企業のシステム管理者など)が行える

(3)ARMプロセッサへの対応強化。ARM v7上で動作するアプリケーションの性能とレスポンスを改善する機能「hard-float」が利用可能となった

(4)MacOS X Retinaディスプレイのサポート

※1 Java SEのアップデート・リリースには、計画的な機能追加によるLimited Updateと、セキュリティ脆弱性などへの緊急対応によるCritical Patch Updatesの2種類がある。それぞれのアップデート・リリースには(Update 40などの数字の)ナンバリング・ルールが定められており(Limited Updateには20の倍数、Critical Patch Updatesには5の倍数を付与)、Update 40の直前のリリースはUpdate 25となる。

JVMの統合により、JRockit専用の機能だったFlight RecorderとMission ControlがHotspot VMでも利用可能に

 上記4つの強化ポイントのうち、Update 40の目玉となるのがJava Flight RecorderとJava Mission Controlの提供だ。両ツールは、オラクルの独自JVM「JRockit VM」の専用ツールとして提供されていたものだ。それがUpdate 40からJava SE 7で利用可能となった。両ツール提供の背景を、日本オラクルの新井庸介氏(Fusion Middleware事業統括本部 ビジネス推進本部 製品戦略部担当シニアマネジャー)は次のように説明する。


日本オラクル Fusion Middleware事業統括本部 ビジネス推進本部 製品戦略部担当シニアマネジャーの新井庸介氏

 「Java SEに含まれるHotspot VMは、インテルCPUのほかにSPARCやARMなど、さまざまなプロセッサをサポートしています。それに対して、JRockit VMはインテル・プロセッサ向けに有償で提供してきたJVMで、ミッション・クリティカル・システムでの利用に堪える高い性能と堅牢性を備え、Java Flight Recorder(旧称はJRockit Flight Recorder)とJava Mission Control(同JRockit Mission Control)という、企業システムの運用管理や障害対応の効率や精度を劇的に改善するツールを提供してきました。

 こうしたJRockit VMのメリットはお客様に高くご評価いただいていますが、今後より多くのお客様に同様の利点をお届けできるよう、オラクルは現在“HotRockitプロジェクト”として、JRockit VMとHotspot VMの統合を進めています。その途中成果の1つがJava SE Update 40なのです」(新井氏)


※クリックすると拡大画像が見られます

 Java Flight RecorderとJava Mission Controlは、Java SEを利用する企業に対して長期間の保守とアップデートを提供するライセンス「Java SE Advanced」のユーザーと、Oracle WebLogic Server Enterprise Edition/Oracle WebLogic Suiteユーザーが利用できる。


※クリックすると拡大画像が見られます

【関連情報】

 それでは、Java Flight RecorderとJava Mission Controlは具体的にどのような機能を提供するのか、以下にその概要を紹介しよう。

OSからアプリケーションのレベルまで、わずかなオーバーヘッドで詳細な稼働情報を収集して記録──Java Flight Recorder

 Java Flight Recorderは、OSやOracle WebLogic Server、さらにはその上で動作するJavaアプリケーションに関する詳細な稼働情報をログ・ファイルに記録するツールである。

 ミッション・クリティカル・システムの実行基盤として利用されることの多いOracle WebLogic Serverは、数あるアプリケーション・サーバ製品の中でも随一の性能と堅牢性を誇るが、だからといってシステム障害が絶対に起きないとは断定できない。そこで、万が一、障害が起きた際の原因究明を迅速かつ正確に行うためにシステムの稼働情報を記録するツールとしてJava Flight Recorderが開発された。

 同ツールを使うことで、次に示すようなシステムの稼働情報を常時記録し、障害発生時の原因究明に使えるようになる。

【Java Flight Recorderで記録できる稼働情報】

OSレベル コンテキスト・スイッチ、CPUビジー、物理メモリ使用状況、環境変数情報、自JVM以外のプロセス情報
JVMレベル オブジェクト・アロケーション、ガーベジ・コレクション、空きメモリ、CPUビジー、システム・プロパティ、クラス・ロード、JITコンパイル、クラス別ヒープ利用状況
Javaアプリケーション・レベル ファイル/ソケットのI/O、ロック獲得/待機、イベント待機、例外
Oracle WebLogic Server コネクタ、サーブレット、EJB、JDBC、Webサービス、JTA

 詳細な稼働情報を記録できるだけでなく、その際のオーバーヘッドが極めて小さい点も大きな特徴だ。

 「現在のJava Flight RecorderはHotspot VMの純正ツールであり、一般のプロファイリング・ツールとは異なり、Hotspot VM自体の機構を使って稼働情報を収集します。そのため、稼働情報を取得する際のオーバーヘッドは最大でも5%以内に抑えられ、システムへの負荷を気にすることなく使える点も大きな特色です」(新井氏)

 一般のプロファイリング・ツールでは、オーバーヘッドが大きいために正確な稼働情報をとれないケースも見られるが、Java Flight Recorderであれば、そうした心配は無用だ。また、「サーブレットの応答速度が一定時間を超えた場合」、「ヒープの空き容量が一定値を超えた場合」といった具合に、指定した閾値を超えた際に記録を出力するといったこともできる。