我试图pipe理各种IIS网站,我想知道有多less内存,networking和CPU资源消耗每个IIS应用程序。
另外我想知道是否有任何应用程序处理数据库连接脏,我的意思是,打开很多连接等
但是可能吗? 您的IISpipe理员使用哪些工具? ¿我怎样才能更多地了解这个话题?
我的目标是Windows 2003上的IIS 6,偶尔在XP开发机器上。
提前致谢
注意:这个回复是以.NET为中心的,因为这是我在Microsoft堆栈中最常用的。
CPU /内存统计数据是每个工作进程。 所以如果你想获得每个站点的信息,你的第一步就是将每个站点分成它自己的工作进程(应用程序池)。
完成后,只需打开任务pipe理器即可获取每个进程的统计信息。 如果你在Windows 2003+上,他们将被称为w3wp.exe。 打开视图 – >列,并打勾PID显示每个进程的PID。 然后打开命令提示符并运行“iisapp”,这将映射PID到应用程序池名称。
Perfmon(开始 – >运行 – > perfmon)提供了很多很好的信息,但访问并不一定很容易。
有一百万个不同的监控包,可以远程读取perfmon信息,并在达到阈值时触发警报。 从微软的系统中心运营经理到What's Up Gold,都可以免费获得像Nagios这样的工具。
与perfmon数据记住的事情是它的计数器是在操作系统和框架级别。 所以你可以收集一些有关你的工作进程和.NET状态的好的信息。
您的具体问题的答案可以在SQL服务器对象的.NET数据提供程序中find。 密切关注您的应用程序的连接池数量。
如果您遇到性能问题,并且想要从正在运行的进程中捕获数据,请查看IIS DebugDiag。 这将允许您在满足特定条件时创build一个内存dmp文件,甚至还有一些jar头分析器可以自动排除一些常见问题。 请注意,开箱即用的DebugDiag大部分都具有本地(读取:非托pipe)代码的信息。 如果您使用.NET并运行内存问题,请检查Tess的DebugDiag脚本,它将在DMG文件上执行一些以.NET为中心的内存分析。 debugging诊断.NET内存脚本
问题是,如果您正在寻找特定方法运行时间的实际指标,那么这种信息并不是真正可用的,而不需要支付一些非常好的,但非常昂贵的工具。 如果你有一个很好的工具预算(阅读:超过10K),我强烈推荐AviCode。
IISTracer是一个很好的工具。
来自网站:
“IISTracer是一个适用于Microsoft IIS(所有版本)的实时互联网网站监控工具,该软件可让您显示IIS服务器上正在发生的事情,您可以查看或logging每个请求的状态,input/输出字节,http (.asp,.aspx,asp.net,.cfm,.php,.cgi,…),应用程序(.dll,.exe,…)的状态。和一个大的下载(.mp3,.zip,…)。它还可以让你监视什么脚本或哪个客户端(IP)挂起你的服务器。
PAL – Logs(www.codeplex.com/PAL)的性能分析,加上一些优秀的logparser脚本和Microsoft的最佳实践分析器产品,都是很好的性能改进/问题查找工具。
sysinternals工具 – 特别是进程pipe理器和进程监视器是非常有用的。
关于数据库连接(如果是SQL Server ),不要忘记数据库服务器可以告诉你一些关于连接的信息。 如果你打开活动监视器,你可以看到哪些进程正在访问哪个主机的数据库,包括你的networking服务器。 您可以运行Profiler工具并筛选特定的Web服务器,并实时观察它正在执行的操作,查询所花费的时间等。