Windows Server AppFabric キャッシュを使用するアプリケーションがあります。キャッシュはローカル マシン上にあり、ローカル キャッシュは有効になっていません。これはコードの構成で、.config にはありません。
DataCacheFactoryConfiguration configuration= new DataCacheFactoryConfiguration();
configuration.Servers= servers;
configuration.MaxConnectionsToServer= 100; // 100 is maximum
configuration.RequestTimeout= TimeSpan.FromMilliseconds( 1000);
PutAndUnLock のオブジェクトの有効期限は 2 分です。
一般的なパフォーマンス モニターの値を次に示します。
Total Data Size Bytes 700MB
Total GetAndLock Requests /sec Average 4
Total Eviction Runs: 0
Total Eviced Objects: 0
Total Object COunt: either 0 or 1.8447e+019 (suspicious, eh?) I think the active object count should be about 500.
これは仮想マシンで実行されています。ハードウェアの制約はまったくないと思います。
問題:数分ごとに、1 から 20 まで変化し、1 秒程度の間、すべての要求 (Get、GetAndLock、Put、PutAndLock) がタイムアウトします。
私がオンラインで見た唯一の解決策は、RequestTimeout を増やすことです。2 秒に増やすと、問題の発生頻度はやや低くなりますが、それでも発生します。キャッシュがタイムアウトした後、オブジェクトを最初から作成する時間が必要なため、タイムアウトをこれ以上増やすことはできません。