记一次 .NET 某电力系统 内存暴涨分析

💡 原文中文,约7000字,阅读约需17分钟。
📝

内容提要

本文介绍了程序内存暴涨事故,通过Windbg分析发现是托管堆的暴涨,最终发现是大批量数据在托管堆上折腾导致的。文章提出了两种解决办法:修改GC模式,改成Workstation;大批量数据改成小步快跑。

🎯

关键要点

  • 程序内存暴涨事故的背景和分析方法
  • 使用Windbg工具分析内存使用情况
  • 发现托管堆的暴涨是内存暴涨的主要原因
  • 通过dumpheap命令找到内存中占用最大的对象
  • 分析Free对象的原因,发现是由于大对象分配导致的内存无法回收
  • 提出两种解决办法:修改GC模式为Workstation,或将大批量数据改为小步快跑
  • 总结内存暴涨的表象和本质原因
➡️

继续阅读