セールス: 1-800-867-1380

In-Role Cache のトラブルシューティングと診断 (Azure Cache)

更新日: 2014年9月

noteメモ
アプリケーションに対して適切な Azure Cache サービスを選択するためのガイダンスについては、「どの Azure Cache を利用すればよいですか。」を参照してください。

インロール キャッシュ アプリケーションは、診断レベルを使用した診断データの収集のために構成されています。この診断レベルは、データ収集のレベルを構成するための 1 つの設定として使用されます。このトピックでは、インロール キャッシュ アプリケーションのトラブルシューティングの手順と診断について概要を説明します。

で実行されているアプリケーションは、幅広く分散されたマルチインスタンス アプリケーションなので、デバッグが困難になる可能性があります。このような種類のアプリケーションの問題を解決するには、高度なツールや方法が必要です。 アプリケーションのトラブルシューティングについてはこのトピックで扱っていません。詳細については、「Azure のトラブルシューティング (英語)」と「Azure での診断およびデバッグ」を参照してください。これらのトピックでは、実証済みのトラブルシューティング手順について説明しています。また、さらに詳細な情報とベスト プラクティスのリンクも記載されています。診断データの収集後に表示する方法詳細情報、「Azure ストレージへの診断データの保存と表示」を参照してください。

トラブルシューティングのために診断データを収集するように インロール キャッシュ アプリケーションを構成するには、ロールの開始時に診断レベルとキャッシュ診断を構成する必要があります。このトピックでは、インロール キャッシュ アプリケーションのトラブルシューティングの手順ついて概要を説明します。

インロール キャッシュ には 5 つの診断レベルがあり、診断データの収集量を構成するために使用されています。診断レベルの範囲は 0 ~ 4 です。この数値は、キャッシュ サーバーとクライアント用に収集される診断情報の量を示します。各診断レベルには、インロール キャッシュ アプリケーションのヘルスの監視に使用できる構成済みのパフォーマンス カウンター、イベント ログ、トレースおよびクラッシュ ダンプの設定が含まれています。

 

診断レベル 収集される診断データ

0

非常に重大/致命的なサーバー ログのみ。

1

使用パターン、キャッシュ システムのヘルス、および任意のエラーの可能性を評価するときに役立つ診断データ。これは既定の構成レベルです。

2

すべての要求と重要なシステム情報の詳細な診断データ。

3

詳細度がさらに高く、システム情報を含む診断データ。

4

すべての要求とシステム情報の最も詳細度が高いログ。

キャッシュ クライアントとキャッシュ サーバーの診断に対応する 2 種類のキャッシュ診断レベルがあります。DiagnosticLevel はキャッシュ サーバーの診断を示し、ClientDiagnosticLevel はキャッシュ クライアントの診断を示します。各レベルで、異なるパフォーマンス カウンター、ログ、トレース、クラッシュ ダンプの設定を構成します。これらの診断レベルは、アプリケーション用の ServiceConfiguration.cscfg ファイルで構成します。更新した ServiceConfiguration.cscfg ファイルをデプロイすることで、実行中のクラウド アプリケーションの診断レベルを変更できます。

キャッシュ クライアントのキャッシュ サーバー診断レベルは、ServiceConfiguration.cscfg の、キャッシュ クラスターをホストするロールの構成セクションで指定します。この設定は、ロールの [キャッシュ] タブでキャッシュを有効にしたときに Visual Studio によって追加されるので、Cache Worker Role をプロジェクトに追加したときには存在している状態です。既定の DiagnosticLevel は 1 です。ロールの DiagnosticLevel が指定されていない場合は、1 の DiagnosticLevel が使用されます。DiagnosticLevel を変更するには、ServiceConfiguration.cscfg でロールの DiagnosticLevel 設定を変更します。次に、ServiceConfiguration.cscfg ファイルで WorkerRole1 セクションの DiagnosticLevel を 1 に設定する例を示します。

<Role name="WorkerRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

次の表は、各診断レベルで収集される診断データの一覧です。

 

DiagnosticLevel 収集されるデータ

0

  • ログ レベル:Critical

  • パフォーマンス カウンターなし

  • イベント ログの登録なし

  • 少数のクラッシュ ダンプ

1

2

3

4

noteメモ
インロール キャッシュ アプリケーションを エミュレーターで実行している場合、複数のロール インスタンスがあっても、すべてのロール インスタンスのトレース情報が *_IN_0 フォルダーに収集されます。これは意図的な動作です。インロール キャッシュ アプリケーションが でホストされる場合、ロール インスタンス別のトレースはロール インスタンス別のフォルダーに格納されます。

キャッシュ クライアントの ClientDiagnosticLevel レベルは、ServiceConfiguration.cscfg の、キャッシュ クライアントであるロールの構成セクションで指定します。この設定は、ロールをキャッシュ クライアントとして動作するように構成したときに、インロール キャッシュ NuGet パッケージによって追加されます。

noteメモ
インロール キャッシュ NuGet パッケージを使用してキャッシュ クライアントを構成する方法詳細情報、「Configure a Project for Caching on Roles」を参照してください。

既定の ClientDiagnosticLevel は 1 です。ロールの ClientDiagnosticLevel が指定されていない場合は、1 の ClientDiagnosticLevel が使用されます。ClientDiagnosticLevel を変更するには、ServiceConfiguration.cscfg でロールの ClientDiagnosticLevel 設定を変更します。次に、ServiceConfiguration.cscfg ファイルで WebRole1 セクションの ClientDiagnosticLevel を 1 に設定する例を示します。

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

次の表は、各クライアント診断レベルで収集される診断データの一覧です。

noteメモ
クライアント診断レベルのキャッシュ ダンプ設定は、Memcached クライアント shim を使用するキャッシュ クライアントにのみ関係があります。Memcache クライアント以外の場合、クラッシュ ダンプは収集されません。Memcached クライアント shim 詳細情報、「Azure Cache の Memcached ラッパー」を参照してください。

 

ClientDiagnosticLevel 収集されるデータ

0

  • ログ レベル:Critical

  • パフォーマンス カウンターなし

  • イベント ログの登録なし

  • 少数のクラッシュ ダンプ

1

2

3

4

noteメモ
インロール キャッシュ アプリケーションを エミュレーターで実行している場合、複数のロール インスタンスがあっても、すべてのロール インスタンスのトレース情報が *_IN_0 フォルダーに収集されます。これは意図的な動作です。インロール キャッシュ アプリケーションが でホストされる場合、ロール インスタンス別のトレースはロール インスタンス別のフォルダーに格納されます。

キャッシュ診断データの収集を開始するには、ロールの開始時に次のコードを呼び出す必要があります。キャッシュ診断データを収集するには、キャッシュ クライアントまたはキャッシュ サーバーである各ロールにこのコードを追加する必要があります。このコードをホストするために便利な場所の 1 つは、ロールの OnStart オーバーライドです。次に例を示します。

public override bool OnStart()
{
    DiagnosticMonitorConfiguration dmConfig = 
        DiagnosticMonitor.GetDefaultInitialConfiguration();

    // Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig);

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", 
        dmConfig);

    return base.OnStart();
}

ConfigureDiagnostics メソッドで、キャッシュ診断データの収集を構成します。このメソッドを呼び出さない場合、キャッシュ診断データは収集されません。CacheDiagnostics クラスを使用するには、C:\Program Files\Microsoft SDKs\Azure\.NET SDK\2012-10\ref\Caching にある Microsoft.ApplicationServer.Caching.AzureCommon.dll への参照を追加し、次の using (または Imports) 文を追加します。

using Microsoft.ApplicationServer.Caching.AzureCommon;
noteメモ
インロール キャッシュ NuGet パッケージを使用してキャッシュ クライアントとしてロールを構成した場合、Microsoft.ApplicationServer.Caching.AzureCommon.dll アセンブリの参照は既に追加されています。

既存のロールにキャッシュを追加し、診断構成コードが既に存在する場合は、Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start を呼び出す前に、既存の診断開始コードに ConfigureDiagnostics の呼び出しを追加できます。

Warning警告
インロール キャッシュ アプリケーションで診断データを収集するには、ConfigureDiagnosticsMicrosoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start の両方を呼び出す必要があります。ロールの開始時にこれらの両方のメソッドを呼び出さない場合、キャッシュ診断データは収集されません。

次のセクションでは、サーバーとクライアントの各診断レベルに含まれるパフォーマンス カウンターの一覧を示します。インロール キャッシュ と の両方のパフォーマンス カウンターが含まれています。インロール キャッシュ パフォーマンス カウンターの一覧と説明については、「In-Role Cache の監視 (Azure Cache)」を参照してください。 パフォーマンス カウンター詳細情報、「Performance Counters in the .NET Framework」を参照してください。

DiagnosticLevel 1 には、以下のパフォーマンス カウンターが含まれます。

  • \Azure Caching:ホスト\平均セカンダリ応答時間 / 操作マイクロ秒

  • \Azure Caching:ホスト\合計データ サイズ バイト数

  • \Azure Caching:ホスト\合計クライアント要求数

  • \Azure Caching:ホスト\合計読み取り要求数

  • \Azure Caching:ホスト\合計オブジェクト数

  • \Azure Caching:ホスト\エラー例外の合計数

  • \メモリ\利用できるバイト数 (MB)

  • \プロセス(CacheService)\毎秒ページ フォールト数

    • エミュレーターで実行しているときのカウンター名は「\プロセス(CacheServiceEmulator)\毎秒ページ フォールト数」です。

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

DiagnosticLevel 2 には、以下のパフォーマンス カウンターが含まれます。

  • \Azure Caching:ホスト\平均セカンダリ応答時間 / 操作マイクロ秒

  • \Azure Caching:ホスト\合計データ サイズ バイト数

  • \Azure Caching:ホスト\合計クライアント要求数

  • \Azure Caching:ホスト\合計読み取り要求数

  • \Azure Caching:ホスト\合計オブジェクト数

  • \Azure Caching:ホスト\エラー例外の合計数

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:ホスト\合計読み取り要求数/秒

  • \Azure Caching:ホスト\キャッシュ ミスの割合

  • \Azure Caching:ホスト\合計プライマリ データ サイズ バイト数

  • \Azure Caching:ホスト\合計割り当てディレクトリ数

  • \Azure Caching:ホスト\使用可能キャッシュ項目の割合

  • \Azure Caching:ホスト\合計使用可能キャッシュ項目数

  • \Azure Caching:ホスト\通知配信合計数

  • \Azure Caching:ホスト\解放実行の合計数

  • \Azure Caching:ホスト\解放されたメモリ合計

  • \Azure Caching:ホスト\解放されたオブジェクトの合計数

  • \Azure Caching:ホスト\期限切れオブジェクトの合計数

  • \Azure Caching:ホスト\受け付けられた要求の合計数

  • \Azure Caching:ホスト\合計書き込み操作数

  • \.NET CLR LocksAndThreads(*)\競合の割合/秒

  • \.NET CLR メモリ(*)\% GC の時間

  • \.NET CLR メモリ(*)\Gen 0 ヒープ サイズ

  • \.NET CLR メモリ(*)\Gen 1 ヒープ サイズ

  • \.NET CLR メモリ(*)\Gen 2 ヒープ サイズ

  • \.NET CLR メモリ(*)\大型オブジェクトのヒープ サイズ

  • \メモリ\利用できるバイト数 (MB)

  • \プロセス(CacheService)\毎秒ページ フォールト数

    • エミュレーターで実行しているときのカウンター名は「\プロセス(CacheServiceEmulator)\毎秒ページ フォールト数」です。

  • \プロセス(*)\スレッド数

  • \プロセス(*)\ワーキング セット

  • \プロセス(*)\仮想バイト数

  • \プロセス(*)\経過時間

  • \プロセス(*)\ページ フォールト数/秒

  • \ネットワーク インターフェイス(*)\現在の帯域幅

  • \ネットワーク インターフェイス(*)\合計バイト数/秒

  • \Azure Caching:ホスト\合計接続数

  • \Azure Caching:ホスト\平均クォーラム応答時間 / 操作マイクロ秒

  • \Azure Caching:ホスト\合計クライアント要求数/秒

  • \Azure Caching:ホスト\通知配信合計数

  • \Azure Caching:ホスト\取得できなかった合計数

  • \Azure Caching:ホスト\合計書き込み操作数/秒

DiagnosticLevel 3 および DiagnosticLevel 4 には、次のパフォーマンス カウンターが含まれています。

  • \.NET CLR LocksAndThreads(*)\競合の割合/秒

  • \.NET CLR LocksAndThreads(*)\Current Queue Length

  • \.NET CLR Memory(*)\# Bytes in all Heaps

  • \.NET CLR メモリ(*)\# Gen 0 収集

  • \.NET CLR メモリ(*)\# Gen 1 収集

  • \.NET CLR メモリ(*)\# Gen 2 収集

  • \.NET CLR メモリ(*)\% GC の時間

  • \.NET CLR メモリ(*)\Gen 0 ヒープ サイズ

  • \.NET CLR メモリ(*)\Gen 1 ヒープ サイズ

  • \.NET CLR メモリ(*)\Gen 2 ヒープ サイズ

  • \.NET CLR メモリ(*)\大型オブジェクトのヒープ サイズ

  • \.NET CLR Exceptions(*)\# of Exceps Thrown

  • \メモリ\利用できるバイト数 (MB)

  • \Memory\Page Faults/sec

  • \PhysicalDisk(_Total)\% Idle Time

  • \PhysicalDisk(_Total)\Avg.Disk Queue Length

  • \Processor(_Total)\% Privileged Time

  • \Processor(_Total)\% Processor Time

  • \System\Context Switches/sec

  • \System\Processor Queue Length

  • \Process(*)\% Processor Time

  • \Process(*)\Handle Count

  • \Process(*)\Private Bytes

  • \プロセス(*)\スレッド数

  • \プロセス(*)\ワーキング セット

  • \プロセス(*)\仮想バイト数

  • \プロセス(*)\経過時間

  • \プロセス(*)\ページ フォールト数/秒

  • \プロセス(CacheService)\毎秒ページ フォールト数

    • エミュレーターで実行しているときのカウンター名は「\プロセス(CacheServiceEmulator)\毎秒ページ フォールト数」です。

  • \ネットワーク インターフェイス(*)\現在の帯域幅

  • \Network Interface(*)\Packets/sec

  • \Network Interface(*)\Bytes Sent/sec

  • \Network Interface(*)\Bytes Received/sec

  • \ネットワーク インターフェイス(*)\合計バイト数/秒

  • \System\System Up Time

  • \Azure Caching:ホスト\使用可能キャッシュ項目の割合

  • \Azure Caching:ホスト\合計接続数

  • \Azure Caching:Host\Available Directory Percentage

  • \Azure Caching:Host\Available Memory Percentage

  • \Azure Caching:ホスト\平均クォーラム応答時間 / 操作マイクロ秒

  • \Azure Caching:ホスト\平均セカンダリ応答時間 / 操作マイクロ秒

  • \Azure Caching:ホスト\キャッシュ ミスの割合

  • \Azure Caching:Host\Gateway Process Time

  • \Azure Caching:Host\Gateway Failure Percentage

  • \Azure Caching:Host\Request Processing Error Percentage

  • \Azure Caching:Host\Total Allocated Cache Item Count

  • \Azure Caching:ホスト\合計割り当てディレクトリ数

  • \Azure Caching:ホスト\合計使用可能キャッシュ項目数

  • \Azure Caching:Host\Total Available Directory Count

  • \Azure Caching:Host\Total Available Memory Bytes

  • \Azure Caching:Host\Total Cache Misses

  • \Azure Caching:Host\Total Cache Misses /sec

  • \Azure Caching:ホスト\合計クライアント要求数

  • \Azure Caching:ホスト\合計クライアント要求数/秒

  • \Azure Caching:ホスト\合計データ サイズ バイト数

  • \Azure Caching:ホスト\解放されたオブジェクトの合計数

  • \Azure Caching:ホスト\解放実行の合計数

  • \Azure Caching:ホスト\期限切れオブジェクトの合計数

  • \Azure Caching:ホスト\エラー例外の合計数

  • \Azure Caching:Host\Total Failure Exceptions /sec

  • \Azure Caching:ホスト\解放されたメモリ合計

  • \Azure Caching:ホスト\通知配信合計数

  • \Azure Caching:Host\Total Notification Delivered /sec

  • \Azure Caching:Host\Total Notification Poll Requests

  • \Azure Caching:Host\Total Notification Poll Requests /sec

  • \Azure Caching:ホスト\合計オブジェクト数

  • \Azure Caching:Host\Total Objects Returned

  • \Azure Caching:Host\Total Objects Returned /sec

  • \Azure Caching:ホスト\合計プライマリ データ サイズ バイト数

  • \Azure Caching:ホスト\取得できなかった合計数

  • \Azure Caching:Host\Total Get Misses /sec

  • \Azure Caching:Host\Total Get Requests

  • \Azure Caching:Host\Total Get Requests /sec

  • \Azure Caching:Host\Total GetAndLock Requests

  • \Azure Caching:Host\Total GetAndLock Requests /sec

  • \Azure Caching:ホスト\解放されたメモリ合計

  • \Azure Caching:ホスト\合計読み取り要求数

  • \Azure Caching:ホスト\合計読み取り要求数/秒

  • \Azure Caching:ホスト\受け付けられた要求の合計数

  • \Azure Caching:Host\Total Requests Served /sec

  • \Azure Caching:Host\Total Retry Exception

  • \Azure Caching:Host\Total Retry Exception /sec

  • \Azure Caching:Host\Total Secondary Data Size Bytes

  • \Azure Caching:Host\Total Successful GetAndLock Requests

  • \Azure Caching:Host\Total Successful GetAndLock Requests /sec

  • \Azure Caching:ホスト\合計書き込み操作数

  • \Azure Caching:ホスト\合計書き込み操作数/秒

ClientDiagnosticLevel 1 には、次のパフォーマンス カウンターが含まれています。

  • \Azure Caching:Client Host\Failure Exceptions

  • \Azure Caching:Client Host\Total Local Cache Hits

  • \Azure Caching:Client Host\Current Server Connections

  • \Azure Caching:Client Host\Average Get Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Put Latency / operation Microsecond

  • \Azure Caching:Client Host\Retry Exceptions

  • \Azure Caching:Client Host\Timeout Exceptions

  • \Azure Caching:Client Host\Requests

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Client(*)\Failure Exceptions

  • \Azure Caching:Client(*)\Total Local Cache Hits

  • \Azure Caching:Client(*)\Current Server Connections

  • \Azure Caching:Client(*)\Average Get Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Put Latency / operation Microsecond

  • \Azure Caching:Client(*)\Retry Exceptions

  • \Azure Caching:Client(*)\Timeout Exceptions

  • \Azure Caching:Client(*)\Requests

ClientDiagnosticLevel 2、3、および 4 には、次のパフォーマンス カウンターが含まれています。

  • \Azure Caching:Client Host\Requests

  • \Azure Caching:Client Host\Requests / sec

  • \Azure Caching:Client Host\Server Responses Dropped / sec

  • \Azure Caching:Client Host\Failure Exceptions

  • \Azure Caching:Client Host\Failure Exceptions / sec

  • \Azure Caching:Client Host\Average Get Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Put Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Get Latency (Network) / operation Microsecond

  • \Azure Caching:Client Host\Read Requests

  • \Azure Caching:Client Host\Write Requests

  • \Azure Caching:Client Host\Bytes Received / sec

  • \Azure Caching:Client Host\Bytes Sent / sec

  • \Azure Caching:Client Host\Current Server Connections

  • \Azure Caching:Client Host\Local Cache Filled Percentage

  • \Azure Caching:Client Host\Local Cache Hits Percentage

  • \Azure Caching:Client Host\Total Local Cache Hits

  • \Azure Caching:Client Host\Total Local Cache Objects

  • \Azure Caching:Client Host\Total Notifications Received

  • \Azure Caching:Client Host\Timeout Exceptions

  • \Azure Caching:Client Host\Timeout Exceptions / sec

  • \Azure Caching:Client Host\Retry Exceptions

  • \Azure Caching:Client Host\Retry Exceptions / sec

  • \Azure Caching:Client Host\Total Connection Requests Failed

  • \Azure Caching:Client Host\Network Exceptions

  • \Azure Caching:Client Host\Network Exceptions / sec

  • \Azure Caching:Client Host\Current Waiting Requests

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Client(*)\Requests

  • \Azure Caching:Client(*)\Requests / sec

  • \Azure Caching:Client(*)\Server Responses Dropped / sec

  • \Azure Caching:Client(*)\Failure Exceptions

  • \Azure Caching:Client(*)\Failure Exceptions / sec

  • \Azure Caching:Client(*)\Average Get Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Put Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Get Latency (Network) / operation Microsecond

  • \Azure Caching:Client(*)\Read Requests

  • \Azure Caching:Client(*)\Write Requests

  • \Azure Caching:Client(*)\Bytes Received / sec

  • \Azure Caching:Client(*)\Bytes Sent / sec

  • \Azure Caching:Client(*)\Current Server Connections

  • \Azure Caching:Client(*)\Local Cache Filled Percentage

  • \Azure Caching:Client(*)\Local Cache Hits Percentage

  • \Azure Caching:Client(*)\Total Local Cache Hits

  • \Azure Caching:Client(*)\Total Local Cache Objects

  • \Azure Caching:Client(*)\Total Notifications Received

  • \Azure Caching:Client(*)\Timeout Exceptions

  • \Azure Caching:Client(*)\Timeout Exceptions / sec

  • \Azure Caching:Client(*)\Retry Exceptions

  • \Azure Caching:Client(*)\Retry Exceptions / sec

  • \Azure Caching:Client(*)\Total Connection Requests Failed

  • \Azure Caching:Client(*)\Network Exceptions

  • \Azure Caching:Client(*)\Network Exceptions / sec

  • \Azure Caching:Client(*)\Current Waiting Requests

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft