记一次.NET某培训学校系统 内存碎片分析
💡
原文中文,约7400字,阅读约需18分钟。
📝
内容提要
本文讲述了朋友遇到的Web系统内存无法释放的问题,通过WinDbg工具分析发现是托管内存的问题,进一步观察发现内存被Gen2占用且存在内存碎片化现象,查看托管堆和对象统计信息发现大量的Free对象导致内存无法回收,问题由System.Threading.OverlappedData持有的对象引起,最后总结了ReloadOnChange=true的问题,包括文件句柄暴涨、内存暴涨、内存碎片化和线程池暴涨,建议谨慎使用。
🎯
关键要点
- 朋友的Web系统内存无法释放的问题
- 使用WinDbg工具分析发现是托管内存的问题
- 内存被Gen2占用且存在内存碎片化现象
- 大量Free对象导致内存无法回收
- 问题由System.Threading.OverlappedData持有的对象引起
- 总结ReloadOnChange=true的问题,包括文件句柄暴涨、内存暴涨、内存碎片化和线程池暴涨
- 建议谨慎使用ReloadOnChange=true
➡️