
我有一個非常簡單的設定:Windows Server 2012 Hyper V 主機,有兩台虛擬機器(都是 Server 2012),一個用於 IIS,一個用於 SQL Server。它們都是透過實體網卡連接的
昨晚我嘗試新增虛擬交換機,並在兩台虛擬機上設定虛擬網卡(除了實體網路卡)。
我還沒有切換伺服器來實際使用虛擬網卡,但由於某種原因,這破壞了兩個虛擬機之間的連接速度——即使虛擬網卡沒有被使用。我們所說的每個請求的時間從 200-500 毫秒縮短到 30-90 秒!
所以今天早上,在看到它對我的網站造成的可怕影響後,我禁用了兩個虛擬網卡,因為這就是我所做的更改,果然,速度恢復了。
最終我需要讓它們切換到使用 v-NIC,但我需要先解決這個問題。
可能是什麼原因造成的?我可以採取什麼措施來排除故障?
額外細節:
設定實際上非常簡單(這可能是我的問題的一部分,我可能過於簡單化了設定所需的內容)。
我有一台帶有單一(實體)NIC 的伺服器。目前,該網路卡用於虛擬主機和網際網路之間以及兩個虛擬機器和網際網路之間的通訊。它也用於兩個虛擬機器之間的內部通訊。
但是,我嘗試將內部通訊切換為透過 vNIC 透過虛擬交換機,從而釋放實體 NIC 以僅用於外部通訊。
因此,我為虛擬主機新增了一個內部虛擬交換機,然後在每個虛擬機中新增了一個虛擬網路卡。
完成此操作後,我的連線速度(透過實體網卡)急劇下降。停用 vNIC(透過虛擬機器的網路配置)可將速度恢復正常。
下面是外部實體 NIC 和內部 vNIC 的虛擬機器配置畫面(僅在一台虛擬機器上,因為它們的配置相同)。
又一輪細節
在深入研究這個問題後,我們發現 Broadcom NIC 因效能問題而臭名昭著。該伺服器具有雙 Broadcom BCM5716C NIC。以下是一些已知問題討論的連結:
虛擬機器內的網路存取速度緩慢 - Broadcom 和 Hyper-V
Hyper-V 虛擬機器網路速度非常慢 – VMQ – Broadcom
所以我開始擺弄設置,一次禁用各種設定。所有變更似乎都沒有對問題產生任何影響 - 如果我啟用來賓 vNIC,載入速度會下降到 25 秒以上。再次停用它,它們返回到 250ms --100 的因數!
我也嘗試安裝 Broadcom 的最新驅動程序,沒有什麼區別。
此時,我感覺這是Broadcom NIC和Hyper-V之間的相容性問題。但我不想訂購新的網路卡並經歷關閉網站、安裝和配置它們的麻煩,結果問題仍然存在。
因此,如果我能明確排除 NIC,那就太好了。
交換器管理器上的實體 NIC 配置
交換器管理器上的虛擬交換器配置
資料庫虛擬機器上的實體網路卡配置
資料庫虛擬機器上的虛擬網路卡配置
答案1
我有一個非常相似的設定。我在這裡找到了答案(檔案傳輸到本機上的 Hyper-V VM 的速度極慢)
使用 Broadcom 晶片組,我禁用了虛擬隊列,所有延遲都消失了。在實體 NIC 而不是虛擬 NIC 上進行此變更。
答案2
據我所知,Hyper-V 上沒有實體網卡直通之類的東西。您已建立一個名為「實體 NIC」的 vSwitch,它會對應到實體適配器並啟用管理作業系統使用。每個虛擬機器上都有一個使用此交換器的 vNic。為什麼要從一個 vswitch 切換到另一個?除了“新”的沒有與任何東西連接之外,我真的不明白這一點。
Hyper-V 足夠智能,只有當流量從主機路由出時才將流量從 vswitch 發送到實體網路卡,這意味著您已經在做您想要實現的目標。