通过 IIS 6 从 UNC 共享提供内容的性能缓解措施

通过 IIS 6 从 UNC 共享提供内容的性能缓解措施

我有一个运行 Windows 2003 和 1GB 以太网的四处理器 vmware 实例。我正在比较从本地硬盘驱动器提供完全相同的 .NET 2.0 内容与从 UNC 驱动器提供该内容。

如果我使用 WCAT 来降低负载,则从 UNC 提供服务时,每秒事务数会减少约 40%。处理器时间几乎不会从 45% 变化,NIC 也保持在 40% 左右。无论哪种方式,我都没有看到任何明显的内存加载。但是,从 UNC 提供服务时,上下文切换/事务会增加一倍以上。路径长度也会增加一倍以上,但我相信这只是上下文切换效果的一种表现。

总而言之,瓶颈似乎是在等待 UNC 共享内容时进行处理器切换。我的经历是正常的吗?我可以尝试一些缓解措施吗?

我稍微调整了一下 HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\MaxCmdshttp://technet.microsoft.com/en-us/library/dd296694(WS.10).aspx,但没有明显的效果。我有点怀疑我的问题是缺少连接,而只是在等待数据时从一个线程切换到另一个线程的行为。

答案1

我们发现 VMWare VM 会严重降低网络性能,不是吞吐量,而是延迟,大约 40%。我们的具体案例是 Active Directory 流量。但是,使用物理网络可能不是您可以做的事情。

答案2

大约一年后,我仍然记得这一点。解决方案是将 VM 实例上的处理器从 4 个减少到 2 个。这违反直觉,但向 VM 实例添加处理器会增加 VM 主机上的争用。主机仅在有一定数量的可用切片或类似数量时才会分配处理器时间,并且当 4 个虚拟处理器都在主机处理器上寻找时间时,它们最终会相互阻塞而不是处理。减少到单个处理器会导致严重的瓶颈,但 2 个处理器是我们硬件上的最佳选择。

相关内容