【问题标题】:Memory usage climbing, but only on the App Service Plan内存使用量攀升,但仅限于应用服务计划
【发布时间】:2018-09-26 19:09:38
【问题描述】:

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

...

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

如果这有什么不同的话,我们在 P1v2 层上运行的 Linux 应用服务计划使用适用于 Node 8 的标准 Microsoft 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 图表针对单个区域。

【问题讨论】:

  • 您认为这是我们的吗?我们在某些 appPlans 中看到了同样的问题,请参阅此问题:github.com/aspnet/EntityFrameworkCore/issues/15173
  • 不,但我们设法证明这不是我们的应用程序泄漏内存。从那时起,微软发布了多个更新,内存问题得到了显着改善,并且在内存开始不足时也会释放内存。为了进一步安全起见,我们将在周末重新启动 Cron 作业。

标签: azure azure-app-service-plans


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    相关资源
    最近更新 更多