ホームページ  >  記事  >  運用・保守  >  UAVStack で JVM 監視および分析ツールを使用する方法

UAVStack で JVM 監視および分析ツールを使用する方法

PHPz
PHPz転載
2023-05-14 15:31:121457ブラウズ

はじめに

AllInOne のインテリジェント サービス テクノロジ スタックとして、UAVStack は非常に包括的な監視データ サンプリング機能を提供し、データの監視と早期警告をサポートします。この度、独自のデータ収集・表示機能を統合し、JVM解析機能を追加し、より使いやすいJVM監視・解析ツールを提供開始しました。

JDK に精通している開発者は、JDK 自体が jinfo、jmap、jstack などの一連の JVM 分析ツールを提供していることを知っています。ユーザーは、JVM メモリ スタック情報、メモリ オブジェクト割り当て、および基本的な JVM 起動パラメータ情報をコマンド ラインから簡単に取得できます。ただし、これらのツールはコマンド ライン環境で実行する必要があり、運用環境では要塞ホスト経由で転送する必要があります。

オープンソース コミュニティのいくつかの優れた JVM 分析ツールは、基本的な JVM 情報の取得、スタックのトレース、メモリ情報の取得などの機能も提供しますが、コマンド ライン CLI のサポートも必要とします。

UAVStack によって起動された JVM 監視および分析ツールは、収集された監視データをグラフィカルに表示するためのページベースの表示方法を提供します。また、基本的な JVM パラメーターの取得、メモリ ダンプ、スレッド分析、メモリ割り当てサンプリング、およびホット スポットも提供します。 . メソッド分析およびその他の機能。

1. アーキテクチャ

JVM 監視および分析ツールは、UAVStack の既存のアーキテクチャに基づいており、フロントエンド、バックエンド、ミドルウェア拡張フレームワーク (MOF) に分かれています。

  • フロントエンドは、データの表示とユーザーの実行命令をバックグラウンドに送信する役割を果たします。

  • バックグラウンドは、次の役割を果たします。命令の発行、ユーザーのクエリへの応答、収集の処理 受信したデータ;

  • ミドルウェア拡張フレームワーク (MOF) は、バックグラウンドで発行された命令を受信し、命令を実行して返す責任があります。データをアップロードするか、ファイルにデータを書き込むと、UAV が提供するファイルが返されます。データをアップロードするための関数を設定します。

全体的なアーキテクチャ プロセスを次の図に示します:

UAVStack で JVM 監視および分析ツールを使用する方法

2. 主要なテクノロジ

2.1 JMX

JMX は、JVM 監視データの基礎となるメモリ ヒープ サイズ、GC ステータスなどの基本的な JVM 監視データを取得するための関連インターフェイスを提供します。

2.2 ミドルウェア拡張フレームワーク (MOF)

分析ツールのリンク全体の基礎として、MOF はユーザー アプリケーションに依存し、主に次の基本サポートを提供します。

    基本データ収集: MOF がアプリケーションに組み込まれている場合、JMX は関連する JVM の基本情報データを定期的に取得して報告し、表示と早期警告のためのデータ基盤を提供します。
  • リクエストのキャプチャ、命令の実行: JVM 監視および分析ツールのほとんどの機能では、アプリケーションが配置されているサーバーに命令を発行する必要があります。 MOF は、命令を発行するリクエストをインターセプトし、命令を実行して、対応する結果を返す責任があります。
  • 2.3 Java Attach API

Java Attach API は、Sun が提供する非標準 API のセットで、ユーザーを実行中の仮想マシン プロセスに接続してエージェントのマウントや実行を行うことができます。他の操作。

JVM 監視および分析ツールでは、Java Attach API は主に仮想マシン プロセスに接続し、次の操作を実行するために使用されます:

    JMX 接続の取得:外部からJVMConnectionを取得し、MXBeanを取得して実行データを取得します。 (CPU サンプリング分析)
  • VirtualMachine オブジェクトを取得します。インターフェイスを呼び出してヒープ メモリの分布情報を取得します。 (メモリサンプリング解析)
  • 3. 機能表示

3.1 基本監視

アプリケーションインスタンスを選択すると、基本監視ページに入ることができます。

このページには主に CPU 使用率、スレッド ステータス、メモリ使用量、GC ステータスが表示されます。ユーザーは、ニーズに応じて時間範囲を調整し、さまざまな期間の監視データを表示できます。

UAVStack で JVM 監視および分析ツールを使用する方法3.2 JVM 概要

JVM 概要ページには、基本情報、JVM パラメータ、システム プロパティなど、現在の仮想マシンの基本パラメータ情報が表示されます。

    基本情報には、pid、ホスト情報、起動パラメータ、JVM 起動時間などの最も基本的で重要な情報が含まれます。 # JVM パラメータには、すべての JVM 起動パラメータが含まれます。ユーザーは、指定されたヒープ サイズ、ガベージ コレクタ情報などを表示できます;
  • システム プロパティには、System.Properties および Javaagent Configuration に記述されたすべての構成情報が含まれますプロパティ。
  • 3.3 スレッド解析
スレッド解析は、jstack を実行してスレッドの基本情報を取得し、その出力結果を解析して取得します。スレッドのステータス、数量、デッドロック、その他の情報。

UAVStack で JVM 監視および分析ツールを使用する方法

3.4 メモリダンプ

メモリダンプは、jmap を実行することで、指定された JVM のスタックダンプファイルを取得します。

UAVStack で JVM 監視および分析ツールを使用する方法ユーザーは、踏み台マシンにログインせずに、ワンクリックでフロントエンドでダンプを簡単に生成できます。最近のダンプ メモリ操作記録を表示するには、[更新] をクリックします。

3.5 CPU 分析

CPU 分析はスレッド スタック サンプリング分析に基づいており、主にスレッド実行時間とメソッド ホットスポット サンプリングの 2 つの機能を提供します。

  • スレッド実行時間は、サンプリング期間中のスレッドのアクティビティ時間を指します。クエリ結果はスレッドの合計アクティビティ時間に従ってソートされ、スレッド名とスレッドの実行時間の情報も提供されるため、ユーザーはアプリケーションの実行ステータスを判断できます。

UAVStack で JVM 監視および分析ツールを使用する方法

  • #メソッド ホットスポット サンプリングでは、すべてのメソッドの実行時間をカウントし、メソッドのクラス名とメソッド名の情報を提供します。このうち、メソッドの自己実行時間には、他のメソッドを呼び出すメソッドの実行時間は含まれません。クエリ結果はメソッドの自己実行時間に応じて降順に並べ替えられるため、ユーザーは現在のアプリケーション内の実行時間の長いメソッドを表示して、アプリケーションが異常で最適化が必要かどうかを判断できます。

UAVStack で JVM 監視および分析ツールを使用する方法

3.6 メモリ分析

メモリ分析は、スレッドとヒープに基づく統計的サンプリング分析であり、主に次の 2 つの機能を提供します。スレッド メモリ割り当てとヒープ割り当ての詳細。

  • スレッド メモリ割り当てでは、各スレッドのメモリ割り当てサイズやスレッド名などの情報が、メモリ割り当てサイズに従って降順に並べて表示されます。ユーザーは、現在大量のメモリを占有しているスレッドを表示できます。

UAVStack で JVM 監視および分析ツールを使用する方法

  • ヒープ内割り当てでは、ヒープ内に割り当てられた各クラスのインスタンスの数と、占有されているヒープ メモリが表示されます。メモリサイズの降順に並べ替えます。ユーザーは、この機能を単純なダンプおよび分析ツールとして使用して、メモリ割り当てを迅速に分析し、メモリ割り当ての問題を発見できます。

UAVStack で JVM 監視および分析ツールを使用する方法

以上がUAVStack で JVM 監視および分析ツールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。