我在Azure上使用HttpRuntime.Cache
进行内存缓存。
问题是内存已满 - 然后它达到Azure的90%百分比限制,Azure认为该角色不健康并重新启动它 - 使整个网站崩溃。
现在我找到了 EffectivePercentagePhysicalMemoryLimit 属性,它似乎在Azure上设置为98%,因此高于90%'不健康'限制。
HttpRuntime.Cache
更改此限制?该物业是只读的。要明确:我想要内存缓存 - 我不需要通过Redis进行共享缓存,因为数据不需要保持一致。
答案 0 :(得分:1)
您可以使用web.config中cache
Element的EffectivePercentagePhysicalMemoryLimit
属性来更改percentagePhysicalMemoryUsedLimit
<configuration>
<system.web>
<caching>
<cache percentagePhysicalMemoryUsedLimit="60" />
</caching>
</system.web>
可以使用应用程序配置文件中用于缓存(ASP.NET设置架构)元素的
EffectivePercentagePhysicalMemoryLimit
元素的percentagePhysicalMemoryUsedLimit
属性来设置cache
属性。如果未设置percentagePhysicalMemoryUsedLimit
属性,则缓存算法确定缓存的最大大小,并计算EffectivePercentagePhysicalMemoryLimit
属性。
您可以获取有关文档的更多信息:Cache.EffectivePercentagePhysicalLimit
另一个选项是禁用Azure自动重启机制。它称为Proactive Auto Heal,您可以通过将WEBSITE_PROACTIVE_AUTOHEAL_ENABLED
设置为False
来禁用它:
WEBSITE_PROACTIVE_AUTOHEAL_ENABLED
”并将其设置为“ False
”。