我在我们的一台 Web 服务器(win2k3 上的 IIS 6.0)上看到了以下可疑行为。两个 CPU 超线程到 4。
在任务管理器和 perfmon 中,w3wp.exe 的 cpu 使用率似乎是 25%。我的意思是,cpu 利用率永远不会低于该数字,即使服务器不处理任何请求,它也会保持在该值。此外查看任务管理器中的性能选项卡,单个 cpu 的利用率波动很大,但整体 cpu 利用率保持在 25% 不变。即来自 for cpus 的广泛变化的值恰好总是加起来为 25%。
对我来说,这些计数器似乎有问题。算作 1 个 cpu(共 4 个)已完全使用,但实际上可能没有。
知道那里可能发生什么吗?以前有人见过类似的东西吗?(同一集群中的另一台机器表现出类似的行为,只是它的 w3wp.exe 被计为消耗 50% 的 cpu,同样几乎没有流量)。
谢谢
我会进行长时间的 perfmon 计数器读数,然后通过 PAL 工具运行它。看看它带来了什么。
听起来您可能启用了处理器关联。这会将工作线程绑定到特定的 CPU。如果你有一个四核服务器,那么 25% 是有意义的。我的建议是创建一个新的应用程序池,将站点移至其中,然后查看模式是否发生变化。
至于首先导致 CPU 的原因,是否有可能被调用的页面或站点?尝试回收应用程序池,看看它是否立即发生。如果可以的话,将网站分成更多的应用程序池,找出是哪个网站造成的,这样你就可以缩小违规页面的范围。
查看工作进程的数量(通常为 1),如果有意义,则增加到 2-3。然后,如果您查看 IIS 管理器并转到您认为正在造成严重破坏的应用程序池,选择应用程序池默认值,并将 CPU 设置为 70% 之类的百分比,而不是 0(无限制),然后将限制操作设置为节流(副... 无操作)这将有助于重新控制您失控的 CPU 需求...