我已经在运行Xen 3.4.3-5的主机节点上安装了运行Windows 2008的VM,并安装了以下内核:2.6.18-308.1.el5xen #1 SMPWEDMA7.05:38:01 i686 i686 i386 GNU/Linux
VM上的网络速度非常慢--通过在线速度测试,我只能获得高达8-9 9mbps的速度。这条线路是100 those可存储的,主机节点在达到这些速度时没有问题。如果我设置一个运行CentOS的VM (而不是Windows 2008),那么CentOS VM在实现这些速度方面没有问题--只有Win2K8在挣扎。
我已经做了一些非常详尽的故障排除,但是没有什么帮助:
在这一点上,我几乎没有任何想法--任何帮助都将不胜感激!
发布于 2012-04-12 05:39:29
我通过在Windows中为NIC和其他组件安装Xen半虚拟化驱动程序来解决这个问题。Windows来宾上的默认驱动程序正在与Xen主机节点进行可怕的交互。我注意到,在VM上的Internet中下载一个文件会使主机节点上的CPU激增到75-90%。安装James的GPLPV驱动程序用于Windows 2008 32位解决了这个问题。
如果有类似的问题,只需下载并安装相应的GPLPV驱动程序:http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers。
但是,对于我的特定服务器来说,仅仅安装GPLPV驱动程序是不够的。GPLPV驱动程序将下载速度恢复到正常水平(~66 2mbps ),但上传速度约为2mbps。然后,我重新尝试了@WesleyDavid提供的tips @WesleyDavid来禁用NIC配置中的所有形式的卸载(通过设备管理器),这提高了上传速度高达36 36mbps。我已经在其他系统上安装了GPLPV驱动程序,并且没有必要修改NIC配置。
自从一年前我发布这个问题以来,我已经在各种不同的Xen机器上安装了Windows。每次我安装James的GPLPV驱动程序时,网络性能和一般系统性能都会显著提高。如果没有使用Harper的GPLPV驱动程序,我就无法实现完整的下载/上传速度。
任何在RHEL/CentOS主机上使用Xen虚拟Windows的人一定要试用http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers提供的驱动程序
发布于 2012-04-12 02:33:05
这个问题很可能发生在Windows客户端以及它如何与虚拟NIC通信。以下是一些值得尝试的事情:
禁用Windows来宾中的TCP烟囱卸载。要确定是否启用了它,请运行netsh int tcp show global
。若要禁用它,请运行netsh int tcp set global chimney=disabled
禁用Windows来宾中NIC上的TCP卸载。在来宾Windows安装中,转到设备管理器,打开有问题的NIC,转到高级选项卡,搜索任何与TCP/UDP、校验和、扩展和/或TCP/IP卸载相关的选项。让他们停用。如果上面写着“卸载”,就禁用它。
禁用Windows来宾中的接收侧缩放。检查是否用netsh int tcp show global
启用了它。用netsh int tcp set global rss=disabled
禁用它。
禁用Windows来宾中的NetDMA。检查是否用netsh int tcp show global
启用了它。要手动启用/禁用它,需要添加一个注册表项。检查它是否已经在get-itemproperty -path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -name EnableTCPA
中存在。如果不存在并且启用了NetDMA,则使用PowerShell创建以下注册表项:
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来宾中的Windows网络任务卸载。使用PowerShell:get-itemproperty -path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -name DisableTaskOffload
检查注册表项是否存在。如果没有,则使用PowerShell: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中禁用远程差异压缩(如果启用的话)。转到run命令并运行appwiz.cpl,选择“打开或关闭Windows功能”并取消选择远程差异压缩。
检查反病毒是否设置为扫描实时通信量。反病毒工具可以设置为扫描来自主机的所有通信量是否有恶意。如果在Windows来宾上出现这种情况,请暂时禁用它以进行测试。
在这方面的一些最后努力包括:
netstat -es
会做到这一点的。https://serverfault.com/questions/378722
复制相似问题