一个物理CPU如何划分成多个虚拟CPU

原文链接:一个物理CPU如何划分成多个虚拟CPU

问题:一个虚拟机可以分配多少个虚拟CPU,以及如何在服务器上限制虚拟机的数量?

一个物理CPU一般一个内核会支持多个处理线程(英特尔超线程技术)。这就意味着一个六核的Xeon处理器可以提供给服务器六个物理CPU。当超线程开启的时候,每个线程可以作为一个物理CPU,所以如果这个六个核都开启了双线程支持,那么服务器将看到12个物理CPU。 当安装了虚拟化层,每个物理CPU被抽象成每个虚拟CPU,通常情况下,会为每个内核划分可用的CPU资源,并允许多个虚拟机共享一个物理处理器内核。默认情况下,虚拟化层会给每个工作负载分配一个vCPU(一个核)。 一个经验之谈,一般一个虚拟CPU可以支持4到8个虚拟机。假设我们使用保守限制,例如每个虚拟CPU支持4个虚拟机。假如服务器有两个4核处理器(共八核),预计这个服务器可能支持32个虚拟机 或者更多。如果是4个4核的处理器(共16核),预计服务器会支持64个虚拟机或更多。 要知道,如果多个虚拟机可以共享一个虚拟CPU,那么每个虚拟机可以用的CPU资源就会减少,可能会影响虚拟机的性能。 如果一个服务器上的工作负载需要更多的CPU,最好是在一个虚拟CPU上部署更少的虚拟机。 此外,你也可以给一个虚拟机分配多个虚拟CPU,但是最重要的是不能超过服务器中实际处理器的数量。例如,假如一个服务器只有一个处理器,那么只能给每个虚拟机分配一个虚拟CPU。假如服务器有两个处理器,最多只能给一个虚拟机分配两个虚拟机CPU。如果服务器有四个处理器,那么一个虚拟机最多分配不能超过四个虚拟CPU。当系统内的VM所需要的vCPU核大于物理CPU核数时,虚拟化管理系统首先按照时间片轮流调度一遍,然后如果还有剩余的CPU资源,则给所需要的vCPU。比如系统配置了40个vCPU,只有20个物理核。那么平均每个vCPU获取一个核心50%的资源。由于一些VM忙,一些VM空闲,虚拟化系统会在一个调度周期内,划分出若干时间片,轮流给每个vCPU使用。忙的vCPU可以使用完整个时间片,而闲的vCPU用不完整个时间片,会提前释放资源。这样在一个调度周期内,对每个vCPU都调度一遍后还有空闲的时间,调度器会把用这剩余的资源去调度忙的vCPU。 这样兼顾公平和效率。 这中调度算法具体下来,大致是如下效果:系统有1个CPU 2.0 Ghz,两个VM,分配1个vCPU。 如果VM1 和 VM2都忙,那么各自相当于拥有一个1.0 Ghz的CPU。 如果VM1很忙,VM1只需要 500Mhz的处理能力,那么在VM1看来,相当于暂时获得了 1.5Ghz的处理器。


一个物理CPU如何划分成多个虚拟CPU
https://blog.51cto.com/u_9406836/1850724

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值