我有一台配备 8 个 CPU 的 ESX 服务器。我可以用 4 个 VCPU 创建 4 个虚拟机吗?
答案1
我听过的关于‘每个虚拟机只能有一个 vCPU’的最佳解释如下:
当虚拟机需要一部分处理时间时,它会在一旁等待,直到可以锁定 n 个物理 CPU,其中 n 是虚拟机拥有的 vCPU 数量。如果虚拟机中只有一个 vCPU,它只需等到一个物理 CPU 可用,就可以开始执行某些操作。如果它有两个或更多 vCPU,它必须等到两个或更多 CPU 同时可用,然后才能开始执行操作(它不会一次锁定一个 CPU,然后等待更多 CPU 跟进 - 它必须等待多个 CPU 可用,然后才能开始执行操作)
如果您有一堆单 vCPU 虚拟机正在冲击物理 CPU,而一个多 vCPU 虚拟机想要处理,那么它可能需要等待相当长的时间,因为单 vCPU 虚拟机会介入并不断抢夺备用 CPU,然后多 vCPU 虚拟机才能锁定所需的 CPU 数量。
VM 可以快速锁定、使用和解锁 CPU,但上述行为在某些情况下可能会导致多 vCPU 盒性能不佳。
我希望这是有道理的(提到了很多 CPU、vCPU 和 VM,我希望我没有混淆任何东西)
这只是传闻——我的老板参加了 VMWare 培训,并将上述故事转述给我。这个故事从讲师传到我的老板,再传到我,再传到你,所以请随意相信。
答案2
可以,但要注意与 CPU 调度相关的性能问题。
VMware 在其“配置最大值”指南中详细记录了客户机和主机的架构限制,位于适用于 ESX4/vSphere, 和此处为 ESX3.5(直接链接到 PDF)。
答案3
您可以创建 n 个具有 4 个 vCPU 的 VM。问题是这些 VM 的性能是否良好。
最佳做法是每台虚拟机添加 1 个 vCPU,如果确实需要,再添加一个 vCPU。我只有一两台虚拟机,每台虚拟机有 4 个 vCPU。
每个虚拟机共享主机系统的物理 CPU。您添加的 vCPU 越多,虚拟机在物理 CPU 上工作的时间片就越多。通常,您不会只为一个虚拟机保留一个物理 CPU。这是可能的,但通常不需要。