vCPU,顾名思义,是虚拟CPU。 创建虚拟机时,需要配置vCPU资源。 因此vCPU是虚拟机的部件。 因此脱离VM,谈论vCPU是没有意义的。

虚拟化管理系统如何调度vCPU,取决于系统内的虚拟机数目以及虚拟机配置的vCPU的情况。

大致的情况如下:
1、当系统内VM所需的vCPU总数少于物理CPU的核数(包括超线程Core)时,虚拟化管理系统为vCPU分配的资源不超过一个物理CPU核。 vCPU与物理核的分配关系可以是绑定的,也可能是动态的。
比如服务器有20个核心,你创建了2个VM,每个VM 4个vCPU,那么这两个VM最多能够使用服务器的8个核心。

2、当系统内的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的处理能力,那么在VM2看来,相当于暂时获得了 1.5Ghz的处理器。

3、通过对Xen的测试,系统所有虚拟机的vCPU的总数目小于和等于CPU核数时,VM的性能是比较稳定的。 VM的vCPU基本上绑定到了一个CPU核。 当vCPU数目大于物理核数时,VM的性能稳定性变差。

VCPU的解释的更多相关文章

  1. 进程的处理器亲和性和 vCPU 的绑定(查看cpu信息,超线程等)

    通常情况下,在 SMP 系统中,Linux 内核的进程调度器根据自有的调度策略将系统中的一个进程调度到某个 CPU 上执行.一个进程在前一个执行时间是在 cpuM(M 为系统中的某 CPU 的 ID) ...

  2. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

  3. 说说BPM数据表和日志表中几个状态字段的详细解释

    有个客户说需要根据这些字段的值作为判断条件做一些定制化需求,所以需要知道这些字段的名词解释,以及里面存储的值具体代表什么意思 我只好为你们整理奉上这些了! Open Work Sheet  0 Sav ...

  4. 【完全开源】知乎日报UWP版:项目结构说明、关键源代码解释

    目录 说明 项目结构 关键代码 演示视频 说明 上一篇博客将源码放出来了,但是并没有做过多的介绍,所以如果自己硬看可能需要花费很长的时间,尤其这些代码并不是自己写的.项目不算复杂但是也不算简单,这篇文 ...

  5. nodejs、npm、grunt——名词解释

    最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...

  6. HTTP各状态码解释

      状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必 ...

  7. JavaScript中‘this’关键词的优雅解释

    本文转载自:众成翻译 译者:MinweiShen 链接:http://www.zcfy.cc/article/901 原文:https://rainsoft.io/gentle-explanation ...

  8. XML简介与CDATA解释

    简介XML 是一种受到广泛支持的 Internet 标准,用于以一种特殊的方式编码结构化数据.实际上,以 XML 编码的数据可以通过任何编程语言解码,人们甚至可以使用标准的文本编辑器来阅读或编写 XM ...

  9. free-简单明了解释清楚怎么看内存使用

    free命令可以用来查看系统内存使用情况.我一般习惯-m参数以MB的方式查看 [root@localhost ~]# free -m total used free shared buffers ca ...

随机推荐

  1. 洛谷 P2049 魔术棋子(vector)

    题目传送门 解题思路: 用一个vector维护每一个点都可以乘出哪些数来,然后将(n,m)的所有数从小到大输出即可. 要用一个bool ff[j][k]来维护当前这个点(i,j)里面有没有被放过k,以 ...

  2. React 组件通讯

    React   父→子组件通讯   在父组件中子组件上  绑定一个 变量名={要传递的数据}:走我们去子组件中接收....      直接用  this.props.刚刚起的变量名就ok了    上代 ...

  3. Android Studio SharedPreferences

    Android 中最简单的数据存储方式 : SharedPreferences SharedPreferences 数据存储处理实际上时对一个个key——value 数据对的处理 使用SharedPr ...

  4. Windows平台整合SpringBoot+KAFKA__第3部分_代码部分(结束)

    重要的地方说下,算是给自己提醒,也给阅读者凑合着看看吧: (1)序列化.反序列化: 注意看这个文章 https://www.jianshu.com/p/5da86afed228 很多网上的例子都是 推 ...

  5. 138-PHP static后期静态绑定(一)

    <?php class test{ //创建test类 public function __construct(){ self::getinfo(); //后期静态绑定 } public sta ...

  6. 解决对路径bin\roslyn..的访问被拒绝

    使用visual studio开发,一重新编译就会报错: 对路径“bin\roslyn\System.Reflection.Metadata.dll”的访问被拒绝 一开始的解决办法就是把bin下的文件 ...

  7. Ubuntu 14.04 安装 Dash to Dock

    每次打开或选择一个已经打开的应用都要把鼠标指到左上角,相当费事. Ubuntu 14.04 GNOME自带 Tweaks (系统中名为:优化工具),可以使界面如Windows般(最小化.最大化.底部任 ...

  8. Java Integer Addition Subtration Overflow 整数加减溢出

    leetCode有道题Reverse Integer,因为int的最大值为2的31次方减一,最小值为-2的31次方. 我一开始的代码将res递归加放在try中,以为溢出会有异常,然而并没有. 因为出传 ...

  9. oracle中判断"非"

    在oracle中判断为"非"最常见的两种情况,一个是"不等于",一个的"非空". 通过查找资料得知,oracle中判断不等于的方法有好多种: ...

  10. jQuery中:first,:first-child,first()的使用区别

    ul li:first  先获取页面中所有li节点对象数组,然后返回数组中的第一个li节点对象 . :first-child  选择器选取属于其父元素的第一个子元素的所有元素. first() 返回被 ...