Java Runtime環境(JRE)は、Javaアプリケーションを開発するために使用されるツールセットです。JREには通常、Java仮想マシン(JVM)、Javaクラス・ライブラリ、クラス・ローダーの組み合わせが含まれます。
JREの機能のひとつである自動メモリー管理によって、通常、メモリー内部で何が起こっているか把握することが難しく、パフォーマンスに問題が発生したとしてもボトルネックを特定することが困難となっています。
Applications ManagerのJava Runtime監視は、Javaの実行環境の主要なパフォーマンス指標を可視化することにより、アプリケーションパフォーマンスの最適化を支援します。
Applications Manager Java Runtime監視では、JVMメモリー、ガベージコレクション(GC)、スレッドなどを監視し、可視化します。
メモリーの状況を可視化
メモリー使用率は、アプリケーションに及ぼす影響が大きく、常に監視が必要なパラメータです。JVMメモリーを使い果たすと、待ち時間が発生したり、最悪の場合、システムクラッシュに繋がる可能性があります。
Applications Managerでは、物理(CPU、ディスク)と仮想(JVM)の両方のメモリー消費を監視できます。 Eden領域、Survivor領域、Tenured Gen領域、PermGen領域、コードキャッシュ領域などのヒープメモリーと非ヒープメモリーの統計など、JVMメモリーに関する詳細な情報を可視化します。
世代別メモリーの効率的な割り当てを支援
Javaアプリケーションは、ガベージ・コレクション(garbage collection)と呼ばれるプロセスで自動でメモリー管理を行います。ガベージ・コレクションは、新しいオブジェクト用の領域を確保するために、不要になったJVMオブジェクトを収集します。適切な世代サイジングとオブジェクトの割り当てのためには、 ガベージ・コレクタの監視が不可欠です。Applications ManagerのJava Runtime監視は、ガベージ・コレクションのプロセスとコレクター統計を可視化します。
並行処理の問題を回避
Javaは、並列処理によって非同期動作を実施します。 並行動作するスレッドが共有データ・プールにアクセスする必要がある場合に問題が発生すると、デッドロックやプログラムデータに不整合が発生する可能性があります。
Applications ManagerのJava Runtime監視では、Javaスレッドを監視し、総スレッド開始数、ピーク・スレッド数、ライブ・スレッド数、実行可能数、ブロック数、待機数、Timed Waitingの状態、デーモン・スレッド数、デッドロック・スレッド数などの重要なスレッドのパフォーマンスを可視化します。 Javaマシンのスレッドダンプの履歴を確認することで、すべてのスレッドのステータスと詳細を把握できます。
Javaトランザクションを可視化
Java Runtime監視に加えて、Applications Managerでは、アプリケーションのWebトランザクションも監視できます。Applications ManagerのAPMインサイトは、Javaアプリケーションがエンドユーザー側でどのように動作するかを変換し、URLからSQLコンポーネントまでのトランザクションを可視化します。 また、Apdexスコアでアプリケーションユーザーの満足度を測定したり、トランザクションエラーを発生源まで遡って調査したりすることができます。
APMインサイト Java Webトランザクション監視の詳細はこちら
トラブルシューティングを迅速化
Applications Managerは、問題の原因調査を迅速化するための便利な障害管理システムを備えています。 Java Runtimeの各値にしきい値を設定し、標準的な動作から逸脱した場合に通知を受け取ることができます。 また、アノマリプロファイルを設定することで細かなパフォーマンスの問題も特定できるため、エンドユーザーが影響を受ける前に対策を講じることができます。
パフォーマンスデータを可視化するレポート
Applications Managerが提供する傾向分析レポートを使用して、取得したJava Runtimeの監視データを蓄積し、分析に使用できます。
一定期間に渡って様々なメトリクスの履歴データを分析することができます。機械学習(マシンラーニング)を搭載したレポート分析により、最大3年先までの成長と利用傾向を予測します。
Java Runtime監視機能の設定方法の詳細については、Applications Managerのユーザーガイドをご覧ください。