欢迎光临,这里是 gOxiA=苏繁=SuFan 独立的个人博客。
本站域名:http://goxia.maytide.net or http://sufan.maytide.net
移动设备请访问:http://goxia.maytide.net/m
转载文章,请务必保留出处与作者信息,未经许可严禁用于商业用途!

增加 VMBus 缓冲区大小来提升虚拟机网络吞吐量

        今天在 Windows Server Performance Team Blog 看到一篇非常有价值的文章《Increase VMBus buffer sizes to increase network throughput to guest VMs》,主要介绍了如何通过增加 VMBus 的缓冲区来提升虚拟机网络的吞吐量。由于原文的介绍已经相当详细,小弟我也就不班门弄斧!简单来讲,Hyper-V 提供的 VMBus 架构是非常优越的,由于虚拟网络的数据交换是通过 VMBus 到物理网卡的,所以 Virtual Switch 能够提供充足的缓冲,我们可以利用该特性有效的改善传统网络中出现的因吞吐量导致的数据包丢失问题。在 Windows Server 2008 R2 上默认的缓冲区大小为 1mb,它能提供 655 个数据包缓冲(每个缓冲区 1600 个字节)。根据原文的建议可以将其缓冲增加到 2mb(最大有效值是 4mb),能够满足大多数的情况。除非你有足够大的内存,否则不建议设置到 4mb。

        要增加 VMBus 缓冲区的大小只需要修改虚拟机的网卡(Microsoft 虚拟机总线网络适配器)注册表相关项增加两个 DWORD 值即可。执行此操作前我们需要先确认虚拟机网卡的“驱动程序关键字”便于在注册表中定位,为此在虚拟机中打开硬件管理找到网卡适配器进入其属性下的详细信息选项卡页面,在属性列表中选取“驱动程序关键字”,将该值记录下来。

image

        接下来打开注册表编辑器,根据之前记录下来的值定位到类似下面的注册表位置上,并添加名为:ReceiveBufferSizeSendBufferSize 的 DWORD 键,设置其值为:800

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID}\{index}

image

        最后重新启动虚拟机即可。由于本人英语水平有限,无法完全正确地翻译原文介绍,以及表达我个人的理解意思,文中有错误的解释欢迎大家指正。

WS08-R2_v_rgb  在 Windows Server 2008 Hyper-V 下运行 WinSrv2008 R2时会收到错误警告日志

        前段时间在一台已经运行数月的 Windows Server 2008 Hyper-V 上进行 WDS 应用,效果很令人满意。在微软发布了 Windows Server 2008 R2 后决定对其进行综合评估,首先要测试的就是 WDS,同时体验一下 MDT2010。由于 Windows Server 2008 R2 无法从 32bit 的 Windows Server 2008 进行升级,所以我在这台 Windows Server 2008 Hyper-V 上全新安装了一台用于 测试评估 WDS+MDT2010 的 Windows Server 2008 R2 虚拟机(来宾系统),整个安装配置过程都很顺利,但是为该虚拟机安装 Hyper-V Integration Services 时失败了。如下图所示:

image

image

        安装程序检测到虚拟机上已经安装了 Integration Services 组件,强制安装最后提示失败。不难理解,R2 肯定要较之前版本先进!既然如此也只能先这样使用,看来要想在 Hyper-V 测试微软的新系统或者产品,最好将主机升级到最新的系统版本!

        在之后的运行测试中也并为发现异常,但是在一次为其他虚拟机做 Troubleshooting 的时候,偶然发现在主机(父分区)系统日志中记录了多条警告日志,来源和ID分别是:VMSMP ID:26、Storvsp ID:5、vmbus ID:2。

image

        为了便于其他网友通过搜索引擎能找到该日志,我以文字方式记录下来错误警告日志的具体内容:

日志名称:系统      来源:VMSMP      事件 ID:26

“ComputerName”上的 NIC 驱动程序无法加载,因为它与服务器虚拟化堆栈不兼容。服务器版本为2 客户端版本为 196610(VMID 00000000-0000-0000-0000-000000000000)。

日志名称:系统      来源:sotrvsp       事件 ID:5

无法加载“ComputerName”中的存储设备,因为它与服务器虚拟化堆栈不兼容。服务器版本为2.0 客户端版本为 4.2 (VMID 00000000-0000-0000-0000-000000000000)。

日志名称:系统      来源:vmbus         事件 ID:2

父分区使用的是另一个 VMBus 版本。您需要在此来宾安装中安装匹配的 VMBus 版本。

        这些错误警告日志可是够“耸人听闻”的,赶紧停掉了这台 Windows Server 2008 R2 虚拟服务器,快速查阅了微软的KB,最终得知,这些错误警告是可以被忽略的,虚惊一场!为什么微软不在“事件日志联机帮助”中提供这些错误警告日志的详细说明呢?每每打开的都是找不到任何信息,这一用户体验实在令人沮丧和抓狂!只能希望微软能尽快重视该问题,现在还是来了解一下这篇 KB,编号是:KB972108,地址是:http://support.microsoft.com/kb/972108

分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]