gpt4 book ai didi

c# - 尝试诊断 Azure ASP.NET Core WebAPI 应用程序中的内存泄漏

转载 作者:行者123 更新时间:2023-12-04 17:37:48 27 4
gpt4 key购买 nike

我已经追踪这个内存泄漏大约一个月了,但无法解决。该应用程序使用 .NETCore 2.2 在 Azure 中运行,并且是一个简单的 WebAPI。在我们的开发环境中,我决定编写一个应用程序,将数千个请求发送到目标应用程序上的端点。截至凌晨 2:30,我在 12 小时内总共发送了 1,000,000 个请求。这是内存统计信息的样子:

工作集: working set

私有(private)字节: private bytes

程序完成大约 6 小时后的统计数据: process stats

因此,私有(private)字节保留在原来的位置,看起来都是分页内存,一旦程序停止,工作集就会立即丢失。我决定转储内存,同时私有(private)字节位于原来的位置,并且统计数据看起来完全正常。转储的大小超过 1.4 GB!但它所显示的内容并不令人印象深刻:

enter image description here

它显示对象仅使用 10 MB 内存。所有这些内存都分配在哪里?

有趣的是,如果我最终放开它,它会挂起一段时间然后崩溃(“CGI 应用程序遇到错误......”)。句柄计数将突然超过 10,000,然后挂起(2 分钟请求时间,取消请求),然后崩溃并永远关闭,直到有人重新启动它。

我不知道下一步应该做什么。我完全不知道是什么导致了这种内存的积累。 PerfView、dotMemory、Visual Studio 显示托管内存没有任何问题。我在开始和结束时运行差异,没有什么奇怪的。此时有点绝望。

最佳答案

从 .NET Core 2.2 迁移到 .NET Core 3.1 后,这种内存泄漏问题已被完全消除。肯定是框架的问题。

关于c# - 尝试诊断 Azure ASP.NET Core WebAPI 应用程序中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55954023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com