2009-06-09 9 views
2

をすべての私のキャッシュを失っています。 ..ハイ/ノーマル/ロープライオリティを使用して物を追加する。 2週間、1週間、4時間のキャッシュにとどまるように伝える私はそれがローミングサービスを作るところ私は物事をキャッシュしています..私は現在、ASP.NET Webフォームでサイトを開発しています(アイテムが私のキャッシュからdisapearingされている)....</p> <p>を

すべてのページにキャッシュされたアイテムの現在の数を表示する)。

時々、私がサイトをすばやく移動すると、キャッシュ内のアイテムの数が2000アイテムまで増えることがあります...しかし、5分間待ってからページをリフレッシュすると、キャッシュは20アイテムになります。そのページにキャッシュされています)

何が起こっているのかわかりますか?これが欠落している理由は何ですか? Win7の、4GBのRAM、64ビット、VS10、.net4を実行している

イム、私はラムの4本のライブを持って

なぜ私のキャッシュは完全に空べきでしょうか?

私は、キャッシュされたアイテムの約10%が約4kであり、残りは約100文字の文字列であると言います。

編集:私はスライディング期限

EDITを使用しています:私はそれ.. VERY BIG、それらが高優先度に設定したした1つのまたは2つの項目がありました、それを整理し、他のいくつかの小さな変更が私を修正問題。

答えて

9

アプリプールがxx分ごとにリサイクルするように設定されている場合、キャッシュに残すようにどのくらい時間をとっても問題ありません。ほとんどのサーバでは、1440分(24時間)ごとにデフォルトでアプリケーションプールがリサイクルされます。データを永続化しない限り、キャッシュはアプリプールのリサイクルで生き残ることができません。

私はそれほど長く(ほとんど実用的ではない)持続しません。私はまた、キャッシュがデータを必要とするので再構築するためにパージされている場合は、一度にすべてではないというアプリを設定しました。

あなたはアプリをリセットまたはVisual Studioのすべてがあるリロード等も

アプリケーションプールを許可するように設定されているよりも多くのRAM、あまりにも多くのCPUを使用してすることができ、この場合、開発者のマシンのたびに実行されている

また消去されました。

あなたのアプリケーションプールを見て、あなたはおそらくリセットの犯人を表示します。

0

絶対有効期限またはスライド有効期限はありますか?

+0

スライドを使用しています... –

6

システムに4GBのRAMがあるという理由だけで、ASP.NETプロセスがそのスペースをすべて使用できるわけではなく、ASP.NETキャッシュがそのスペースすべてを効果的に使用できるわけではありません。私が理解し、獣を観察したとき、それはそれがあまりにもいっぱいになっていると感じる場合は、それ自体をクリアするようになり、あなたはデータのキャッシングのように聞こえる。

これを追跡する方法は、キャッシュ有効期限コールバック関数を使用してログを記録することです。ダンプされているものと、いつ、いつ、そして、なぜそれが起こっているのかを知ることができるはずです。

関連する問題

 関連する問題