• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
皇图霸业谈笑间
更高、更快、更强
博客园    首页    新随笔    联系   管理    订阅  订阅
debug diagnostic 使用方法:一

写微软的程式写久了,最常见到但也最让人无力的问题就是Server挂掉可能是Memory不足,也可能是CPU 100%被占据,而你完全不知问题在哪里,只能乖乖重开机重开机变成了Windows Server的例行公事
或许有人知道Memory Dump这种东西,只有一群神一般的人才看得懂对一般人而言想从Memory Dump看出什么端倪简直就是不可能的任务

        但是,情况现在改观了微软一向最厉害的就是,把艰难的东西用很容易上手的外装包装起来也许功能因此减少了,但是上手却容易了最近就玩到这样一个东西-- Debug Diagnostics Tool
让debug IIS hang简直是容易到让人无法相信
       这东西要装在你的IIS Server上,不过个人工作的电脑通常也要装,因为dump完大概下一件事就是赶快重开机让production server赶快回复运作,哪里还有那种美国时间让你在上面跑分析而且分析过程中要上网download symbol file,有时候production server是不对外的
装完以后就像这样,放在程式集里面

执行起来的画面像这样,当你的IIS挂掉时,先不要急着重开
1.赶快先把犯罪的证据保留下来,从Tools->Create IIS Hang Dump将IIS相关的process都dump下来
2.然后再用最下面的Add Data Files将dump的结果读进来
3.在上面的ListBox选择Crach/Hang Analyzers
4.点选下面的Start Analysis

 



就这样,够简单了那分析结果如何解读? Watch this

 



直接告诉你哪一个thread block住后面的程式,那么thread 19是什么?点一下超连结

 



直接告诉你这是哪支ASP,连第几行都告诉你了
那.NET程式可不可以?
我写了一个无穷回圈的webservice

 



dump出来的report像这样

 

 


这里我还没有研究透彻,因为只看到一堆循环不已的call
但是把同样的dump用另一个工具WinDbg去读,可以得到这样的结果,连method都列出来给你


但是这个工具超级难用,要对memory dump以及很多系统面的东西有些了解才能运用自如(废话,我就是看不懂memory dump咩)
Debug Diagnostics Tool适合刚开始初学使用,我其实还是只用了很小一部分的功能,他还可以自订rule,当crach/hang发生时自动帮你dump,更可以直接attach到某个process去debug
WinDbg不是给普通人用的,看看我列出来的连结就知道,给写driver或玩系统核心的人用的....

 

 

个人使用过程:

1: 到Process选项卡,找到XX.SJ.91.com网站的应用程序池对应的进程

2:  右键create full userdump

3: 选择 advanced analysis 选项卡

4: 双击 memory pressure analyzers dotnetmemory 。。。(保存要 drump 的文件位置)

5: start analysis 出分析报告

 

 

 

 

 
posted on 2013-09-06 11:10  布颜书  阅读(1681)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3