首页 > 解决方案 > 内存使用量攀升,但仅限于应用服务计划

问题描述

我认为我们有内存泄漏,但我不知道是怎么回事。它似乎只发生在 App Service Plan上,而不是在其上运行的 App Services 上。这是 Azure 中的问题吗?有其他人经历过吗?详情如下。

...

每个应用服务计划(Prod 和 RC)有 2 个插槽,分别运行 3 个和 1 个实例。每个实例显示 3-5% 的内存使用率,由于流量要低得多,通常在 RC 上约为 3%,在生产中为 4-5%。

如果这有什么不同的话,我们将使用适用于 Node 8 的标准 Microsoft Linux 映像在 P1v2 层上运行 Linux 应用服务计划。我们有 3 个应用服务计划在使用中,并且都显示出同样的奇怪问题。在走 MS 支持路线之前,我想我会看看是否有其他人遇到过问题或可以指出要查看的地方。

似乎主机上的 docker 没有清除旧的运行实例,因此它们继续消耗内存,但我可能是错的。

编辑:我发现了这个,它解释了差异,但不是这个问题的原因。https://blogs.msdn.microsoft.com/benjaminperkins/2016/11/01/memory-metrics-for-an-azure-web-app-and-app-service-plan/

...

应用服务计划清楚地显示了泄漏。开始时的下降是在我因为内存超过 80% 而强行重新启动之后。 应用服务计划内存使用情况

该应用程序服务看起来非常好。稳定在 4-5% 应用服务内存使用情况

NewRelic 同意应用程序服务很好。忽略额外的主机,NewRelic 在一个图表上显示所有区域,Azure 图表针对单个区域。 NewRelic 看到的应用服务内存使用情况

标签: azureazure-app-service-plans

解决方案


我发现 Kudu 容器会泄漏内存。如果您启动一个 bash shell 并运行top -b -n 1 -o %MEM,您应该能够看到它的内存使用情况。在某些情况下,我看到mono进程泄漏内存并且超时增长相当大。这已被 Microsoft 确认为错误,现在可能已修复。


推荐阅读