単一の Web サーバー (IIS 8/Windows Server 2012) 上の複数の Web アプリケーションにまたがる単一のキャッシュへのアクセスに関するシナリオに苦労しています。
現在、メモリが 16 GB のサーバーがあり、1 つのサイトのみを実行しています。議論のために、このサイトはそれ自体で 10 GB のメモリを消費するとしましょう (私はよく知っています)。
System.Web.HttpRuntime.Cache
検索が非常に高速な にすべてを保存します。典型的なシナリオでは、このキャッシュから 10,000 個のオブジェクトを取得しますが、これは数ミリ秒で実行できます。
サーバー上で実行されている他のサイトと 99.9% 同一の別の Web アプリケーションをこのサーバーに追加し、理想的には高速な HttpRuntime.Cache を使用してこのサイトのすべてにアクセスしたい場合は、注意が必要です。
私が見ている問題は、私が認識している限り、この HttpRuntime.Cache をアプリケーション間で共有できないことです。
AppFabric、Redis、NCache、すべての分散キャッシュ エージェントを試してみましたが、同じ 10,000 個のオブジェクトを取得できる絶対最速は約 2 秒で、オンデマンド Web サイトには適していません。(余談ですが、これらの 2 秒のうち 1.999 秒は、非常に CPU を集中的に使用するデシリアライズで満たされていると確信しています)
明らかな何かが欠けています...1つのサーバー上の2つのWebアプリが、コストのかかるシリアライゼーション/デシリアライゼーションを必要としないキャッシュにアクセスする方法はありますか? それとも、新しい Web サーバーに分岐する時でしょうか。