1

IIS 7 で実行される ASP.NET MVC アプリケーションがあります。これは Web ガーデンとしてセットアップされており、ワーカー プロセスの数はプロセッサの数と一致しています。私は時々重い負荷を経験する傾向があり、この設定が最もうまく機能しました.

System.Web.Cache を使用してキャッシングを実装しました。キャッシュ内のアイテムの一部を無効にする必要がある場合がありますが、すべてのプロセスでキャッシュをクリアすることはできません。

.NET 4 の System.Runtime.Caching 機能を使用すると、これが簡単になりますか? 同様の質問がありますが、.NET 4.Flush HttpRuntime.Cache objects across all worker processes on IIS webserver に関するより良いアドバイスがあることを願ってい ます

4

1 に答える 1

1

System.Web.Cache と System.Runtime.Caching はほぼ同じ機能を提供します。これは単純なメモリ キャッシュであり、キャッシュ内のアイテムは有効期限や依存関係などを持つことができます...

サイトを複数の物理マシンで実行したい場合、または Web ガーデンとして実行している場合、インプロセス キャッシュにデータをキャッシュしても意味がありません。プロセスごとにデータが再度キャッシュされるからです。これにより、メモリ消費量がかなり急速に増加すると思います...

これらのシナリオでは、すべてのプロセスが既にキャッシュされたデータを活用できるため、分散キャッシュ システムが最適です...

私は2つの非常に人気のあるメモリキャッシュシステムで分散して作業しました.1つはリンクにも記載されているmemcachedです。

もう 1 つはアプリ ファブリック キャッシュです。使用方法の良い例を次に示します。

Memchached は「単純な」キャッシュであり、そもそもセキュリティやその他すべてのことを気にしません。しかし、実装は非常に簡単で、使いやすい優れた.Net クライアントがあります。

キャッシュのデータ転送を暗号化し、これらすべてを高度に保護したい場合は、アプリ ファブリックを使用することをお勧めします...

于 2013-10-04T21:26:47.807 に答える