码迷,mamicode.com
首页 > 数据库 > 详细

Windbg 分析内存上涨

时间:2014-06-18 10:05:12      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   com   使用   strong   

症状:

上次一站点发布后,发现服务器内存持续上涨。正常本地缓存占了4-5个G ,使用内存直接涨到20G后应用程序池重启。

检查代码后发现,没有什么内存泄漏的地方。最后还是找来DUMP文件排查原因。

!dumpheap –stat       查看当前所有托管类型的统计信息

 bubuko.com,布布扣

bubuko.com,布布扣

System.Threading.ReaderWriterCount 占了七个G。这是个读写锁, 有一亿多个对象。

!dumpheap –mt  000007fef32fa770        查看函数表地址中的各个对象信息

 然后查看其中一个对象

 bubuko.com,布布扣

!gcroot  0xooooooo1f27e03b8 查找对象的根,需要很久的时间

 bubuko.com,布布扣

 bubuko.com,布布扣

这个是ReaderWriterLockSlim 的内部对象。

继续查找ReaderWriterLockSlim的根

!gcroot  00000001d09379d8

 bubuko.com,布布扣

这是用引用框架DLL 内部的方法。

应该是什么原因造成创建了大量ReaderWriterLockSlim对象又没有释放。

找到原代码后发现,是由于注册了一个HttpModule 对每个不重复的访问目录进行记录,这个过程会对每个目录分配一个读写锁。

正好,上次另一个客端的更新,每次访问都加上随机后缀目录。造成大量的读写锁。

禁掉DLL 的这个功能后,问题解决。

Windbg 分析内存上涨,布布扣,bubuko.com

Windbg 分析内存上涨

标签:style   blog   http   com   使用   strong   

原文地址:http://www.cnblogs.com/zrhai/p/3793152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!