3

我们有一个使用 Windows Server AppFabric 缓存的应用程序。缓存在本地机器上,本地缓存未启用。这是代码中的配置,.config 中没有。

DataCacheFactoryConfiguration configuration= new DataCacheFactoryConfiguration();
configuration.Servers= servers;
configuration.MaxConnectionsToServer= 100; // 100 is maximum
configuration.RequestTimeout= TimeSpan.FromMilliseconds( 1000);

PutAndUnLock 上的对象到期时间为两分钟。

以下是一些典型的性能监视器值:

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 不等,持续一秒左右,所有请求(Get、GetAndLock、Put、PutAndLock)超时。

我在网上看到的唯一补救措施是增加 RequestTimeout。如果我们将时间增加到 2 秒,问题的发生频率似乎会有所降低,但仍然会发生。我们不能更多地增加超时时间,因为我们需要在缓存超时后从头开始创建对象的时间。

4

0 回答 0