缓存服务占用内存超大的问题,修改HOST的参数设置可解决。
1、使用命令Export-CacheClusterConfig导出集群配置,修改其中host元素的size属性。
<hosts>
<host replicationPort="22236" arbitrationPort="22235" clusterPort="22234"
hostId="1178671922" size="2047" leadHost="true" account="XXXX/SR-AF-01$"
cacheHostName="AppFabricCachingService" name="SR-AF-01" cachePort="22233" />
</hosts>
2、修改完后停止集群Stop-CacheCluster,再用命令Import-CacheClusterConfig导入配置,再启动集群Start-CacheCluster。
3、正式使用后遇到缓存大对象时报错,原因是超过了单个缓存对象容量上限,解决方法当然是修改客户端容量上限配置(web.config)了,具体见下。
<!--分布式缓存-->
<dataCacheClient>
<hosts>
<host
name="sr-af-01"
cachePort="22233" />
</hosts>
<securityProperties
mode="None"
protectionLevel="None" />
<transportProperties
connectionBufferSize="131072"
maxBufferPoolSize="268435456"
maxBufferSize="268435456"
maxOutputDelay="2"
channelInitializationTimeout="60000"
receiveTimeout="600000" />
</dataCacheClient>
缓存服务由多台服务器构成时,推荐使用Sql Server来管理集群,重新配置AppFabric时可指定使用Sql Server来保存集群配置信息。
可是,还需要将每台Host的配置修改一下,步骤同上,将Host元素的leadHost属性设为"false"就好了,还要确保leadHostManagement也设置为"false"。具体请见MSDN:http://msdn.microsoft.com/zh-cn/library/ee790895.aspx
这样配置之后,缓存服务器可单独重启,不影响使用。
强烈推荐先把MSDN资料阅读一遍:http://msdn.microsoft.com/zh-cn/library/ff384253.aspx