IIS 配置问题:“System.OutOfMemoryException”引发了应用程序上的附件管理

Problem with IIS configuration: "System.OutOfMemoryException' was thrown" with attachments management on application

提问人:Juano 提问时间:11/16/2023 最后编辑:Juano 更新时间:11/16/2023 访问量:27

问:

提前感谢您的帮助,以恢复我们面临的问题:我们在服务器中有一个应用程序,其中包含其他应用程序,在以IIS为平台的Windows服务器中管理它们。

在 DEV 中,QAR 和 PRD 具有相同的配置,但在上次部署后,仅在 PRD 中,我们看到一个反复出现的问题,当用户管理附件时:上传、删除或下载它们会产生以下错误:“抛出类型为'System.OutOfMemoryException'的异常。

这得到了暂时修复的回收,在强制回收应用程序的应用程序池后,附件操作再次起作用......一段时间。也配置为一种临时措施,增加了回收的频率,但它并没有多大帮助,而且可能不是问题的根源。 我不确定内存泄漏是否仅与应用程序工作的时间有关,还是由于用户对附件的管理而泄漏。唯一可以肯定的是,在几个小时(有时是几分钟)之后,我们达到了应用程序返回的相同状态,无法使用“System.OutOfMemoryException”。

  • 与 DEV 和 QAR 的比较,它们不会重现此错误,永远不会完全相同。
  • 唯一的区别是,在 PRD 中有一个 NUMA 配置,而 DEV 和 QAR 中没有。我测试了这个不同功能的所有组合,没有变化和相同的问题。
  • 我们增加了服务器的内存RAM,以防万一,但似乎这会影响虚拟内存以及应用程序处理它的方式,但仅限于 PRD,这在以前的版本中甚至在 PRD 中都没有发生过,没有与我们在代码中意识到的这种管理相关的变化。

Sample of the current configuration in PRD: NOMA node is not present in DEV and QAR

Virtual Memory Limit is set at "0", which suppose to be without limitations

我们尝试了什么:

  • 按照以下说明更改了服务器上的注册表,以查看这是否有助于内存管理: https://learn.microsoft.com/en-us/answers/questions/457194/server-2019-resource-exhaustion-problems,没有改进。
  • 在 NUMA 节点配置的所有可能选项中进行了测试,以软或硬方式进行管理,并通过节点的操作系统管理进行管理。没有变化。
  • 增加了服务器上的RAM,以防万一,没有变化。
  • 增加回收的频率,似乎回收是唯一可以恢复附件功能的东西,以缓解问题,没有改进,只是暂时恢复。
  • 我们正在审查应用程序的虚拟内存使用情况,但这以前从未发生过,并且在 DEV 和 QAR 上不可见或可重现,所以仍然认为是服务器配置......

考虑到这一点,我仍然认为可能是IIS中的服务器配置,但不知道哪些参数可能突然涉及,或者可以尝试其他什么,对此的任何帮助或提示将不胜感激。

非常感谢,

.NET IIS Windows-Server-2012 虚拟内存

评论

0赞 Lex Li 11/16/2023
如果进程是 32 位(如屏幕截图中的设置所示),则无论添加多少物理内存,都会出现此类异常。了解最大内存使用限制只是 Windows/.NET 编程 ABC 之一。
0赞 Juano 11/16/2023
感谢您的评论,问题是我们以前从未见过这种行为,代码几乎相同。我的意思是有一些例外,是的,但不是像现在这样的阻塞问题,而且如此频繁。在我们检查日志之前,我们根本没有注意到这一点,但它不会影响它现在正在做......并且仅在 PRD 服务器中...
0赞 YurongDai 11/17/2023
您可以考虑使用内存分析工具来分析应用程序在正常操作期间的内存使用模式。通常,当遇到与内存使用相关的问题时,可以使用 PerfMon 跟踪各种性能指标、收集数据,并使用 DebugDiag 进行分析。但分析转储文件是一个复杂的过程,请考虑联系 Microsoft 支持部门寻求帮助。他们可能遇到过类似的问题,并且可以为与 IIS 或 Windows Server 相关的特定问题提供指导或修补程序。因此,我建议您通过以下方式打开支持票:support.microsoft.com

答: 暂无答案