削除

Microsoft AppFabric 1.1 for Windows Server キャッシュ クラスターでは、削除機能を使用して、キャッシュ サービスがキャッシュ ホスト上で使用するメモリ量を制御します。削除は次の 2 つのシナリオで発生します。

  • サーバー上で利用可能な物理メモリがきわめて少ない場合。

  • キャッシュ サービスのメモリ使用量が、キャッシュ ホストの高基準値を超過した場合。

削除の実行は必ずしも問題の発生を意味するわけではありません。異常に大量のアクティビティがキャッシュ クラスター上に存在する場合、削除により、最も長く使われていない項目を削除して、メモリの問題によるスロットルの発生を防止することができます。スロットルの詳細については、「スロットル」を参照してください。ただし、定期的に削除が発生するのは、メモリが不足していることや、キャッシュ ホストまたは 1 つ以上のキャッシュの構成に問題があることを示している可能性もあります。

削除の詳細については、「有効期限と削除」を参照してください。

削除に関する問題の診断

アプリケーション側からすると、削除が実行されることで、アプリケーションはキャッシュにあったはずの項目を見つけることができなくなります。つまり、アプリケーションはそれらの項目を再設定する必要があり、このことがアプリケーションのパフォーマンスに悪影響を及ぼすおそれがあります。

削除の実行頻度を評価するには、パフォーマンス モニターを使用して 4 つのカウンターのログを記録します。

カウンター 説明

AppFabric キャッシュ: ホスト | 解放実行の合計数

AppFabric キャッシュ サービス開始以降の削除実行の合計数です。

AppFabric キャッシュ: ホスト | 合計データ サイズ バイト数

キャッシュされたデータのバイト単位の合計サイズです。

AppFabric キャッシュ: ホスト | 解放されたオブジェクトの合計数

AppFabric キャッシュ サービス開始以降に削除されたオブジェクトの数です。

AppFabric キャッシュ: ホスト | 解放されたメモリ合計

AppFabric キャッシュ サービス開始以降に削除されたバイト単位のメモリの量です。

削除カウンターはキャッシュ サービス開始以降の累積であるため、この値の長期的な変化に注意する必要があります。

また、削除の実行に関係するイベントが 2 つあります。これらのイベントは、AppFabric の操作ログに記録されます。

イベント ID 説明

118

サービスで使用できるメモリが少なくなっています。

115

サービスは調整済みになりました。

118 イベントは、キャッシュ サービスのメモリ使用量が高基準値を超過したことを示します。これにより、メモリ使用量を低基準値まで戻すために削除が実行されます。115 イベントは、キャッシュ サービスで使用できるメモリが少なくなり、調整済みになったことを示します。これにより、調整された状態を解除するために削除が実行されます。スロットルの詳細については、「スロットル」を参照してください。

ヒント

設定の詳細については、「正常性の監視ツール (AppFabric 1.1 キャッシュ)」を参照してください。

削除に関する問題の解決

サーバーのメモリ不足のために削除が実行される場合、サーバーは同時に調整済みであると考えられます。その方法の詳細については、「スロットル」を参照してください。

サーバーが調整されていない状態で削除が実行される場合、Windows PowerShell の Get-CacheHostConfig コマンドでキャッシュ ホストの構成設定を確認してください。たとえば、次のキャッシュ ホスト設定を見てみましょう。

Get-CacheHostConfig -HostName CacheServer1 -CachePort 22233

HostName        : CacheServer1
ClusterPort     : 22234
CachePort       : 22233
ArbitrationPort : 22235
ReplicationPort : 22236
Size            : 100 MB
ServiceName     : AppFabricCachingService
HighWatermark   : 90%
LowWatermark    : 80%
IsLeadHost      : False

この例では、CacheServer1 のキャッシュ サービス用に確保されたメモリ量はわずか 100 MB です。高基準値は 90% です。つまり、このキャッシュ ホストで使用されたメモリが 100 MB の 90% に達すると、キャッシュ サービスはメモリ不足になり、削除が実行されます。この例で問題なのは、キャッシュ サービス用のメモリが異常に少なく設定されていることです。解決方法は、CacheServer1 キャッシュ ホストのキャッシュ メモリ量を増やすことです。次の例では、キャッシュ クラスターを停止して、メモリ量を 1000 MB に変更しています。

Stop-CacheCluster
Set-CacheHostConfig -CacheSize 1000 -HostName CSD1516217 -CachePort 22233

警告

キャッシュ サービスの利用可能メモリ量を増やす場合は、増加に対応できる物理メモリが存在する必要があります。

ヒント

CacheSizeHighWatermark の組み合わせにより、削除を実行するタイミングが決定されます。キャッシュ メモリの使用量が確実にそれ以下に保たれるわけではありません。たとえば、次のセクションの削除されないキャッシュに関する説明を参照してください。

削除されないキャッシュに関する考慮事項

既定では、新しいキャッシュでは削除が有効になっていますが、削除が有効ではないキャッシュを作成できます。キャッシュの削除が有効になっていない場合、削除が実行されても、そのキャッシュからは項目が削除されません。これにより次の影響があります。

  • キャッシュが削除されないせいでメモリ不足になった場合、削除が実行されても、問題は解消されません。この場合、削除が繰り返し実行されることになります。

  • キャッシュが削除されないせいでメモリ不足になった場合、削除が実行されると、削除が有効になっている他のキャッシュから項目が削除されます。

どのキャッシュで削除が有効になっているかを確認するには、Windows PowerShell の Get-CacheConfig コマンドを使用します。簡単なスクリプトを使用して、各キャッシュ、その削除設定、およびキャッシュ サイズを表示することができます。

$cache = Get-Cache
foreach($cache in $caches) { Write-Host $cache.CacheName (Get-CacheConfig $cache.CacheName).EvictionType (Get-CacheStatistics $cache.CacheName).Size }

次の例は、このスクリプトの出力サンプルを示しています。

Cache1 None 20481960
Cache2 LRU 20706360
default LRU 4099920

この出力サンプルから、Cache1 で削除が無効になっていて (LRU ではなく None)、現在のサイズは 20481960 バイトであることがわかります。

関連項目

概念

サーバーの問題のトラブルシューティング

  2012-03-05