我有一个非常简单的configuration:Windows Server 2012 Hyper V主机,有两个VM(Server 2012),一个用于IIS,一个用于SQL Server。 他们都通过物理网卡连接
昨天晚上,我尝试添加一个虚拟交换机,并在两台虚拟机(除了物理网卡之外)上设置虚拟网卡。
我还没有切换到实际使用虚拟网卡的服务器,但由于某种原因,这破坏了两个虚拟机之间的连接速度 – 即使虚拟网卡没有被使用。 我们正在谈论从200-500毫秒到30-90秒每个请求!
所以,今天早上,在看到我的网站造成的可怕影响之后,我禁用了两个虚拟网卡,因为这就是我改变的一切,果然,速度回来了。
最终,我需要让他们切换到使用v-网卡,但我需要先解决这个问题。
什么可能导致这个? 我能做些什么来排除故障?
额外细节:
设置实际上非常简单(这可能是我的问题的一部分,我可能会简单地说明为什么需要这个设置)。
我有一个单一的(物理)网卡的服务器。 目前,这种网卡用于v主机和互联网之间的通信,以及两个虚拟机和互联网之间的通信。 它也用于两个虚拟机之间的内部通信。
但是,我试图通过vNIC切换内部通信以通过虚拟交换机,释放物理网卡仅用于外部通信。
所以我添加了一个内部虚拟交换机到虚拟主机,然后为每个虚拟机添加一个虚拟网卡。
这样做之后,我的连接速度(通过物理网卡)急剧下降。 禁用vNIC(通过VM的networkingconfiguration)将恢复速度恢复正常。
以下是外部物理网卡和内部vNIC的虚拟机configuration屏幕(仅在一台虚拟机上,因为它们的configuration均相同)。
另一轮的细节
在这个问题上进一步挖掘,似乎Broadcom网卡在性能问题上是臭名昭着的。 该服务器具有双Broadcom BCM5716C网卡。 以下是讨论已知问题的一些链接:
虚拟机内的networking访问速度慢–Broadcom和Hyper-V
Hyper-V虚拟机非常慢networking – VMQ – Broadcom
所以我开始玩设置,禁用各种设置,一次一个。 这些改变似乎没有任何影响的问题 – 如果我启用来宾vNIC,加载速度下降到25+秒。 再次禁用它们,它们返回到250毫秒 – 一个100的因子 !
我也尝试从Broadcom安装最新的驱动程序,没有什么区别。
在这一点上,我觉得这是Broadcom NIC和Hyper-V之间的兼容性问题。 但是我不想订购新的网卡,并且经历了closures网站的麻烦,安装和configuration它们,只是为了保持这个问题。
所以,如果我可以明确地规定进出网卡,那就太好了。
交换机pipe理器上的物理网卡configuration 
交换机pipe理器上的虚拟交换机configuration 
数据库虚拟机上的物理网卡configuration 
数据库虚拟机上的虚拟网卡configuration 
我有一个非常相似的设置。 我在这里find了答案( 本地机器上Hyper-V虚拟机传输速度非常慢 )
使用Broadcom芯片组,我禁用了虚拟队列,所有等待时间都消失了。 在物理网卡上进行此更改,而不是虚拟网卡。
AFAIK在Hyper-V上没有物理网卡传递。 您已经创build了名为“物理NIC”的vSwitch,该物理NIC映射到物理适配器并启用pipe理操作系统使用。 在每个虚拟机上,都有一个vNic使用这个开关。 为什么要从一个vswitch切换到另一个? 除了“新”没有连接到任何东西,我真的不明白这一点。
Hyper-V足够聪明,只有当stream量从主机中stream出时,才能将来自vswitch的stream量发送到物理networking,这意味着您已经在做你正在努力实现的目标。