AppFabric キャッシュは、"スケールアップ" 用ではなく、"スケールアウト" 用に設計されています。
現在、メモリは非常に安価であり、ネットワーク カードは非常に高速です。AppFabric キャッシュは、高価なハードウェアを必要とするデータベース サーバーとは対照的に、通常 Web サーバーに使用される低コストのマシンでうまく機能します。AppFabric は、膨大な数の大きなデータ項目がない限り、IO バウンドであり、CPU バウンドではありません。
書き込みの割合が高い大規模なキャッシュを除いて、キャッシュ サイズの影響はわずかです。マネージド ヒープのサイズが大きい場合、特に高い書き込みワークロードは .NET ガベージ コレクションに大きな負荷をかけます。
したがって、複数の中規模サーバーにまたがる方がよいでしょう。待ち時間が短縮され、高可用性を実現できます。
あなたの質問を読んで、オブジェクトの寿命について混乱していると思います。AppFabric は、次の 2 つの状況でのみオブジェクトを削除します。
有効期限
アイテムをキャッシュに追加するとき、オプションのオブジェクト タイムアウト値を特定のキャッシュ オブジェクトに設定できます。これにより、オブジェクトがキャッシュに存在する期間が決まります。名前付きキャッシュではオフにすることができます。
立ち退き
インメモリ キャッシュとして、AppFabric はキャッシュをディスクに保持しません。これは、メモリが制限されており、キャッシュ サイズが特定の制限を超えて拡大できないことを意味します。これは、サーバーで使用可能な合計メモリまたは構成された最大キャッシュ サイズである可能性があります。キャッシュ サーバー上のキャッシュ サービスのメモリ消費量が下限しきい値 (70%) を超えると、AppFabric は既に有効期限が切れているオブジェクトの削除を開始します。
ここで重要なのは、オブジェクトが AppFabric に永遠に留まると想定できないことです。
Grid Dynamics は、Windows Server AppFabric キャッシュのパフォーマンスとスケーラビリティの分析を完了しました。分析用のデータは、さまざまな使用パターン、ワークロード、およびキャッシュの構成で実施された多数のテストから収集されました。このホワイト ペーパーでは、調査結果を紹介し、アプリケーションのキャパシティ プランニングに使用できるいくつかの一般的なユース ケースについて説明します。ダウンロードはこちらから、ソースコードはこちらから。
バージョン 1.1 以降、Appfabric はRead-Through と Write-Behind をサポートするようになりました。これも役立つかもしれません。