FusionSphere 物理CPU与VCPU的关系梳理总结

digest [复制链接]
发表于 : 2015-6-24 23:07:12 最新回复:2019-01-26 10:34:34
32230 32
木头人z
木头人z  精英

背景说明:
在项目和培训中多次被问题FusionSphere物理CPU和vCPU的对应或分配关系,一个物理CPU能虚拟出多少个vCPU,一个vCPU的主频是多少等问题。设置了CPU预留、份额与限制之后又是什么情况。
看过之前的一些讨论,也没有定论,本着实践是检验整理的唯一标准,本文通过实验,并对照相关文档来梳理这些问题,希望能让大家有更清楚的理解。

1. 系统可用的VCPU总数计算

服务器CPU信息:
1台R2288H V3,2个CPU, 10 核,超线程为2。总共2x10x2= 40个thread,每个Thread 2.3GHz。
Haswell EP CPU 02311CDJ BC1M12CPU X86 series,2300**z,1.8V,64bit,105000mW,Haswell EP Xeon E5-2650 v3,10Core,with heatsink 2 2
服务器BMC管理界面上查看 CPU信息 
FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-1
Intel官网看到E5-2650的信息

FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-2
http://ark.intel.com/products/81705/Intel-Xeon-Processor-E5-2650-v3-25M-Cache-2_30-GHz
在主机上部署FusionCompute R5C00, 登录CNA主机运行xentop命令查看CPU信息
CPUs:40 @ 2294 **z,主频总容量为40 x 2.294 GHz = 91.76 GHz。
Domain 0默认配置2个VCPU,占用2 x 2.294 = 4.588 GHz
用户可用的主频总容量 = 91.76 - 4.588 = 87.172 GHz
FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-3
FC portal上查看CPU信息,总容量87.17GHz正好等于系统总容量减去Domain 0占用的容量。
FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-4


结论1: 系统可用的vCPU总数(逻辑处理器) = Socket数(CPU个数)x Core数(内核)x Thread数(超线程)
1个VCPU = 1个超线程Thread。如下图:

FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-5

CPU QoS
如图所示,CPU预留容量为4.59GHz,可用容量为82.58GHz,说明除了VRM01的2个VCPU预留容量4588**z之外的VCPU主频均是可用的,尽管该环境已创建了7台4 VCPU的VM,还可以创建更多VM,这些VM的VCPU总数可以远远超过当前系统显示可用的38个VCPU。

在不对VRM01的VCPU进行限制的情况下,将VCPU份额自定义为128000,显示可使用的CPU数为38,说明如果需要的话VRM01可以占用该主机上的除了Domain 0之外的所有VCPU(Domain 0占用了2个VCPU)。
FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-6

FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-7



2. 虚拟机VCPU的分配与调度
对虚拟机来说,不直接感知物理CPU,虚拟机的计算单元通过vCPU对象来呈现。虚拟机只看到VMM呈现给它的vCPU。在VMM中,每个vCPU对应一个VMCS(Virtual-Machine Control Structure)结构,当VCPU被从物理CPU上切换下来的时候,其运行上下文会被保存在其对应的VMCS结构中;当VCPU被切换到PCPU上运行时,其运行上下文会从对应的VMCS结构中导入到物理CPU上。通过这种方式,实现各vCPU之间的独立运行。
从虚拟机系统的结构与功能划分可以看出,客户操作系统与虚拟机监视器共同构成了虚拟机系统的两级调度框架,如图所示是一个多核环境下虚拟机系统的两级调度框架。客户操作系统负责第2 级调度,即线程或进程在vCPU 上的调度(将核心线程映射到相应的VCPU上)。虚拟机监视器负责第1 级调度, 即vCPU在物理处理单元上的调度。两级调度的调度策略和机制不存在依赖关系。vCPU调度器负责物理处理器资源在各个虚拟机之间的分配与调度,本质上即把各个虚拟机中的vCPU按照一定的策略和机制调度在物理处理单元上可以采用任意的策略来分配物理资源, 满足虚拟机的不同需求。vCPU可以调度在一个或多个物理处理单元执行(分时复用或空间复用物理处理单元), 也可以与物理处理单元建立一对一固定的映射关系(限制访问指定的物理处理单元)。

FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-8

3. CPU QoS说明
Hypervisor层根据分时复用的原理实现对VCPU的调度,CPU QoS的原理是定期给各VCPU分配运行时间片,并对各VCPU运行的时间进行记账,对于消耗完时间片的虚拟CPU将被限制运行,直到获得时间片。以此控制虚拟机获得物理计算资源的比例。以上分配时间片和记账的时间周期很短,对虚拟机用户来说会感觉一直在运行。
CPU预留定义了分配给该VM的最少CPU资源。
CPU限制定义了分配虚拟机占用CPU资源的上限。
CPU份额定义多个虚拟机在竞争CPU资源的时候按比例分配。
CPU份额只在各虚拟机竞争计算资源时发挥作用,如果没有竞争,有需求的虚拟机可以独占主机的物理CPU资源。
如果虚拟机根据份额值计算出来的计算能力小于虚拟机预留值,调度算法会优先按照虚拟机预留值分配给虚拟机,对于预留值超出按份额分配的计算资源的部分,调度算法会从主机上其他虚拟机的CPU上按各自的份额比例扣除。
如果虚拟机根据份额值计算出来的计算能力大于虚拟机预留值,那么虚拟机的计算能力会以份额值计算为准。
以一台主频为2800**z的单核物理机为例,如果满负载运行3台单VCPU的虚拟机A、B、C,分配情况如下。
FusionSphere 物理CPU与VCPU的关系梳理总结-1335697-9

结论2:由于采用分时复用的方式,在不做VCPU预留的条件下,系统可分配给VM的VCPU总数远远大于实际可提供的VCPU数目(具体能创建多少额外的VCPU依赖于物理CPU的性能和VCPU的使用情率),在出现资源争用的时根据CPU QoS中的预留和份额来分配资源。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
zhang_linzhang
zhang_linzhang   发表于 2015-7-28 10:44:00 已赞(0) 赞(0)

楼主您好!

请问下图的虚拟化域占用率和管理域占用率是哪个对哪个的占比?我怎么算都对不上呢。

FusionSphere 物理CPU与VCPU的关系梳理总结-1646391-1

  • x
  • 常规:

点评 回复

人生丶如戏
人生丶如戏   发表于 2015-7-28 14:50:01 已赞(0) 赞(0)

花了不少时间整理吧,顶一个
  • x
  • 常规:

点评 回复

SD102014
SD102014   发表于 2015-7-28 16:09:27 已赞(0) 赞(0)

很详细,赞一个


  • x
  • 常规:

点评 回复

初级用户1
初级用户1   发表于 2015-7-29 11:05:35 已赞(0) 赞(0)

非常棒,赞赞赞`

  • x
  • 常规:

点评 回复

IT管理员巴拉巴拉
IT管理员巴拉巴拉  导师 发表于 2015-6-25 08:34:20 已赞(0) 赞(0)

总结的很好!赞一个!
  • x
  • 常规:

点评 回复

z00146454
z00146454   发表于 2015-6-27 17:13:20 已赞(0) 赞(0)

总结的非常好,赞一个!
  • x
  • 常规:

点评 回复

蝈蝈龙
蝈蝈龙   发表于 2015-6-27 17:58:17 已赞(0) 赞(0)

总结的很透彻,建议总结成一个正式的技术案例。谢谢分享

  • x
  • 常规:

点评 回复

咚咚咚咚咚
咚咚咚咚咚   发表于 2015-6-28 09:25:54 已赞(0) 赞(0)

保存。客户经常要求解释这个~
  • x
  • 常规:

点评 回复

walt
walt   发表于 2016-4-28 11:07:43 已赞(0) 赞(0)

很棒!

vSphere的物理CPU与VCPU的关系也是这个原理吗?谢谢!

  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录