Memory leaks 使用.NET服务跟踪OOM错误

Memory leaks 使用.NET服务跟踪OOM错误,memory-leaks,out-of-memory,Memory Leaks,Out Of Memory,我只是在寻找一些反馈或者我应该检查的东西。。。这不是一个确切的答案 我正在跟踪.NET服务中发生的OOM错误。该服务长时间徘徊在1.3 GB左右。我意识到这是一个非常大的内存量,但是服务在这个级别上运行很长一段时间(最多一个月没有错误)。然后它在正常运行时随机崩溃 我一直在跟踪这个服务的私有字节、所有堆中的字节、工作集和CPU使用情况。当问题发生时,工作集在大约30秒内从大约700 MB猛增到1.3 GB,然后服务崩溃。当这种情况发生时,另一个(私有字节、所有堆中的字节和CPU)的读数冻结并保持

我只是在寻找一些反馈或者我应该检查的东西。。。这不是一个确切的答案

我正在跟踪.NET服务中发生的OOM错误。该服务长时间徘徊在1.3 GB左右。我意识到这是一个非常大的内存量,但是服务在这个级别上运行很长一段时间(最多一个月没有错误)。然后它在正常运行时随机崩溃

我一直在跟踪这个服务的私有字节、所有堆中的字节、工作集和CPU使用情况。当问题发生时,工作集在大约30秒内从大约700 MB猛增到1.3 GB,然后服务崩溃。当这种情况发生时,另一个(私有字节、所有堆中的字节和CPU)的读数冻结并保持完全相同,即使通常这三个值每次更新时读取的数字略有不同


这对我来说是一种奇怪的情况。我已经追查了一些内存泄漏之前,但这一个是非常不同的。。。有人有什么建议吗?欢迎任何想法、反馈和反思。谢谢。

故障诊断程序应该创建一个故障转储文件。打开windbg和SOS,您应该能够获得导致异常的步骤的堆栈跟踪。如果没有创建崩溃转储,您可以安装调试诊断工具,并让它为您创建转储。

如果没有看到您的一些代码,我不知道如何回答这个问题。如果你指的是一个你没有代码的服务,你的问题在这里是离题的。我有代码,但它是大量的代码。。。太多了,不能放在这里。我希望这项服务的开展方式能为某人提供一个想法。就像我说的,我不是在找一个人给我一个明确的答案,只是关于可能性的建议或诊断问题的方法。您不需要查看代码,找到一些东西并指出它。这不是我想要的。我的想法是:在它上面运行一个分析器,看看它在哪里使用了所有的内存。