私は、ソフトウェアの問題を解決するためにハードウェアを投入することは最善の策ではないと確信しています。そのため、サーバーの1つ(現在2ギガで実行されている)でいくつかのメモリの問題に気付いたとき、System.Web.HttpRuntime.Cacheの使用まで追跡しました。いくつかのサイトでは、これは理にかなっていますが、System.Web.HttpRuntime.Cacheを使用する50のサイトをスローすると、壁が崩れ始めました。
外部キャッシングサーバーのオプションがない場合、グローバルデータ保持に静的クラスまたはシングルトンのいずれかを使用するようにコードを変更することを検討しています(他のオプションは追加のdbリクエストを作成することです)。
データはまだ「メモリ内」にあり、サーバーにより多くのメモリを投入する必要があるかもしれないので、これに変更があるかどうかは完全にはわかりません。
シングルトンクラスまたは静的クラスでSystem.Web.HttpRuntime.Cacheを使用すると、オーバーヘッドが大幅に増加しますか?この問題を解決するために推奨されるアプローチは何ですか?
- アップデート -
現在のファイルキャッシュのメモリ使用量を監視しているときに、同じアプリケーションプール上のいくつかのサイトにアクセスしたときに、この数が急増していることに気付きました。この数はわずか1,000,000(私が想定しているバイト)に跳ね上がりました。アクティブなフラッシュエントリの数が増加してから減少するにつれて、この数は最終的に減少し始めることに気付きました 。
複数のアプリプールでこの数が多いと問題が発生するように見えるので、どうすればこれをすばやくフラッシュできますか?
キャッシュをリッピングするだけでなく(提案されているように、おそらく最善のアイデアではありません)、キャッシュされたオブジェクトの有効期限を短く設定するだけで、より良い結果が得られる可能性がありますか?