我有一台运行 IIS 的 64 位 Server 2008 (R1) 机器。用户抱怨页面加载速度极慢。经过一番研究,我发现:
在隔离盒子以便只有一个用户能够连接后,每个 Web 请求都会导致 CPU 的使用率在大约两秒钟内跳升至 30%,即使是在最简单的页面上也是如此。查看代码,没有明显的原因导致这种使用。
NewRelic 显示“网络”丢失了 > 10 秒,尽管所有访问都是通过 100 兆 LAN 进行的,并且 perfmon 显示网络输出队列长度为零。
我们在代码中找不到导致如此多 CPU 活动的任何原因,也没有找到 NewRelic 认为存在网络问题的任何答案。
寻找从这里去哪里的建议。
答案1
您可能还会发现失败请求追踪在这里很有用。这个名字实际上有点太具体了,因为该功能可以跟踪任何类型的请求。
MSDN 的 Tess Ferrandez 写了一篇精彩的文章,关于使用失败请求跟踪进行性能故障排除,在这种情况下绝对值得一读
答案2
Windows Server 2008 默认启用了一项新的网络功能 Scalable Networking Pak。我认为此功能造成的问题比它解决的问题还多。以下 2 篇文章涉及此问题:
TCP 烟囱
Microsoft 支持文章:KB951037