使用IronPython检测ASP.NET程序状况(下)
以提供更好的控制。事实上,目前文章里的解 决方案有一些缺陷,并且肯定无法完全满足真实需求。不过我们完全可以对目前的做法进行改进,例如:
保证代码执行的线程安全,包括事件添加时和traceRequest函数执行时。 提供“采样特性”,而不是对每个请求都使用traceRequest函数进行处理。 将Logger放入公用的空间,并在程序代码中植入检查功能,这样便可以得知当前系统中每个功能的执 行时间(这就是Profiler的功能,不是吗?)。 不过,除了应对前一篇文章中所提到的负载均衡环境下的问题之外,这个解决方案还有另一个较为重 要的情况需要特殊对待。如果使用目前的做法,每次采样都是通过一个请求进行的,所以它并不会在在请 求队列阻塞时立即执行,但是采样的常见场景便是在队列阻塞时间检查状况,这显然形成了一个矛盾。不 过要解决这个问题并非难事,只要采样不要通过IIS即可。例如您使用普通Socket,或“偷偷懒”使用WCF 的TcpBinding进行采样便可——只要和被检查的应用程序在同一进程(即w3wp.exe,还有人用IIS5 吗? )中,便可以使用任何方式进行通信。 改变、探索的过程,其实都是在追求一种编程的美感。老赵喜欢“不拘一格”,只要是有价值的都会 去设法尝试一番,探索的过程会遇到大量问题,解决问题后又能带来成就感以及新的感受。因为美感和成 就感,所以产生乐趣,因为乐趣才有源源不断地动力。因为有这样的切身体会,所以在这里也建议大家, 不妨放开思路,海纳百川。我们可以获得和想到的东西,远比预料中来的丰富。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |