我在运行 Windows 10(内部版本 17134)的 Surface Pro 上使用 Hyper-V。有一个运行最新 Debian 的单个客户虚拟机用于开发。这是一款高规格 Surface,配备 1TB SSD、i7 和 16GB RAM。
网络接口内置:
- “Marvell AVASTAR”无线适配器,驱动程序
mrvlpcie8897.sys
(版本 15.68.9120.47,2017 年 10 月 18 日)。 - “Surface Ethernet Adapter”,驱动程序
msux64w10.sys
(版本 10.4.124.2017,27/02/2017)。
驱动程序来自 Windows 更新,系统固件是最新的。
VM 的网络性能似乎很差,尤其是当主机连接到无线网络时。请注意,这是内部的网络性能,即主机和虚拟机之间的网络性能。流量不是退出主机到其他网络。
使用 ping 进行测试
禁用网络(无有线基座或无线连接)的统计信息:
Ping statistics for 172.19.2.236:
Packets: Sent = 1000, Received = 998, Lost = 2 (0% loss)
与连接到本地无线网络的统计数据相比:
Ping statistics for 172.19.2.236:
Packets: Sent = 1000, Received = 958, Lost = 42 (4% loss)
两项测试都是在相同负载下按顺序进行的,可重复进行。主机的性能没有受到太大影响。对于虚拟化网络来说,丢失两个数据包并不常见,但 4% 的丢失率却非常惊人。在迁移到 Hyper-V 之前,同一台主机在 VMware Workstation 下运行了多个 Windows 和 Linux VM,没有任何问题。
典型序列如下:
Reply from 172.19.2.236: bytes=32 time<1ms TTL=64
Request timed out.
Reply from 172.19.2.236: bytes=32 time=1976ms TTL=64
2 秒的暂停很明显,因为控制台似乎冻结了,转发的 X 会话变得没有响应。这让交互式会话令人沮丧,但还不算完全无法使用。
Hyper-V 网络信息
使用默认虚拟交换机,为互联网提供 NAT。Hyper-V 内部的网络设置未发生任何变化。
我尝试禁用虚拟机队列 (VMQ) 功能,但没有产生明显的区别。
VM 内部调试
VM 内部的调试表明 eth0 似乎定期连接,这表明 VM 网络重置或暂时断开连接:
Jun 7 21:35:34 vm NetworkManager[1327]: <info> [1528403734.3473] device (eth0): carrier: link connected
请注意,即使 NetworkManager 没有运行,性能也会出现不佳的情况。
另外,我发现当主机连接发生变化时(例如从有线变为无线或加入 VPN),连接会被重置。与其他虚拟机管理程序产品相比,这似乎不寻常。
有人可以针对此性能提出进一步的诊断或潜在的解决方案吗?