我已经在运行Xen 3.4.3-5的宿主节点上安装了运行Windows Server 2008的虚拟机,并安装了以下内核:2.6.18-308.1.1.el5xen#1 SMP Wed Mar 7 05:38:01 EST 2012 i686 i686 i386 GNU / Linux
虚拟机上的networking速度非常慢 – 使用在线速度testing,我只能达到8-9mbps。 这条线是100mbps可突发性的,主机节点在达到这些速度方面没有问题。 如果我安装一个运行CentOS(而不是Windows Server 2008)的虚拟机,那么CentOS虚拟机在实现这些速度方面没有任何问题 – 只有Win2K8的斗争。
我已经做了一些非常详尽的故障排除,但没有任何帮助:
在这一点上,我几乎没有想法 – 任何帮助将不胜感激!
编辑:我最终解决了这个问题。 见下面我接受的答案。
Windows客户机可能会遇到问题,以及它如何与虚拟网卡进行通信。 这里有一些事情要尝试:
在Windows客户端中禁用TCP烟囱卸载。 要确定它是否启用,请运行netsh int tcp show global 。 要禁用它,请运行netsh int tcp set global chimney=disabled
在Windows客户机的NIC上禁用TCP卸载。 在来宾Windows安装中,进入设备pipe理器,打开有问题的网卡,进入高级选项卡并search与TCP / UDP,校验和,largesend和/或TCP / IP卸载相关的任何选项。 禁用它们。 如果它说“卸载”禁用它。
在Windows guest虚拟机中禁用接收方缩放。 检查是否启用了netsh int tcp show global 。 禁用它与netsh int tcp set global rss=disabled 。
在Windows guest虚拟机中禁用NetDMA。 检查是否启用了netsh int tcp show global 。 要手动启用/禁用,需要添加一个registry项。 使用get-itemproperty -path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -name EnableTCPA检查它是否已经存在。 如果它不存在并启用NetDMA,请使用PowerShell创build以下registry项:
New-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableTCPA New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "EnableTCPA" -Value 0 -PropertyType "DWord"
在Windows客户机中禁用Windowsnetworking任务卸载。 使用PowerShell检查registry项是否存在: get-itemproperty -path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -name DisableTaskOffload 。 如果不是,请使用PowerShell添加此registry项: New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "DisableTaskOffload" -Value 1 -PropertyType "DWord"
在Windows Guest中禁用自动调整。 首先检查是否启用: Netsh interface tcp show global 。 如果是,请使用以下命令禁用它: Netsh interface tcp set global autotuning=disabled
如果启用了Windows来宾,则禁用远程差分压缩。 转到运行命令并运行appwiz.cpl,select“打开或closuresWindowsfunction”,并取消select远程差分压缩。
检查防病毒是否设置为扫描实时stream量。 可以将防病毒工具设置为扫描来自主机的所有stream量,以发现任何恶意行为。 如果您的Windows客户端是这种情况,请暂时禁用它以进行testing。
最后的一些努力包括:
netstat -es将会诀窍。 我通过为Windows中的NIC和其他组件安装Xen准虚拟化驱动程序来解决此问题。 Windows客户机上的默认驱动程序正在与Xen主机节点进行可怕的交互。 我注意到,在虚拟机上的Internet Explorer中下载文件会使主节点上的CPU达到75-90%。 为Windows Server 2008 32bit安装James Harper的GPLPV驱动程序解决了这个问题。
如果任何人有类似的问题,只需下载并安装在这里find适当的一组GPLPV驱动程序: http ://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers
但是,对于我的特定服务器,安装GPLPV驱动程序还不够。 GPLPV驱动程序将下载速度恢复到正常水平(〜66mbps),但上传速度大约为2mbps。 然后,我重新尝试了@WesleyDavid提供的提示,以禁用NICconfiguration中的所有forms的卸载(通过设备pipe理器),并且提升的上传速度高达36mbps。 我已经在其他系统上安装了GPLPV驱动程序,并且不需要修改NICconfiguration。
更新:
自从我在一年前发布这个问题以来,我已经在各种不同的Xen机器上安装了Windows。 每次安装James Harper的GPLPV驱动程序,networking性能和总体系统性能都得到了显着提高。 如果不使用Harper的GPLPV驱动程序,我从来没有能够实现完整的下载/上传速度。
任何在RHEL / CentOS主机上使用Xen虚拟化Windows的人都应该尝试使用http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers