我有一个运行在机器A上的WCF服务的windows服务,它从运行Appfabric的机器B中检索对象,其中存储了实际的对象。机器B有两个区域,“文章”和"TestArticles“。活动应用程序使用文章,我的测试程序使用TestArticles。
它已经运行了六个月,没有任何问题,但是现在,活动应用程序突然开始为一些对象返回null,直到服务重新启动,所有对象都被再次缓存。然后它运行几个小时,并且再次返回null。不使用逐出和TTL,因此对象应该永远留在那里。我能想到的唯一一件事是Appfabric服务器的内存几乎已满。只有43MB的12 is是免费的!
因此,我想知道的是,当Appfabric服务器的内存已满时,我尝试在TestArticles区域中缓存更多对象时会发生什么情况。它们成功了,但是Appfabric会从文章中抛出对象吗?
发布于 2015-07-08 22:34:30
Eviction Troubleshooting page有这样的说法:
Windows Server AppFabric缓存群集使用逐出来控制缓存服务在缓存主机上使用的内存量。驱逐发生在两种情况下:
服务器上的可用物理内存严重不足。
缓存服务的内存使用率超过了缓存主机的高水位线。
为保持每个缓存主机上可用于缓存的内存容量,AppFabric支持最近最少使用(
)逐出。
因此,当您的服务器内存不足时,您应该会看到LRU逐出。
没有办法设置每个区域的逐出策略,所以您最好使用不同的服务器进行实时和测试:或者,如果这不是一个选项,则创建两个缓存-一个用于实时缓存,一个用于测试-并将测试缓存设置为逐出。
https://stackoverflow.com/questions/31269844
复制相似问题