你好,
在 Windows 的 Hyper‑V vSwitch 中,動態 MAC 位址表的容量雖然足以支援一般工作負載,但在高密度虛擬機環境下確實可能成為瓶頸。當 MAC 表超出容量時,新的位址無法學習,導致流量遺失。
目前沒有官方 PowerShell Cmdlet 可以直接擴充 MAC 表大小,因為這是由 vSwitch 核心模組控制的。但你可以透過登錄檔與 NIC 驅動程式參數來調整。相關設定位於:
HKLM\SYSTEM\CurrentControlSet\Services\VMSMP\Parameters
在這裡可以建立或修改 MacAddressTableSize 來增加表容量,以及 MacAddressAgingTime 來調整老化時間(預設約 300 秒)。修改後需要重新啟動 Hyper‑V Virtual Switch 服務或整個主機,設定才會生效。
需要注意的是,雖然可以透過這些方法增加表容量與延長老化時間,但這並不是 Microsoft 官方建議的最佳做法。當 VM 數量非常龐大時,最佳實務是透過多個 vSwitch 或網路分段來分散 MAC 學習負載,避免單一 vSwitch 成為瓶頸。
總結來說,僅依賴預設容量在高密度環境下可能不足,你可以透過登錄檔調整 MacAddressTableSize 與 MacAddressAgingTime,但更穩健的方式是進行網路分段設計。
Harry Phan.