現象描述
- 兩台物理主機(Win2012 R2)各跑一台 Win2008 VM,分別在 VLAN20、VLAN30。
- VLAN20 VM 存取 SVN 極慢,
tracert 延遲高,但 ping 正常。
- VLAN30 VM 完全正常。
- 兩台主機硬體、Hyper-V 設定、VM 組態完全一致。
排查過程
- 檢查虛擬交換器、VLAN 標記、MAC 地址衝突 → 無異常。
- 在宿主機執行
iperf3 測試宿主機間頻寬 → 正常。
- 在 VM 內執行
iperf3 → VLAN20 VM 頻寬極低、丟包高。
- 對比宿主機網卡驅動程式版本:
- VLAN20 宿主機:Intel I210 驅動 12.x(舊版)。
- VLAN30 宿主機:Intel I210 驅動 24.x(新版)。
- 更新 VLAN20 宿主機網卡驅動至最新版 → 重啟 → VM 網路效能恢復正常。
根因分析
舊版驅動在處理虛擬化隊列(VMMQ/VMQ)、大型發送卸載(LSO)、中斷調節 等硬體加速功能時有 Bug,導致封包在 Hyper-V 虛擬交換器層被錯誤丟棄或重排,表現為 tracert 高延遲(ICMP TTL 過期封包處理異常)但 ping 正常(小封包未觸發 Bug)。
最佳實踐
- Hyper-V 宿主機務必安裝廠商最新網卡驅動,並啟用 VMQ、RSS、LSO 等加速功能。
- 定期檢查驅動版本,納入基線管理。
- 遇到 VM 網路詭異問題,優先比對宿主機驅動版本。