概要
ここでは、次の指標の概要を示します。
- 平均応答時間:ノードでリクエストの結果を返すのにかかる時間(ミリ秒単位)。
- スループット:一定期間にノードで処理したリクエストの数。
- 成功 / 失敗:ノードから実行された CFM のうち、成功したものと失敗したものの割合を示す円グラフ。
- エラー:ノードで発生した 400 系および 500 系のエラーの回数を示す積み重ねグラフ。
- 処理速度が特に遅い URL:ノード内の各 CFM の実行時間を降順に示したもの。
- システム情報と共に、ColdFusion と Java のバージョンに関する情報も表示されます。
- 取得されたスレッドダンプの履歴:ノードレベルで取得されたスレッドダンプの以下の情報を表示する表。次の情報が含まれます。
- スレッドダンプ ID
- 合計スレッド数
- タイムスタンプ
- アクション(ダンプをテキストファイルとして書き出し)
- 取得されたヒープダンプの履歴:ノードレベルで取得されたヒープダンプの次の情報を表示する表。次の情報が含まれます。
- ヒープダンプの場所
- タイムスタンプ
上位の低速な URL
任意の URL をクリックすると、次のセクションを含むページが表示されます。
- 基本情報
- コードフロー
- CF サーバー非同期スレッドが含まれます。同時リクエスト数や、実行待ちおよび実行中のスレッドのステータスが表示されます。
- データベース
- 外部サービス
- クラウドサービス
- タグ/関数
- エラー/タイムアウト
- メモリ
- スレッド:リクエストで生成されたすべてのスレッドが含まれます。
アプリケーションの監視
CF サーバーページの「アプリケーション」タブでは、特定のクラスターまたは個々のインスタンスのすべてのアプリケーションに関連する指標を確認することで、アプリケーションを監視できます。
CF サーバーページは、クラスターレベルで、次の概要を提供します。
- クラスターのインスタンスの数と状態の割合。
- クラスターで発生した 400 系および 500 系のエラーの回数を示す積み重ねグラフ。
- 上位の低速な URL と、クラスターを構成するインスタンスのエラー分布。
- クラスターに関する ART とスループットの時系列のグラフ。
アプリケーションページには、アプリケーションの監視の際に取得されたデータが表示されます。このページには、監視して詳細を確認するアプリケーション(最大 5 つ)を選択できるドロップダウンがあります。
選択したアプリケーションに関して、次を表示できます。
- 各アプリケーションに関する平均実行時間グラフおよび状態スコア。
- 選択したアプリケーションに関する負荷の分布とエラーグラフ。
グラフは、これらの選択したアプリケーションのいずれかで一定期間に発生した 400 系および 500 系エラーの総数を表示する積み重ね領域です。
アプリケーションのリストから任意のアプリケーションをクリックすると、アプリケーションの詳細ページにリダイレクトされ、例えば次のようなアプリケーションに関する詳細が表示されます。
- ART グラフ。
- 処理速度が特に遅い URL/クエリ。
- エラーグラフ。
- データソース呼び出しおよび外部サービス呼び出しの分布の円グラフ。
- 選択したアプリから実行されたリクエスト全体の様々な応答コードの配分を示す円グラフ。
- セッション数のグラフと、クラスターを構成するノード全体で実行されたリクエストの配分を示す円グラフ。
RunAsync スレッドの監視
非同期操作で実行中のスレッド数を監視することができます。RunAsync メソッドを実行している cfm をクリックし、「CF サーバー」タブで「非同期スレッド」を展開して、同時リクエストを表示します。
また、「スレッド」という新しいタブもあります。ここには、リクエストで生成されたすべてのスレッドが表示されます。
CF 関連指標
リクエスト以外の ColdFusion 関連の様々な指標を監視するには、左側のパネルの ColdFusion サーバーページに移動します。CF 関連指標のデータは、常に ColdFusion サーバーのノードレベルで取得され、15 秒ごとに更新されます。
ノードの場合は、CF サーバーページに移動すると、「CF の指標」タブが表示されます。
クラスターの場合は、ノードの指標を表示するには、CF サーバーページにリストされているノードをクリックします。
ここで取得される指標は、CF Admin で指定できる設定によって管理します。スロットル、リクエストおよびスレッド関連の設定は、サーバーの設定ページおよびリクエストの調整ページにあります。キャッシュページのキャッシュデータおよびデータベース関連の変更は、プールサイズを管理するための詳細設定で、個々のデータベースごとに適用できます。
収集される指標は次のとおりです。
- スロットルデータ
- リクエストのキューデータ
- セッションデータ
- データソース接続指標
- CF スレッド/非同期スレッド指標
- テンプレート/コンポーネント/クエリキャッシュサイズ
スロットルデータ
スロットル関連のデータは、CF Admin の設定で指定したスロットルのしきい値に達したときに収集されます。カーソルを合わせると次のデータが表示されます。
- スロットルキューの平均サイズ:スロットルメモリが不足している場合の 、 一定期間内における実行待ちのリクエストの平均値です。
- 平均スロットルメモリ:Admin の設定で指定したしきい値に達してスロットルされた後、リクエストで使用されたスロットルメモリの値です。
リクエストキュー
キューに入れられたリクエストの平均値を示す積み重ねグラフです。ここで収集されるリクエストのタイプは、CFM テンプレート、CFC および Web サービス(SOAP サービス)です。グラフに表示される最終値は、これら 3 種類のリクエストの合計です。この値には、CF Admin のリクエストの調整ページの設定も反映されます。キューに入れられたリクエストのデータ以外に、グラフにカーソルを合わせると、実行中のリクエストとタイムアウトになったリクエストのデータも表示されます。
* データは、ColdFusion のスタンダード版では収集されません。
テンプレート/コンポーネント/クエリキャッシュサイズ
CF スレッド/非同期スレッド指標
グラフには、実行中およびキューに入れられた ColdFusion スレッドの数が表示されます。スレッドは、cfthread タグまたは ColdFusion の同等のスレッド関数を使用して生成されます。データも、リクエストの調整ページの設定で管理できます。
また、このグラフには、生成された非同期スレッドの数も表示されます。
データソース接続の指標
接続関連のデータを表示する積み重ね棒グラフ。そのデータソースは、様々なリクエスト(使用可能な最大接続数、開いている接続の平均数およびそのデータソースに対しておこなわれた合計接続数など)に関連付けられています。
セッションデータ
グラフでは、一定期間内のアクティブなセッションと期限切れセッションの数を確認できます。
バイト指標
バイトイン/秒:1 秒あたりの受信バイト数
- 直前の 1 秒間に ColdFusion が読み込んだバイト数(平均ではありません)。
バイトアウト/秒:1 秒あたりの送信バイト数
- 直前の 1 秒間に ColdFusion が書き込んだバイト数(平均ではありません)。
システム関連指標
このセクションには、すべてのシステム関連指標が表示されます。
CPU 使用率
システムおよび JVM の使用率を時系列グラフで表示します。
メモリ使用量
「サーバー」タブでサーバーのメモリ消費量を監視できます。システムメモリ消費量およびサーバーで実行中のすべてのプロセスのメモリ使用量を確認できます。赤い破線の横線は、基準の使用量を示します。
ネットワーク I/O
送受信されたパケットの数とネットワーク速度の時間的変化を示します。
ディスク I/O
任意の時刻におけるディスクの読み取りと書き込みの指標を表示します。
JVM 関連指標
Performance Monitoring Toolset は JVM に関する詳細な指標を提供します(この節で説明します)。利用可能な JVM 関連指標は次のとおりです。
- ヒープおよび非ヒープメモリとその配分
- GC 配分グラフ
- GC の回数
- スレッドおよびスレッドプール関連指標
- クラスのロードに関する指標
ヒープおよび非ヒープメモリとその配分
JVM はメモリ管理をおこなっているので、JVM の設定方法によってパフォーマンスに大きな影響が出ることがあります。JVM の最も重要な設定は、初期ヒープサイズと最大ヒープサイズです。初期ヒープサイズは JVM が開始時に使用するメモリ量を表し、最大ヒープサイズは JVM が使用できるメモリ量を表します。これらの設定は、ColdFusion Administrator の Java と JVM の設定ページで変更できます。
GC 配分
ガベージコレクション(GC)は、プログラムで参照されなくなったオブジェクトに割り当てられたメモリを再生利用するプロセスです。次のグラフに 2 種類の GC を示します。
- マイナーコレクション:若い世代でおこなわれるガベージコレクション。ColdFusion のマイナーコレクションでは、参照されていないローカルスコープおよび変数スコープの変数を回収します。
- メジャーコレクション:古い世代でおこなわれるガベージコレクション。ColdFusion のメジャーコレクションでは、参照されていないセッションスコープ変数をすべて回収します。
ガベージコレクション回数の時間的変化を示すヒストグラムが用意されています。グラフの各棒にマウスポインターを合わせると、その特定期間の GC 回数が表示されます。
スレッドおよびスレッドプール関連指標
グラフには、サーバーが処理しているリクエスト数、および実行開始のためにアプリケーションサーバースレッドの割り当てを待っているリクエスト数が表示されます。
グラフが実行待ちのリクエスト数が多いことを示している場合は、スレッドプールのサイズを増加します。
次のグラフで、スレッドプールには、アクティブなスレッドの数の集計が表示されます。I
クラスのロードに関する指標
特定の期間にロードまたはアンロードされたクラスの数を示します。例えば、UDF に 10 個のメソッドがある場合は、10 個のクラスが cfc および cfm と共にロードされます。
スレッドダンプの取得
クラスター内のノードの場合は、スレッドまたはヒープのダンプを取得できます。次の処理を実行するためのボタンをクリックします。
- スレッドダンプの取得
- ヒープダンプの取得
- GC の起動
スレッドのスタックトレースを表示するには、スレッド状態をクリックします。
任意のスレッドグループをクリックすると、同様のスタックトレースが表示されます。
ヒープメモリ
ヒープメモリは、Java VM がすべてのクラスインスタンスおよび配列のメモリを割り当てるランタイムデータ領域です。ヒープのサイズは固定にすることも、可変にすることもできます。
- Eden:ほとんどのオブジェクトで、メモリの最初の割り当て元になるプールです。
- Survivor:Eden 領域のガベージコレクション後に残ったオブジェクトを含むプールです。
- Old gen:Survivor 領域内に一定時間留まったオブジェクトを含むプールです。
非ヒープメモリ
非ヒープメモリには、Java VM の内部処理または最適化に必要となる、すべてのスレッドおよびメモリで共有される領域が含まれます。メタスペース、コードキャッシュ、圧縮キャッシュが格納されます。
ヒープのスナップショットを作成する場合は、「ヒープダンプ」をクリックすると、ダンプが正常に作成されます。
ColdFusion アプリケーションでは、スレッドを使用してリクエストを処理します。同時に使用するユーザーの数が多いほどスレッドが多くなります。複数のスレッドが同じリソースを使用している場合は、スレッド間の競合が生じます。スレッドダンプは、スレッドの競合の問題を分析するために使用され、各スレッドの正確なステータスとコールスタックに関する情報を提供します。
注意:ヒープおよび非ヒープのグラフのデータは、正確ではない場合があります。例えば、MaxMetaSpaceSize を 192 MB に設定した場合、Performance Monitoring Toolkit では、そのサイズが 1456 MB と表示される場合があります。
スレッドダンプを取得するには、「スレッドダンプ」をクリックします。次のスレッドステータスが表示されます。
Performance Monitoring Toolset で GC を実行することもできます。ガベージコレクターは、アプリケーションのメモリの割り当てと解放を管理します。オブジェクトを作成するたびに、ランタイムによって、マネージドヒープからそのオブジェクトのメモリが割り当てられます。マネージドヒープでアドレス空間を利用できる場合は、ランタイムは新しいオブジェクトの領域の割り当てを続行します。
ガベージコレクターは収集を実行する際に、マネージドヒープにアプリケーションによって使用されなくなったオブジェクトがないかチェックし、メモリの再利用に必要な処理を実行します。
ヒープダンプを取得するには、ヒープダンプというラベルのボタンをクリックします。ヒープデータは <ColdFusion_Home/cfusion> 内の admin-1532006781545.hprof ファイルに保存されます。
ガベージコレクションを実行するには、「GC」をクリックします。
キャッシュ
この節では、使用されているキャッシュエンジンについて説明します。使用できるものは次のとおりです。
- Ehcache
- Redis
- Memcached
- JCS
- カスタムプラグイン
また、アプリケーションとサーバーのキャッシュ領域を確認することもできます。
「サーバーのキャッシュ領域」オプションを選択すると、次のような詳細情報が表示されます。
「アプリケーションのキャッシュ領域」オプションを選択すると、Application.cfc ファイルで指定したアプリケーションのキャッシュ統計情報が表示されます。
アクティブモニタリング
現在アクティブなリクエスト、クエリおよび ColdFusion スレッドを監視するには、左側のパネルにある「CF サーバー」をクリックします。ノードの場合は、CF サーバーページに移動すると、「アクティブモニタリング」タブが表示されます。
次のオプションを監視できます。
- 非同期スレッド
- セッション
クラスターの場合は、ColdFusion サーバーページに表示される個々のノードをクリックすると、そのアクティブモニタリングの詳細情報が表示されます。
このリストには、アクティブなリクエスト/CF スレッド/クエリが表示されます。また、非同期スレッドおよびセッションも表示されます。
追加情報だけでなく、これらのアクティブなリクエストおよび CF スレッドに対して、特定のアクションを実行することもできます。
アクティブなリクエストについて、特定のリクエストに関するスレッドの Java スタックトレースを表示して、そのリクエストの状態を把握できます。
スタックトレースから、かかった時間およびその他のパラメーター(サーバーの実行が遅くなる原因となるリクエストなど)を表示することもできます。このような場合は、リクエストをキルできます。
同様に、任意のアクティブな ColdFusion スレッドをキルすることもできます。