asp.net Web API应用程序的内存转储分析显示与缓存相关的对象消耗内存

时间:2019-05-30 11:10:11

标签: azure asp.net-web-api memory-leaks

我们有一个使用非常频繁的asp.net Web API应用程序作为azure应用程序服务运行。该应用程序显示如下所示的内存使用趋势,即,内存使用量一直在增加,直到重新启动(使用Azure自动修复)后才下降。 enter image description here

为了进一步分析,我们进行了3次内存转储,即

  1. 重新启动应用程序后第一次转储
  2. 进行负载测试并进行第二次转储
  3. 再次运行相同的负载测试并进行了第三次转储

下面是转储之间的比较外观

第一转储和第二转储之间。

enter image description here

第二和第三转储之间

enter image description here

在所有这些比较中,似乎最大的内存使用量增加发生在某些与缓存相关的对象中,例如ExpiresBucket,RuntimeCache,MemoryCache,CacheExpires等。

我不是专家,也不知道这些课程的确切用途以及这种增加的来源。 有人可以阐明这些物体的含义吗,这是正常现象吗? 为了清楚起见,我们已经看到趋势,看到内存只会增加而不会减少。

0 个答案:

没有答案