我在Windows Server 2003上运行了IIS服务器。该服务器托管多个网站。
有时CPU负载会在很长的时间内达到峰值,这样服务器就会停止响应或响应延迟。
问题是我们不知道多个网站中的哪个网站正在创建高负载 - 我已经尝试在性能监视器中查找可以使用的计数器,但我没有看到任何有关特定CPU负载的信息IIS实例。
这使得很难找到问题的根源。
答案 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
祝你好运。