GEN 0 垃圾爬上 Azure 这正常吗?

Posted

技术标签:

【中文标题】GEN 0 垃圾爬上 Azure 这正常吗?【英文标题】:GEN 0 Garbage climbing on Azure is this normal? 【发布时间】:2018-05-30 11:03:00 【问题描述】:

运行一周后,我们在 Azure 上的 asp.net webapi Web 应用程序变得非常缓慢。重新启动 Web 应用程序可解决此问题。

我能看到的唯一可疑之处是 Gen 0 垃圾收集不断攀升。这是表示内存泄漏还是仅显示正在删除的对象数量?

下图中的鼻子俯冲是我重新启动网络应用时的结果。

【问题讨论】:

【参考方案1】:

这不一定表示内存泄漏。它也不是 Azure 特有的。第 0 代收集将比第 1 代和第 2 代更频繁地发生 - 即 the way the .NET GC works 以满足进程的内存要求。

现在,您的应用程序中的某处仍可能存在导致性能下降的内存泄漏。要解决此问题,我建议您使用 Application Insights 或第 3 方 APM 工具检测您的应用程序,以了解降级发生的位置。

【讨论】:

【参考方案2】:

如果您有 DaaS(诊断即服务),您能否查看您的 Web 应用程序的 webjob 列表。 我们在我们的 Web 应用程序上运行了这项工作,在杀死它之后,我们的 DotNet Core Web 应用程序上不再有 GC Gen...

【讨论】:

以上是关于GEN 0 垃圾爬上 Azure 这正常吗?的主要内容,如果未能解决你的问题,请参考以下文章

从对象中传递对象会产生垃圾吗?

过早收集资源垃圾

python是垃圾?

Object Pooling(对象池)实现

PHP中有垃圾收集吗?

你真的理解Java垃圾回收吗?万字长文带你彻底搞懂垃圾回收机制