使用某些 Hyper-V powershell cmdlet 在 Hyper-V 管理器中显示 VM 设置的速度大幅下降。为什么?

Massive slowdown showing settings for a VM in Hyper-V manager, using certain Hyper-V powershell cmdlets. Why?

当我在 Hyper-V 管理器中右键单击 VM 并显示其属性时,我发现速度大幅下降。完全填充需要 35 秒。请注意屏幕截图中的部分属性仍为“正在加载...”

同样,运行 VM 上的某些 cmdlet,如 Get-VMSecurity 将需要 10 多秒才能 return。

是什么导致了这种大幅放缓?

虽然可能有不同的原因,但我在两台不同机器上的解决方案是在 Virtual Switch Manager 中简单地创建一个名为 Default Switch 的 Hyper-V 虚拟交换机。这样就彻底解决了这个问题。

我一直在一台旧的开发机器上打这个,很高兴搬到我的新机器上,我希望事情会更好。想象一下当他们不是时我的惊愕。

在注意到一些古老的 7-year-old 硬件上 super-snappy 之后,我在减速期间深入研究了事件查看器。它显示 Hyper-V 一直是 creating/initializing/using/destroying 一个名为“默认开关”的开关。

似乎许多 Hyper-V 管理操作都需要一个名为 Default Switch 的开关,如果它不存在,则会创建它,然后根据需要销毁它,从而导致速度大幅下降。

我的开发机器都缺少默认的 Default Switch,它可以进行 NAT 网络共享。它一开始是存在的,但在创建其他虚拟交换机后,它就不复存在了。如上所示,我创建了一个名为 Default Switch 的内部开关。现在,VM 的属性会立即显示在 Hyper-V 管理器 GUI 中,而且 powershell cmdlet 也很活泼。