测量同一服务器上特定IIS网站的CPU负载

时间:2009-01-14 10:13:43

标签: performance iis

我在Windows Server 2003上运行了IIS服务器。该服务器托管多个网站。

有时CPU负载会在很长的时间内达到峰值,这样服务器就会停止响应或响应延迟。

问题是我们不知道多个网站中的哪个网站正在创建高负载 - 我已经尝试在性能监视器中查找可以使用的计数器,但我没有看到任何有关特定CPU负载的信息IIS实例。

这使得很难找到问题的根源。

3 个答案:

答案 0 :(得分:3)

对于每个应用程序池,都有w3wp.exe进程。因此,尝试将每个Web应用程序设置在不同的应用程序池中。顺便说一句,这总是一个很好的做法。

然后运行following script

然后,您可以通过任务管理器或性能监视器查看哪个Web应用程序正在创建高CPU负载。

答案 1 :(得分:1)

您是否尝试检查垃圾收集2峰值的性能计数器(#第2代收藏)?

CPU负载非常高的时期通常可归因于此。

编辑:这个SO答案可能有用:What are the best ASP.NET performance counters to monitor?

此博客文章介绍了收集和解释GC效果计数器:http://blogs.msdn.com/maoni/archive/2004/06/03/148029.aspx

答案 2 :(得分:0)

使用WMI尝试:

获取过程使用(W2K3 / 2K8):
“SELECT IDProcess,PercentPrivilegedTime,PercentProcessorTime,PercentUserTime FROM Win32_PerfFormattedData_PerfProc_Process,其中Name ='w3wp'”

要识别您的网站,请使用以下内容:
“SELECT ProcessId,CommandLine,WorkingSetSize,ThreadCount,PrivatePageCount,PageFileUsage,PageFaults,HandleCount,CreationDate,Caption FROM Win32_Process,其中Caption ='w3wp.exe'”

将此工具用于测试sql:http://code.msdn.microsoft.com/NitoWMI

祝你好运。