KVM和虚拟到物理CPU映射

Modified on: Wed, 14 Aug 2019 02:20:02 +0800

我是虚拟派对的后来者,所以如果这似乎是一个明显的问题,你将不得不原谅我。

如果我的服务器有12个可用内核,那么每个KVM来宾是否都可以访问所有12个内核?我理解KVM使用Linux调度程序,但这就是我对“接下来会发生什么”的理解结束。

我的理由是,我们打算在KVM来宾中运行的10个左右的不同任务(为了便于升级而隔离)将不会在100%的时间内使用单个核心,因此在此基础上为每个客户分配1个虚拟CPU似乎很浪费 - 我们将从一个“完整”,空闲的服务器中为内核提供核心。

换句话说,假设我上面的描述,在处理能力方面,1个虚拟CPU实际上等于12个物理内核吗?或者这不是它的工作方式?

非常感谢

史蒂夫

作者:,Steve

最佳答案

虚拟CPU相当于1个物理内核,但是当您的VM尝试处理某些内容时,它可能会在当时恰好可用的任何内核上运行。调度程序处理此问题,并且VM不知道它。您可以为VM分配多个vCPU,从而允许它跨多个核心并发运行。

根据需要在所有VM之间共享内核,因此您可以拥有一个4核系统,并在其上运行10个VM,并为每个VM分配2个vCPU。根据调度程序的确定,VM可以非常高效地共享系统中的所有核心。这是虚拟化的主要优势之一 - 充分利用订阅不足的资源为多个操作系统实例提供支持。

如果您的虚拟机太忙而无法争用CPU时间,那么结果是虚拟机可能需要等待CPU时间。同样,这对VM是透明的,并由调度程序处理。

我不熟悉KVM,但上述所有内容都是大多数虚拟化系统的通用行为。


相关问答

添加新评论