记一次 .NET 某电力系统 内存暴涨分析
原文中文,约7000字,阅读约需17分钟。
📝
内容提要
本文介绍了程序内存暴涨事故,通过Windbg分析发现是托管堆的暴涨,最终发现是大批量数据在托管堆上折腾导致的。文章提出了两种解决办法:修改GC模式,改成Workstation;大批量数据改成小步快跑。
🎯
关键要点
-
程序内存暴涨事故的背景和分析方法
-
使用Windbg工具分析内存使用情况
-
发现托管堆的暴涨是内存暴涨的主要原因
-
通过dumpheap命令找到内存中占用最大的对象
-
分析Free对象的原因,发现是由于大对象分配导致的内存无法回收
-
提出两种解决办法:修改GC模式为Workstation,或将大批量数据改为小步快跑
-
总结内存暴涨的表象和本质原因
🏷️