November 27, 2007 – 1:33 pm
首先是内容介绍,摘自CSDN读书频道:
本书是一本介绍Windows系统上的用户态程序排错方法和技巧的书。本书分为4个章节,先介绍最重要的、通用的思考方法,以便制定排错步骤;再介绍对排错有帮助的知识点和工具;并介绍了.NET Framework(CLR)的相关知识和调试技巧;最后一章针对常见的几大类问题进行了总结。
本书案例丰富,对现实中的实际问题进行了研究,并和读者一起分析解决办法;本书的写作思路为先给出问题描述,然后提供线索,再进行分析,让读者在阅读中也进行思考,以提高实际解决问题的能力。
其次是我自己看了这部书演示用的pdf的一些感想:
用真实的案例来讲解troubleshooting和debug的步骤和过程,生动而又有深度
作者思路极为清晰,表达精准到位,能从一点点地蛛丝马迹抓起,直到起出问题根源,这种经验与技术俱佳的案例分析能让读者看完即涨大量exp,有如亲历
从debug入手来抓程序设计症结,这应该还算是国内首次有实体书出版,对于windbg的使用讲解也算是开先河了
同时适用于程序员以及系统管理员二种读者,程序员可以从中掌握一些操作系统级别的资源分配和使用原理,并通过对此的理解来使得自己代码中对于资源的使用有更加深刻的认识。而SA们也可以由此学到从系统方面剖析用户态程序的方法,从而使自己对资源的掌控能深入到应用软件层面,可以更好地维护系统的健康状况以及给应用设计提出更好地建议
跳开Windows和.net范畴,书中的很多案例的思路其实可以用于更广泛的领域,对于其他操作系统以及其他框架来说,都可以有触类旁通的感悟。
我看过其演示pdf之后,就决定着本书一定要买来一读了,而对此类知识感性趣的人,也绝对应该看一下此书。
演示章节内容链接如下:
http://www.cnblogs.com/lixiong/archive/2006/08/16/475520.html
CSDN读书频道链接:
http://book.csdn.net/bookfiles/555/
作者自己的blog文:
http://eparg.spaces.live.com/blog/cns!59BFC22C0E7E1A76!2729.entry
今天下载了IISDiag大体玩了一下,发现这东西真不错,诊断IIS故障有多了一个利器。
刚好有客户反映他的ASP站点老是出问题,刚好把新武器演练一下,结果居然揪出了导致IIS6种ASP请求挂起的首恶(第一恶是也,非首要恶)—-Scripting.Dictionary组件。
debug纪录显示有5个页面请求被block,原因是这些页面都请求了Scripting.Dictionary这个组件,同时这个组件被另外一个页面调用并执行,所以一旦这个页面的请求出现问题,会导致所有后续页面被block,根本原因为Scripting.Dictionary这个组件为STA模式设计,所以页面在处理Scripting.Dictionary请求时会将请求串行话,而第一个请求处理如果出现意外情况,则后续请求皆会被block。
继续检查更详细的信息,发现调用此组件是在Session处理中,具体代码为:
Set Session(strName) = Server.CreateObject(”Scripting.Dictionary”)
然后又在网上发现了这样一句话:
如果在session级保存一个dictionary对象会降低系统的性能,而在application级保存一个dictionary对象会导致web服务器崩溃
—–wrox: asp程序员参考手册里第137页
至此原因找到,一方面为客户程序没有考虑MTA环境下ASP编程的注意事项(其实很多从ASP2.0 under IIS5 过来的程序都没考虑过此问题,只是恰好出问题的几率比较小而已),另一方面是客户程序在不恰当的位置调用了不恰当的组件,导致很容易使程序被block。
相信以后会慢慢找出更多存在类似遗留问题的组件,那时对于IIS6 ASP hang故障将会有更快更准确地定位能力。
三点结论:
1,要佩服MS在新技术应用上的能力与决心,COM的STA->MTA的转换能在短时间内完成,并将绝大多数底层架构升级为MTA环境,同时考虑了兼容问题,这是需要佩服的。反观某些开源软件,底层数据结构说改就改,几天一编,同版本号的内核竟然都敢做成不兼容,虽然号称Free,但谁敢用这些产品作服务?你以为每家都有IBM的实力?
2,即使存在问题,不是掩盖而是积极解决,请看关于此问题的KB,同时又提供了如此快捷方便的工具来定位问题,试问谁能做的更好?
3,敬告国内某ASP程序提供商,你们的产品存在类似问题。尽快改进你们的产品吧。现在还可以以兼容性作为理由,但不要等所有问题日后暴露出来再想办法。