正常性の監視ツール (Windows Server AppFabric キャッシュ)

ここでは、Windows Server AppFabric キャッシュ クラスターの動作状態監視に使用できる各種ツールとコマンドについて説明します。 次のようなツールがあります。

  • パフォーマンス モニター

  • Windows イベント トレーシング (ETW)

  • System Center Operations Manager

  • Windows PowerShell

パフォーマンス モニター

AppFabric のキャッシュ機能により、複数のパフォーマンス モニター カウンターがインストールされます。 利用できるカウンターの詳細については、「AppFabric のキャッシュ機能のパフォーマンス カウンター」を参照してください。 いくつかのカウンターの値を観察したりログに記録したりすることで、キャッシュ クラスターの典型的な動作のベースラインを決定できます。 たとえば、AppFabric Caching:Cache カテゴリでは、Total Client Requests / sec の値が一般的な範囲内で時刻によって変動することが見て取れます。 このベースラインを使用して、キャッシュ クラスターに対するクライアントの要求の増加傾向を判別し、キャッシュ ホストの追加が必要かどうか判断することができます。

パフォーマンス モニターの使用に関する概要については、「パフォーマンス モニターを使用する」を参照してください。

Windows イベント トレーシング (ETW)

AppFabric のキャッシュ機能では、Windows イベント トレーシング (ETW) を使用して、キャッシュ クラスターに関するステータスとエラー情報を提供します。 AppFabric キャッシュ機能の ETW ログを調べるにはイベント ビューアーを使用できます。

  1. キャッシュ ホストでイベント ビューアーを起動します。 イベント ビューアーを起動する方法については、「イベント ビューアーを起動する」を参照してください。

  2. 左のナビゲーション ウィンドウで、[アプリケーションとサービス ログ] フォルダーを展開します。

  3. 次に、[Microsoft]、[Windows]、および [Application Server-System Services] を展開します。

  4. [管理] ログを選択します。

管理ログには、AppFabric キャッシュ サービスの開始時や停止時など、情報の更新が記録されます。 警告やエラーも記録されます。 これらのログには AppFabric のホスティングや監視など、キャッシュ以外の機能によるイベントが含まれることもあるので注意してください。 ログをフィルター処理してソースを Micrsofot-Windows Server AppFabric Caching だけにすると、AppFabric キャッシュ機能に関連するイベントに絞り込むことができます。

[Application Server-System Services] フォルダーには 操作ログも含まれています。 このログは、既定で無効になっています。 有効にするには、ナビゲーション ウィンドウで [操作] ログを右クリックし、[ログの有効化] をクリックします。 操作ログには、低メモリ状態など他のイベントが記録されます。

キャッシュ クラスターの動作状態を評価するときは、クラスターに属する各キャッシュ ホストのイベント ログを評価することが重要です。 1 つのキャッシュ ホストで発生している問題がキャッシュ クラスター全体に悪影響を及ぼす可能性もあります。

イベント ビューアーは、キャッシュ クラスターの動作状態を定期的に監視するのに便利なツールです。 ただし、エラーのトラブルシューティングを行う場合は、キャッシュ クラスターのアクティビティに関するより詳細なログを取得できます。 これを行うには、tracelog.exe ツールを使用します。 tracelog.exe は、コマンド ラインから詳細な ETL トレース ログを作成するツールです。 tracelog ユーティリティは Windows ソフトウェア開発キットに含まれていて、ダウンロードできます。 次のコマンドを実行すると、cachedebugtrace.etl ファイルへのログの記録が開始されます。

tracelog -start debugtrace -f cachedebugtrace.etl -guid "C:\Windows\System32\AppFabric\Manifests\ProviderGUID.txt" -level 5 -cir 512

次のコマンドを実行すると、ログの記録が停止します。

tracelog -stop debugtrace

次のコマンドを実行すると、cachedebugtrace.etl ログ ファイルが cachedebugtrace.csv というテキスト ファイルに変換されます。

tracerpt .\cachedebugtrace.etl -o cachedebugtrace.csv -of CSV

ヒント

tracelog で生成されたログ ファイルの内容は traceprt ツールで見ることができますが、情報を完全に解釈するには Microsoft サポートとの共同作業が必要になります。

System Center Operations Manager

System Center Operations Manager を使用すると、AppFabric キャッシュ クラスターの動作状態を監視できます。 詳細については、「Windows Server AppFabric Management Pack for Operations Manager 2007」を参照してください。

Windows PowerShell

キャッシュ クラスターの現在のステータスや動作状態を表示する Windows PowerShell コマンドがあります。 ここでは、次のコマンドの使用方法について説明します。

  • Get-CacheHost

  • Get-CacheClusterHealth

  • Get-CacheStatistics

これらのコマンドは、キャッシュ クラスターの現在の状態に基づく動的な情報を提供します。 構成の詳細を調べる場合に便利なコマンドは Get-CacheConfigGet-CacheHostConfig、および Export-CacheClusterConfig です。 これらのコマンドについては、「キャッシュ クラスターの一般的な管理タスク (Windows Server AppFabric キャッシュ)」を参照してください。

ヒント

Windows PowerShell の使用方法の詳細については、「キャッシュ クラスターの一般的な管理タスク (Windows Server AppFabric キャッシュ)」を参照してください。 すべてのコマンドの一覧については、「Windows PowerShell を使用した Windows Server AppFabric キャッシュ機能の管理」を参照してください。

Get-CacheHost

キャッシュ クラスター内のキャッシュ ホストの状態を簡単に表示するには、パラメーターを指定せずに Get-CacheHost コマンドを実行します。 クラスター内の 1 台以上のキャッシュ ホストが稼動していない場合は問題が発生しています。 たとえば、Get-CacheHost を実行して次の例のような出力が返されたとします。

PS C:\> Get-CacheHost

HostName : CachePort      Service Name            Service Status Version Info
--------------------      ------------            -------------- ------------
CacheServer1:22233        AppFabricCachingService UP             1 [1,1][1,1]
CacheServer2:22233        AppFabricCachingService DOWN           1 [1,1][1,1]
CacheServer3:22233        AppFabricCachingService UP             1 [1,1][1,1]

この出力から、クラスターにはキャッシュ ホストが 3 台あることがわかります。 CachServer1CacheServer2、および CacheServer3 です。 Service Status 列では、1 台以上のキャッシュ ホストのステータスが UP になっていることから、キャッシュ クラスターが動作していることがわかります。 ただし、CacheServer2 はステータスが DOWN で、現在停止しています。 これは、CacheServer2 に問題があることを示している可能性もありますが、Start-CacheHost コマンドでキャッシュ ホストを起動するだけで解決することもあります。 Get-CacheHost コマンドは、キャッシュ クラスターの状態に関する概要を取得するために最初に実行されることが多いコマンドです。

Get-CacheClusterHealth

キャッシュ ホストの動作状態、およびそれらのキャッシュ ホスト上のキャッシュに関する詳細情報を取得するには、Get-CacheClusterHealth を使用します。 たとえば、Get-CacheClusterHealth コマンドからの次のようなサンプル出力について考えます。

Cluster health statistics
=========================

HostName = CacheServer1
-------------------------

    NamedCache = default
        Healthy              = 0.00
        UnderReconfiguration = 0.00
        NotPrimary           = 0.00
        NoWriteQuorum        = 0.00
        Throttled            = 25.00

    NamedCache = Cache1
        Healthy              = 0.00
        UnderReconfiguration = 0.00
        NotPrimary           = 0.00
        NoWriteQuorum        = 0.00
        Throttled            = 25.00


HostName = CacheServer2
-------------------------

    NamedCache = Cache1
        Healthy              = 25.00
        UnderReconfiguration = 0.00
        NotPrimary           = 0.00
        NoWriteQuorum        = 0.00
        Throttled            = 0.00

    NamedCache = default
        Healthy              = 25.00
        UnderReconfiguration = 0.00
        NotPrimary           = 0.00
        NoWriteQuorum        = 0.00
        Throttled            = 0.00


Unallocated named cache fractions
---------------------------------

内部的には、キャッシュ クラスターはパーティションの概念を使用してメモリを整理および管理しています。 Get-CacheClusterHealth コマンドの出力に表示されている数字は、キャッシュ クラスター パーティションの合計数の割合です。 たとえば、CacheServer2 上の Cache1 という名前付きキャッシュは、合計パーティションの 25.00% を使用していて、そのすべてのパーティションが正常に稼動しています。 ただし、個々の数字よりも、その数字が属するカテゴリのほうが重要です。 キャッシュまたはキャッシュ ホストを追加すると、Cache1 は 25.00% から 10.00% に低下しますが、その 10.00% が引き続き Healthy カテゴリに含まれる限り、このキャッシュは正常であり続けます。 前の例で、CacheServer1 では両方のキャッシュが Throttled と表示されていることに注意してください。 これは、そのサーバーが低メモリ状態にあることを示しています。 この低メモリ状態のトラブルシューティングを行う方法の詳細については、「スロットルのトラブルシューティング (Windows Server AppFabric キャッシュ)」を参照してください。

次の表では、Get-CacheClusterHealth の出力における各カテゴリについて説明しています。

動作状態のカテゴリ 説明

Healthy

キャッシュは通常どおりに稼動しています。 これは、すべてのキャッシュにとって目標となる状態です。

UnderReconfiguration

キャッシュは再構成中です。 これは内部的な状態であり、いくつかの原因が考えられますが、一時的なもので、正常に戻ると考えられます。

NotPrimary

キャッシュ ホストは現在使用できません。 これが発生することがあるのは、セカンダリ コピーがプライマリに昇格されるときです。 この移行中に、キャッシュが一時的に NotPrimary の状態になることがあります。 通常、この状態は正常に戻ります。

NoWriteQuorum

セカンダリ キャッシュ ホストに必要な数のレプリカを作成できないため、キャッシュは読み取り専用です。 これが発生するのは、キャッシュの高可用性オプションが有効になっている場合です (Secondaries = 1)。 この場合、クラスターでは 2 台以上のキャッシュ ホストが稼動している必要があります。1 台はキャッシュ項目のプライマリ コピー用で、もう 1 台はセカンダリ コピー用です。

Throttled

キャッシュ ホストのメモリが調整済みであるため、キャッシュは読み取り専用です。 これは、低メモリ状態にあることを示しています。

Unallocated named cache fractions は、特定のキャッシュ ホストにまだ割り当てられていないキャッシュ パーティションの割合を表しています。 通常、この状態はキャッシュ クラスターの開始時か、稼働中のクラスターでキャッシュ ホストが起動または停止したときに見られます。 通常、この状態は正常に戻ります。

Get-CacheStatistics

Windows PowerShell の Get-CacheStatistics コマンドは、キャッシュの内容に関する基本情報を提供します。 次の例では、Cache1 という名前のキャッシュに関するキャッシュ統計情報を表示する方法を示します。

Get-CacheStatistics Cache1

前のコマンドの出力例を次に示します。

Size         : 12408186
ItemCount    : 1200
RegionCount  : 714
RequestCount : 1200
MissCount    : 1200

この出力から、Cache1 の合計サイズは 12408186 バイトで、1200 の項目が存在することがわかります。 領域は、ユーザー作成のものとシステム作成のものを合わせて 714 あります。 要求数は 1200 で、ミスの数も 1200 です。 ただし、問題を切り分ける際に MissCount は重視されません。 キャッシュ クラスターを再起動するときに、アプリケーションはキャッシュにデータを格納し直す必要があります。 その際にキャッシュ項目が存在するかどうかを確認する必要があり、結果として MissCount の増加に繋がります。 MissCount の値が大きいのは、キャッシュ内の項目が予期せず削除されたことや、キャッシュ項目の有効期限が短すぎることを示している可能性もあります。しかし、そのような状況はキャッシュ統計情報だけでは確認できません。 たとえば、Put メソッドを使用して、キャッシュにない項目を追加する場合、MissCount は増加しますが、エラー状態ではありません。

このコマンドは、Get-CacheConfig コマンドと組み合わせて使用できます。 たとえば、Get-CacheStatistics コマンドを実行した結果、Cache1 が 1 GB という予想外の大きなサイズであることがわかった場合、Get-CacheConfig でキャッシュ構成を調べて削除と有効期限の設定を表示することが考えられます。

関連項目

概念

キャッシュ クラスターの正常性の管理 (Windows Server AppFabric キャッシュ)

  2011-12-05