我已将Web应用程序与Appfabric集成以用于会话管理(使用Appfabric附带的会话提供程序)。经过一些测试,我意识到随着时间的推移使用(创建几个新会话),即使大多数会话已经过期,缓存的区域计数也会继续增加。事实上,在大约2小时没有活动的时间段之后,这些是我从缓存服务器获得的统计信息。
尺寸:0 ItemCount:0 RegionCount:391 RequestCount:9979 MissCount:2729 我在appfabric论坛上搜索了这个,这是我在其中一篇文章中找到的
“区域存在与内存泄漏无关,因为一个区域对象不占用超过几KB的内存。一旦创建的系统区域不会在正在运行的集群中删除。” < / p>
这句话有多正确?
另据我的理解(也可能不正确),appfabric的会话状态提供程序为每个新会话创建一个新区域。如果它是正确的,那么当我在一段时间内创建了几百万个会话时会发生什么。这不会是一个问题。有工作吗?
我能想到的一个解决方案是在会话提供程序配置中指定一个区域(以及Cachename),但这会将我的所有会话限制为单个缓存服务器(我猜)
答案 0 :(得分:0)
AppFabric Cache最多可创建1024个系统区域。通常,如果您打算将缓存用于会话状态,我会自己指定区域,从而允许一些疯狂的最大区域数。其次,理想情况下,您希望将一系列服务器用于会话状态,并将命名高速缓存作为非HA运行。我的特殊情况是3台服务器,每台RAM都有8GB,并且每个会话都有一个区域。请注意,不需要为每个会话设置一个区域,并且使用系统区域很好,因为缓存将管理存储值的位置(哪个服务器和区域),您只需从缓存中获取以读取会话状态值