【问题标题】:.NetCore App Memory Leak - high Overhead|Unused memory.NetCore 应用程序内存泄漏 - 高开销|未使用的内存
【发布时间】:2021-12-11 03:36:27
【问题描述】:

使用 .Net Core 应用程序从源读取数据、对其进行转换、存储在内存队列中、对转换后的数据进行批处理并将其写入接收器。随着进程运行的时间更长,我们观察到 VM 的内存开始减少,直到完全结束,并且我开始收到“内存不足”异常。我们在程序中监控了内存队列,没有数据堆积在那里。我从“任务管理器”创建了程序的内存转储。

大部分内存似乎在开销|未使用。这是什么意思?我该如何解决这个问题?

【问题讨论】:

  • .NET Core 的哪个版本?你能用一个工具来显示代数和 LOH 的大小,包括碎片吗?我将从在 PerfView 中录制“仅 gc 收集”会话开始。
  • net5.0 是版本。 .etl 文件可以吗?
  • 看起来很有趣,将挖掘它并返回一些细节!

标签: .net-core memory garbage-collection out-of-memory clr


【解决方案1】:

当 gc 模式为服务器时,我也发生了类似的事情。在这种模式下,GC 会以更大的块收集内存,因此可能需要一段时间才能 GC 开始收集内存。在我的情况下,这个过程达到了大约 20GB。当我更改为工作站模式时,进程达到了大约 1GB 的内存

https://docs.microsoft.com/en-us/dotnet/core/run-time-config/garbage-collector#workstation-vs-server

【讨论】:

    猜你喜欢
    • 2017-09-08
    • 1970-01-01
    • 2016-03-28
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多