![配置虚拟处理器的 1 对 1 分配](https://linux22.com/image/694461/%E9%85%8D%E7%BD%AE%E8%99%9A%E6%8B%9F%E5%A4%84%E7%90%86%E5%99%A8%E7%9A%84%201%20%E5%AF%B9%201%20%E5%88%86%E9%85%8D.png)
我对在 Hyper-V 虚拟服务器上设置 vCPU 的建议有疑问。应用程序的文档指出“为获得最佳性能,请将虚拟处理器与可用的 Hyper-V 主机逻辑处理器进行 1:1 分配”但我发现这有点令人困惑。
我在不同的集群中有两种 Hyper-V 主机服务器类型。
具有 4 个插槽、40 个核心、80 个逻辑处理器、64 个主机逻辑处理器的 Hyper-V 主机,以及... 具有 4 个插槽、60 个核心、120 个逻辑处理器、64 个主机逻辑处理器的 Hyper-V 主机
我希望清楚了解在这种情况下将虚拟处理器 1:1 分配给可用的 Hyper-V 主机逻辑处理器究竟意味着什么。
答案1
我不确定您指的是哪篇文档,但这句话很有道理。为了获得最佳性能,您不会希望“过度使用”CPU 资源。假设能够过度使用 CPU 核心可能是我们进行虚拟化的原因,如果您的比例为 1-1,那么您将获得最佳性能。因此,根据这个经验法则,如果我有一个六核系统(如果启用了超线程,则有 12 个逻辑处理器)。我可以放置 12 个单 vcpu vm、6 个、2 个 vcpu vm 等)并保持该比例为 1-1。
真正的问题是,您的应用程序是否可能在更典型的 vcpu/逻辑比率下运行良好,它是否真的需要 1-1。您必须根据应用程序的功能做出决定。
答案2
在 Hyper-V 中没有处理器分配。您无法将虚拟处理器 (VP) 分配给逻辑处理器 (LP)。
至少从 Hyper-V 2012(我认为甚至是 2008 R2)开始,微软就没有对每个 LP 的 VP 配给给出建议(2016 年来源)
但事实上,单个 VP 始终在单个 LP 上执行。即使您过度使用主机(这是完全可能的),Hyper-V 也会通过将 VP 签入和签出 LP 来管理资源。因此,过度使用通常不是一件坏事。例如,Hyper-V 2016允许单个虚拟机拥有 240 个虚拟处理器!单个主机支持 2048 个虚拟处理器!
唯一需要注意的是,如果 Hyper-V 主机上的虚拟机数量少于逻辑处理器数量,则不应在主机上过度使用 VP。因为这样会发生 CPU 交换,这会影响性能(可能不明显,但确实会影响)。
如果您不确定为虚拟机分配多少个 VP,请先选择一个您觉得合适的数字,并在一段时间内监控 CPU 负载。然后相应地调整 VP。