当前位置:   article > 正文

cpu 虚拟化_v cpu资源计算

v cpu资源计算

* cpu 资源池中的资源是指? 算力(用主频表达)

* 什么是主频?

cpu 的主频代表cpu的一个”核“每秒计算的次数(如:2.9Hz主频的cpu,可以每秒计算2.9G次,即29亿次)

*一颗cpu的算力

1. 未开启超线程

算力=cpu核心数*主频

2.开启超线程

  1. 算力=cpu核心数*2*主频
  2. 超线程是将一颗cpu通过分时复用的方式变为2个逻辑cpu,操作系统识别到的就是逻辑cpu

*一台服务器的算力

整个服务器的”算力“= cpu个数*cpu核心数*2*主频

*集群的算力

服务器1+服务器2的”算力“=整个集群的”算力“

EX:一个集群中包括3台双路服务器,所有的cpu军采用intel Xeon Gold 622R

question: 这个集群的总算力是多少?

  1. 总算力:2*16*2*2.9GHz*3=556.8GHz
  2. 注:
  3. 2(第一个):代表每个服务器2颗CPU
  4. 16:一颗cpu16个核心
  5. 2(第二个):代表支持超线程,是的每个物理cpu可以变为两个逻辑cpu
  6. 2.9GHz:代表每个逻辑cpu的主频
  7. 3:代表3台服务器
  8. 注:主频其实并不等于cpu的计算能力,但也是描述cpu计算能力的主要参数,云厂家都采用该参数描述算力

*VM申请资源

1、所有vm划分总算力

  1. #让每个vm可以使用总算力的一部分,划分粒度是基于逻辑cpu划分的(即线程)
  2. #EX:某资源池的总算力为2*16*2*2.9GHz=185.6GHz,其中VM1从总算力中划分2个线程使用,vm2从总算力中划分出3个线程使用。VM1就会获得5.8GHz的算力;vm2获得8.7GHz的算力

2、vm通过配置vcpu"划分"算力

  1. #vm在创建时,通过配置vcpu来控制为其分配的线程数。
  2. #一个vcpu代表要划分一个线程(即逻辑cpu)
  3. #EX:创建一个vm,cpu部分的配置为6vcpu,代表要从算力池中划分6个线程给这个vm使用

3、限制

  1. 一个vm的vcpu个数不能大于物理线程数
  2. #EX:一个资源池共64个线程,一个vm最大可以配置的vcpu的个数就是64个,不能超过64
  3. 可是通过vcpu超分的方法实现资源的充分利用。
  4. #直接划分线程,每个vm的物理资源也不会一直100%,依然从在资源浪费
  5. #超分更充分的复用资源

超分配方案

  1. vm通过分时复用划分资源
  2. #时分复用:当一台服务器上运行的所有vm的vcpu数量超过线程数时,将进入超分配状态,超分配模式下vcpu通过时分复用的方式,按照时间分片轮流使用线程进行计算
  3. #vcpu的算力有可能降低:一个完整的线程如果主频是2GHz,1秒钟可以计算20亿次。当因为超分配有了时间篇轮询时,比如只能使用0.5s,则对这个vm来说相当于1秒钟可以计算10亿次;相当于vm的算力从2GHz变成了1GHz.
  4. 超分情况下vcpu的算力是一个范围:
  5. #最低算力:总算力/vcpu数(所有vm都繁忙时)
  6. #最高算力:vcpu*主频
  7. EX:vm1的最低算力=8/6*2=2.67GHz;最高算力=2*2=4GHZ
  8. 超分配的问题:性能不可预期
  9. #当大多数vm都比较空闲时,性能体验有没有超分区别不大
  10. #当大多数vm都负载非常高时,cpu资源争抢严重,cpu处理不过来导致vm性能下降;如果有的vm比较重要,它的性能无法保障。

cpu资源控制方案

  1. 预留:为某vm预留的算力,算力不够vm无法启动(下限)//默认值为0
  2. 限制:vm的算力不可大于限制的算力 //默认无限制
  3. 份额:多个vm争抢算力资源时,份额高的vm可以抢到更多的算力 //默认值(1000/vm)
  4. vcpu数量越多越好吗?
  5. #在没有超分配的情况下,越多分的资源越多;(每个vm独占物理线程,不存在争抢资源)
  6. #开启超分配的情况下
  7. #负载较高时,反而vcpu越少越好
  8. #vcpu多只代表性能上线高:当大部分vm空闲时,高vcpu的vm能获得更多的资源
  9. #cpu负载较高时vcpu多反而影响性能:因为一个vm的所有vcpu需要等待对应数量的物理线程都空闲了才可以开始计算,所以vcpu数量越多越难等到机会

  1. vm1-4vcpu vm2-2vcpu;两个vm都运行在4线程的资源池
  2. T1时间:4个线程都空闲,vm1获得资源开始计算
  3. T2时间:vm2获得资源,另外两个线程vm1无法使用,因为空闲资源不到4线程(此时浪费2线程的资源)
  4. 单个vm的vcpu越多浪费资源的概率越大

cpu资源的回收

  1. 回收的目的:
  2. #暂时不用的资源可以可以被其他vm使用,实现物理资源的最大化利用
  3. cpu无需回收:
  4. #cpu虚拟化是通过时分复用的方式实现,因此只要vm计算结束就会自定释放资源,其他vm就可以使用空闲的资源

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/564909
推荐阅读
相关标签
  

闽ICP备14008679号