【发布时间】:2009-01-14 10:13:43
【问题描述】:
我有一个在 Windows Server 2003 上运行的 IIS 服务器。该服务器托管多个网站。
有时CPU负载会在很长一段时间内达到峰值,导致服务器停止响应或响应延迟。
问题是我们不知道多个网站中的哪一个造成了高负载 - 我尝试在性能监视器中查看可以使用的计数器,但我没有看到任何关于特定 CPU 负载的信息IIS 实例。
这使得很难找到问题的根源。
【问题讨论】:
标签: performance iis
我有一个在 Windows Server 2003 上运行的 IIS 服务器。该服务器托管多个网站。
有时CPU负载会在很长一段时间内达到峰值,导致服务器停止响应或响应延迟。
问题是我们不知道多个网站中的哪一个造成了高负载 - 我尝试在性能监视器中查看可以使用的计数器,但我没有看到任何关于特定 CPU 负载的信息IIS 实例。
这使得很难找到问题的根源。
【问题讨论】:
标签: performance iis
每个应用程序池都有 w3wp.exe 进程。所以尝试将每个 Web 应用程序设置在不同的应用程序池中。顺便说一句,这始终是一个好习惯。
然后运行following script。
然后您可以通过任务管理器或性能监视器查看哪个 Web 应用程序造成了高 CPU 负载。
【讨论】:
您是否尝试检查垃圾收集 2 峰值(# Gen 2 Collections)的性能计数器?
CPU 负载非常高的时期通常可以归因于此。
编辑:这个 SO 答案可能有用:What are the best ASP.NET performance counters to monitor?
这篇博文描述了收集和解释 GC 性能计数器:http://blogs.msdn.com/maoni/archive/2004/06/03/148029.aspx
【讨论】:
使用 WMI 试试:
获取进程使用情况(W2K3/2K8):
"SELECT IDProcess, PercentPrivilegedTime, PercentProcessorTime, PercentUserTime FROM Win32_PerfFormattedData_PerfProc_Process where Name='w3wp'"
要识别您的网站,请使用:
"SELECT ProcessId, CommandLine, WorkingSetSize, ThreadCount, PrivatePageCount, PageFileUsage, PageFaults, HandleCount, CreationDate, Caption FROM Win32_Process where Caption='w3wp.exe'"
使用此工具测试 sql:http://code.msdn.microsoft.com/NitoWMI
祝你好运。
【讨论】: