【发布时间】:2014-07-23 13:32:49
【问题描述】:
我们注意到,在我们的 Web 角色中,Azure“CacheService”Windows 进程的内存使用量呈线性增长。这可能是什么原因造成的?
内存泄漏对吗?好吧,不,因为我们甚至没有使用它。 Azure 角色内缓存仅在被删除的先前功能的监督下保留。我们现在已将其关闭,并且无需对我们的应用程序进行任何更改就可以做到这一点,这应该证明我们实际上并没有使用它,因此内存泄漏的情况是不可能的。
正如预期的那样,现在角色内缓存已关闭,Windows 进程甚至无法运行,我们不再遇到问题。但是,我们仍然想知道发生了什么,以防我们需要再次使用它。以下是更多细节:
- 从短期和长期来看,增长几乎完全是线性的。
- 增长率约为 200mb/天
- 部署后,它开始使用大约 600mb 的内存。
- 即使高速缓存大小设置为最大值 30%,内存使用量也会攀升至大约 4.2GB,超过总 RAM 的 50%。在这一点上,它引起了问题。
- 网站使用不是线性的。有时没有用户,有时同时有数百个用户。
也许启用角色内缓存允许 Web 应用程序将其用于某种内置缓存。例如,MVC 包被缓存在 HttpRuntime.Cache 中,那么可能会发生类似的事情吗?我不知道有任何这样的机制,即使有为什么内存使用量会以这种线性方式增长并继续增长?
我们可以重新打开它并编写一个网页/处理程序来列出 Azure 缓存中的所有项目,看看这是否能解决问题。
【问题讨论】:
标签: asp.net caching azure azure-caching