物理多核 CPU 与 vCPU 有何关系

end*_*ium 6 vcpu

有人告诉我,我需要在 Windows Server 2022 机器上托管的第三方应用程序需要 3 个 8 核的 CPU,但我的企业云配置服务(在内部工作)指定了以 vCPU 为单位的计算能力。

多核 CPU 和 vCPU 之间有什么关系?

HBr*_*ijn 10

vCPU 是用于资源分配的虚拟化抽象。当虚拟机运行时,vCPU 实际上映射到真实的 CPU 核心,其中虚拟化/时间切片机制根据需要向虚拟机提供真实的 CPU 处理能力。

一般来说,虚拟化和服务器整合平台的目标应该是工作负载分配,让所有来宾在需要时获得所需的资源。在这种情况下:

1 个虚拟 CPU(分配给来宾/虚拟服务器)等于虚拟机管理程序中的 1 个 CPU 核心。

在许多情况下,并非所有虚拟机都会同时以峰值 CPU 负载运行,也不会始终以峰值 CPU 负载运行。这允许一定程度的“过度配置”,即为虚拟服务器分配比虚拟机管理程序中实际存在的内核更多的 vCPU。

当其按预期工作时:1 个虚拟 CPU 核心仍然等于虚拟机管理程序中的 1 个 CPU 核心(当这是虚拟机所需的资源量时)。

当这没有按预期工作并且虚拟机管理程序(严重)过载时;将会出现资源争用,有时称为 CPU 窃取时间,然后虚拟化软件就会启动。然后,虚拟机为每个 vCPU 获得的资源将少于整个核心的资源,而不是完整核心的功能。


请注意,供应商对其应用程序的硬件要求通常是完全不切实际的。它们通常尺寸过小或过大。

最低要求经常是

  • 通过这些规范,应用程序安装程序可以完成并启动应用程序。

意思是

  • 一旦开始加载数据并应用现实生活负载,您将需要立即扩展

或者

  • 这些是我们超大的测试服务器的规格
  • 我们知道我们的应用程序在测试服务器上永远不会遇到问题
  • 因此客户至少也应该获得类似的设置

在大多数虚拟化设置中,您可以轻松分配额外的资源,因此最初为您的虚拟机分配合理数量的资源(不是供应商要求的 3 x 8 核 = 24 个 vCPU,而是数量少得多,并在需要时扩展并分配更多资源

  • 请记住,在云中,vCPU 通常指的是 CPU 中的超线程,而不是实际的核心本身。例如,4 核超线程处理器将显示为支持 8 个 vCPU。 (2认同)