Windbg程序调试系列2-内存泄露问题
上篇文章给大家解释了Windbg的基本命令和说明,这一篇给大家介绍内存泄露场景的问题分析。 文章大纲:
1. 先说问题背景:生产环境IIS站点,运行一段时间后,w3wp进程内存会涨到2G,同时内存不释放。 2. 问题确认 打开性能计数器,我们重点看一段时间内,IIS站点w3wp进程相关的性能计数器的变化: 性能计数器中:有三个非常重要: .NET CLR Memory/Gen 2 heap size Process/Private Bytes 托管堆的内存大小增加的趋势和大对象堆增加的趋势重叠,可以初步推断,内存的增加和大对象有关系! 3. 梳理问题分析思路 连续、间隔抓两个或者三个Dump,每次抓Dump间隔半个小时,或者一个小时,主要看内存的增量。 对比的看每个Dump中:
4. 动手分析
? ? ??
? ? ??
? ? ?? ??
? ? ?? ? ? ? 大对象字符串分析,Session会话数据!同时Session会话中包含了权限数据!
? ? ??
5. 总结 总结一下,内存泄露问题分析,有固定的方法和指令,过程需要大家深入理解,同时熟悉代码非常重要,因为需要找出gcroot,分析出内存泄露的原因,再进行修改解决。 大的套路:
详细的分析步骤:
欢迎大家补充。 ? 周国庆 2018/10/30 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 最大限度地减少实现可打印报告的痛苦
- asp.net-mvc – 为什么编码逗号URL?
- 如何在Asp.Net MVC 2中通过JQuery调用重载的C#函数
- asp.net – Visual Studio 2015中的“Visual Basic 10.0不支
- Exceptionless - .Net Core开源日志框架
- asp.net-mvc – StackExchange.Redis.IDatabase存在于两个d
- asp.net-mvc – 在Windows Creators Update之后,ASP.NET缓存
- 将ASP.NET ConnectionString设置为特定的域用户
- Asp.net中UpdatePanel内FileUpload的正确使用方法
- asp.net – 将persistentCookiesOnPassiveRedirects设置为t
- asp.net-core – 如何使.NET Core类库从.NET 4.6
- asp.net – Docker日志中的.net输出
- ASP.net服务器事件处理客户端
- 选择完成后和提交上传之前的asp.net FileUpload事
- .net-core – 如何在Asp.net核心中使用Akka.Net
- asp.net-mvc – 在Html.ActionLink(MVC 4)中使用
- 从ASP.NET SQL memership DB中删除已失效/缺少应
- asp.net-mvc – 在MVC2中使用FormsAuthenticatio
- asp.net – 无法返回JsonResult
- asp.net-core – 调试器中的ASP.NET核心命令行参