我有一个大型网站似乎正在吸收正在分配的所有内存.此站点旁边的服务器上没有其他任何内容.在一周内,它会吃掉2场演出并需要重新启动.目前这是使用IIS 7的服务器2008 32位.我们重新安装使用64位并添加更多内存.能够追踪泄漏发生的位置会很好.
那么跟踪内存泄漏的最佳做法是什么?
这是迄今为止我构建的最复杂的软件,现在它似乎在某些时候耗尽了内存.我还没有进行过广泛的测试,因为我有点迷失了我应该如何解决手头的问题.
HandleCount: 277
NonpagedSystemMemorySize: 48136
PagedMemorySize: 1898590208
PagedSystemMemorySize: 189036
PeakPagedMemorySize: 1938321408
VirtualMemorySize: 2016473088
PeakVirtualMemory: 2053062656
WorkingSet: 177774592
PeakWorkingSet: 883834880
PrivateMemorySize: 1898590208
PriviligedProcessorTime: 00:00:15.8593750
UserProcessorTime: 00:00:01.6562500
TotalProcessorTime: 00:00:17.5156250
GDI Objects: 30
User Objects: 27
Run Code Online (Sandbox Code Playgroud)
我有一个自动化的全局异常捕获器,在异常时收集上述信息(使用System.Diagnostics.Process) - 以及异常信息,日志和屏幕截图 - 并通过电子邮件发送给我所有内容.
这已经很好地工作了,因为我已经能够根据电子邮件信息插入错误.到目前为止,这是.该软件有数万行,并使用托管和非托管资源.
我可以逐行开始编写代码,但有些我觉得这可能不是尝试推断内存构建问题的最佳方法.
由于我以前从未做过这种分析,你会如何建议解决这类问题?