我们注意到,在我们的Web角色中,Azure“CacheService”Windows进程的内存使用量呈线性增长 . 可能是什么导致了这个?
内存泄漏对吗?不,因为我们甚至没有使用它 . Azure角色缓存仅保留在以前删除的功能的监督之上 . 我们现在已经关闭它,并且无需对我们的应用程序进行任何更改就可以做到这一点,这应该证明我们实际上并没有使用它,因此内存泄漏情况是不可能的 .
正如预期的那样,Windows进程甚至没有运行,因为角色缓存已经关闭,我们不再有问题 . 但是,我们仍然想知道在我们需要再次使用它的情况下发生了什么 . 以下是一些更多细节:
-
从短期和长期来看,增长几乎是线性的 .
-
增长率约为200mb /天
-
部署后,它的内存使用量约为600mb .
-
内存使用率将攀升至约4.2GB,超过总RAM的50%,即使缓存大小设置为最大30% . 此时它引发了问题 .
-
网站使用情况不是线性的 . 有时候没有用户,有些人同时有数百个用户 .
也许启用了角色内缓存允许Web应用程序将其用于某种内置缓存 . 例如,MVC包被缓存在HttpRuntime.Cache中,所以可能会发生类似的事情吗?我不知道任何这样的机制,即使有什么内存使用会以如此线性的方式增长并且只是继续增长?
我们可以重新打开它并编写一个网页/处理程序来列出Azure缓存中的所有项目,看看是否能够解决问题 .
1 回答
我有类似的问题,发现这篇文章:
http://blogs.msdn.com/b/cie/archive/2014/01/10/in-role-cache-demystified.aspx
其解释如下:
您还可以将RDP打开到其中一个实例中,并检查性能计数器,假设您已正确启用诊断监视 . 看这里:https://msdn.microsoft.com/en-us/library/azure/hh914135.aspx#AzureSDK24