BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 低レイテンシプロファイリングがJava 8で使用可能に

低レイテンシプロファイリングがJava 8で使用可能に

ブックマーク

原文(投稿日:2019/11/19)へのリンク

OpenJDKのコントリビュータたちの手によって、パワフルrなローレイテンシプロファイリング機能が、公開メンテナンスされているJava 8にバックポートされた。これにより、JVMのパフォーマンスを、低いオーバーヘッドで監視することが可能になる。Flight Recorderと呼ばれるこのツールは現在、AdoptOpenJDKを始めとするいくつかのオープンソース実装で使用することができる。

Java Flight Recorder(JFR)は、10年以上にわたって開発が続けられてきた、JRockitやWebLoguic Serverのパフォーマンス監視機能の基盤を形成するコンポーネントだ。JRockitとHotSpotがひとつのJVM実装に収束したことに伴い、Java 8およびJDK 7u40用HotSpotのタイムフレームに含まれることになった。外付けのパフォーマンス監視システムとは違い、JFRはJDKに直接組み込まれているため、サンプリングセーフポイントに起因するミスリードの発生しない、正確な方法でのパフォーマンス監視が可能になる。パフォーマンス診断が正確であるだけでなく、計測に伴って発生するオーバーヘッドも約2パーセントと低く抑えられている。これらの診断により、開発者やオペレータは、計測ポイントの特定や推測を行わずとも、正確なパフォーマンスデータを収集することが可能になる。

JFRのコードはJDK 11でオープンソースとして公開されており、すべてのユーザが無償で使用できる。オープンソース化される以前は、Java SE Advancedライセンスの必要な有償機能として、Oracle JDKでのみ使用することが可能であった。Oracle JDKでこの機能を有効にするためには、有償機能フラグか、あるいは有償機能を有効にするJMX接続を必要としていた。今回、JFRがバックポートされたことにより、無償JVM実装のユーザは、Oracle JVM以外であれば、コストの発生なくJFRを使用できるようになる。OracleがJDK 8の公開サポートを可能にする一方で、JDK 11以降には有償ライセンスを求めていることから、多くの開発者が、AdoptOpenJDKのHotSpotディストリビューションなどの無償メンテナンスバージョンに乗り換えている。

JFRは2つのコアメカニズムを経由して使用可能になる。まず、Flight Recorde自体が自動ブラックボックスレコーダとしてJVMに事前に組み込まれており、情報の記録を行う。そして、別システムとして動作するビジュアルコンソールのMission Controlを使うことにより、メトリクスの評価やパフォーマンススナップショットの生成など、オペレータによるブラックボックスの操作が可能になる。

JFRと他の商用ないし公開プロファイラには、注目すべき相違点がいくつかある。最も大きな違いは、JFRがすでにJVM内にあり、追加や統合のための追加ツールを必要としないことだ。他の主要な差異は、この配置された位置から何が見えるか、という点に端を発している。また、多くのプロファイラは、要求/応答ロード時間などの高レベルなメトリックスに重点を置いているが、下位JDKレイヤには"Web要求"のような概念は存在しない。結果的に、JFRがデフォルトで提供するメトリックスは、JVMの生のオペレーションをより指向したものになっている。それを反映した機能のひとつが、高度なガベージコレクション解析だ。単にガベージコレクションの統計情報を報告する一般的なツールとは違い、JFRの持つ分析機能では、どのようなガベージが収集されたのか、誰がそれを廃棄したのか、といった詳細を知ることができる。この機能により、パフォーマンスを改善する2つの結論が導き出される。すなわち、改善すべき点を具体的に特定し、ガベージコレクションのチューニングが不適切なソリューションである場合には、別のことをするべきである、という認識を持つことが可能である。

Flight Recorderについて学びたい開発者は、JDK Mission ComntrolプロジェクトのりーだであるMarcus Hirt氏の以前のプレゼンテーション内容を確認してほしい。またQcon SFではMikael BVidstet氏が、自身の新たなプレゼンテーションの中で、これと同じ話題を取り上げている。

この分析システムは現在、JDK 8メンテナが中心となって開発を進めているAdoptOpenJDKの早期アクセス版で使用することができる。JFRと合わせた完全かつテスト済のビルドも、Azul Zuluからの入手可能だ。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT