高窗口消息实例

在我的networking服务器上,我发现在峰值stream量期间,从我的networking服务器发送到我的数据库服务器的速率很高(106秒钟以上,约13秒钟或30万个数据包)。

固件更新:
我已经将固件和驱动程序更新到了戴尔为BCM5709C卡提供的最新版本。

TCP卸载已启用:
在Broadcom高级控制组件接口(BAC)中,我看到一个活动的“总卸载TCP连接”TCP事件被启用。 我也没有看到服务器上的CPU挂钩。

窗口缩放已启用:
窗口缩放已启用,但用处不大。 我看到20个包含Window Scaling的数据包,其中包含30万个数据包。

统计:
平均往返时间为〜2MS,最大值为〜3 MS。 Web服务器上的CPU使用率根本没有达到峰值。

问题:

  1. 我不认为缓冲区应该填充这些在Web服务器上。
  2. CPU旁边的其他指标我应该看看为什么缓冲区填满?
  3. 鉴于一切都是最新的,我应该调整我的Windows 2008 Server R2 Web服务器上的TCP参数? 如果是这种情况,我应该做些什么调整?

这个问题已经有些老旧了。 我不确定它是否仍然没有解决,但会尝试一些故障排除build议。

首先,检查零窗口通告发生的位置非常重要。 在协议交换中的某些点,如果Web服务器不希望任何数据在给定的时刻作为响应返回,并且可能已经为给定的套接字设置了接收缓冲区为0或者通过一段时间没有从那里获取任何东西来填充接收缓冲区。 debugging这将需要使用协议的知识(更好的是实现)。

您不需要为任何常见的LAN设置调整TCP参数的任何值,TCP主要是自我调整,除了极端情况,例如具有可变延迟或不可预测的数据包丢失的networking。

我从来没有跑到这,但我有一个预感问题是在应用层。 我会先看看与web进程相关的perfmon计数器。 “互联网信息服务(IIS)7.0资源工具包”和“互联网信息服务(IIS)7.0pipe理员的袖珍顾问”都有关于性能监控和调优的信息,遗憾的是没有一个是免费的。

http://www.microsoft.com/learning/en/us/book.aspx?ID=9550&locale=en-us

http://www.microsoft.com/learning/en/us/book.aspx?ID=10442&locale=en-us

编辑:

一个可能的跟踪方法(无可厚非)将暂时停止服务器上的Web服务,并将大文件或大量小文件下载到Web服务器,并查看是否具有相同的零窗口条件。 如果你这样做,那么你可以排除任何与Web服务有关的资源问题。 如果你不这样做,那么你可以把所有的精力集中在分析Web服务的资源使用情况来找出原因。