局域网的Windows 7networking性能调整

我想在Windows环境中调整Windows 7 TCP堆栈的速度。

背景信息的位:我已经有一个Citrix XenServer与Windows 2008R2,Windows 7和Debian Lenny搭配Citrix内核,Windows机器上安装了iperf服务器进程,运行在不同的主机上,还有Debian Lenny。 服务器是空闲的,testing重复了几次,以确认结果。

虽然使用iperf 2008R2进行testing可以达到600-700Mbps左右的速度,但无法调整,但我无法find任何指南或参数设置,使Windows 7实现超过150Mbps的任何事情,而不会改变TCP窗口大小,使用-w参数iperf

我尝试使用netsh autotuining disabledexperimentalnormalhighlyrestricted – 没有改变。 改变congestionprovider者不会做任何事情,就像rsschimney

将所有可用的设置设置为与Windows 2008R2主机上相同的值不起作用。

总结:

  • Windows 2008R2默认设置:600-700Mbps
  • Debian,默认设置:600Mbps
  • Windows 7默认设置:120Mbps
  • Windows 7默认, iperf -w 65536 :400-500Mbps

虽然缺less的400Mbps的性能,我责怪蹩脚的Realtek网卡在XenServer主机(我可以做〜980Mbps从我的笔记本电脑到iperf服务器),这并不能解释为什么Windows 7无法实现良好的性能没有手动调整窗口大小应用程序级别。

那么,如何调整Windows 7呢?

尝试启用RSS和TCP卸载引擎 :

 netsg int tcp set global rss=enabled netsh int tcp set global chimney=enabled 

它可能是Windows 2008R2和Windows 7中不同的networking驱动程序。另外,xenserver是否总是为Windows 2008R2和Windows 7提供相同的虚拟网卡? 因为如果不同,那么将加载不同的驱动程序。

可能会有一些性能差异。

编辑:我只记得Windows 7默认情况下有非常小的发送/接收缓冲区。 在我开发的一些应用程序中,我发现在Windows 7下,它像8kB一样可悲。 在Ubuntu的Linux下大约120kB。 你可能会读到的地方,极限是64kB。 对于更高版本的Windows,这实际上是不正确的。 我发现它可以设置为高达1MB甚至更高。 虽然这么大的时候性能提升很less会被注意到。

此链接提供了一些适用于系统范围的registry中的一些tcp调整参数。 请注意,这些选项中的很多可以被应用程序本身覆盖。

http://www.psc.edu/networking/projects/tcptune/ http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html

尝试增加窗口大小和发送/接收缓冲区。 希望链接中的这些registry设置仍然适用于Windows 7。

TCP自动调整(你已经排除了),已经解决的MTU和MMCS(多媒体类调度)通常是最大的区别。 由于MMCS尚未得到解决,因此请将其禁用。

如果您处于或接近LAN速度,请确保您的tcp窗口自动缩放function被禁用。

说明可在这里: http : //smallvoid.com/article/winnt-services-mmcss.html

您不应将Windows内的Realtek驱动程序视为Citrix XenServer上的虚拟机。 如果这样做,这意味着您没有安装XenTools。 您看到的Realtek NIC是由Dom 0(域0)内的QEMU服务提供的仿真NIC。 安装Windows操作系统之后,在执行其他任何操作(尤其是应用程序安装)之前,需要安装XenTools。 此外,在安装XenTools之后,速度将被硬编码(如“VM用户指南”中所述),因为虚拟设备的速度没有限制。