Debug Diagnostic Tool(简称 DebugDiag)用于诊断 IIS、COM+ 等应用假死、性能差、内存泄露及碎片和崩溃等问题。它能自动抓取 dump 并自带分析功能,使用方便,支持各种操作系统。分析系统问题时,有时情况复杂,可能并非代码引起,这时要利用好 Windows 自带的性能检测,对分析很有帮助。
DebugDiag 要装在 IIS Server 上,个人工作电脑通常也要装,因为 dump 完一般要赶快重开机让 production server 恢复运作,没时间在上面跑分析,而且分析过程中要上网下载 symbol file,有时候 production server 是不对外的。装完后在程序集里可以找到并运行。
当 IIS 挂掉时,先不要急着重开:
1、 赶快保留证据,从 Tools->Create IIS Hang Dump 将 IIS 相关的 process 都 dump 下来。
2、 用最下面的 Add Data Files 将 dump 的结果读进来。
3、 在上面的 ListBox 选择 Crash/Hang Analyzers。
4、 点选下面的 Start Analysis。
分析结果会直接告诉你哪一个 thread 阻塞了后面的程序,点一下超链接就能看到是哪支 ASP,连第几行都告诉你了。.NET 程序也可以,比如写了一个无穷回圈的 webservice,dump 出来的 report 也能分析。
1、 按照操作系统的类型(32 位或 64 位),下载 DebugDiag 工具并安装。
2、 在 Debug Diagnostic Tool 1.2 应用程序组中运行 DebugDiag 1.2。
3、 配置 Crash 规则。
4、 选择需要监控的程序,如果是 IIS 应用,可以选择特定的应用程序池。
5、 这是需要监控的 IIS 应用程序池。
6、 注意 CLR 4.0 和 CLR 1.0~3.5 有不同的异常码。在 .Net Exception Type 中填入特定的异常,比如 System.Data.SqlClient.SQLException。ActionType 指定当异常发生时,产生 FullDump、MiniDump 或是 Log。ActionLimit 指定 FullDump 或 MiniDump 的数量,如果填入 0 就不会限制数量。同时如果只是需要产生 Log 的话,就不受 ActionLimit 限制。
7、 指定规则的名字和 Dump 产生的路径。
8、 在“Rules”标签下的规则已经处于激活状态。
9、 当 .Net 异常发生之后,在第 7 步配置的 Userdump Location 下会有 dump 文件(后缀名为 dmp)产生。
DebugDiag 工具同时能帮助分析各种 Dump 文件。在本文 ASP.Net 异常 dump 文件产生出之后,可以参考以下步骤分析:
1、 打开 DebugDiag 工具,在 Tools->Options and Settings->Folders and Search Paths->Symbol Search Path For Analysis 里填入:SRV*f:\localsymbols* 其中 f:\localsymbols 可以用硬盘中的目录替代, 是微软公用 symbol 的 URL,不用改变。
2、 在 Advanced Analysis 页中,选择 Crash/Hang Analyzers,并点击 Add Files… 按钮选择生成出的 dump 文件(后缀名为 .dmp)。DebugDiag 会因此分析 dump 文件并产生报告。
(您的评论需要经过审核才能显示)
0条评论