您的位置 首页 > 数码极客

【m是什么单位】OpenShift中CPU限额单位m是个什么

小红帽的OpenShift旨在建立PaaS服务平台。也就是说,这个平台一定会有其他企业客户租用资源。

不同的企业,不同的进程在使用共同的物理计算资源,如何保证各个客户的应用不过度地占用资源,非常重要。
  一个PaaS服务平台也有点像一个美食城。在物业管理层面上,美食城对来租店面经营餐饮业务的商家除了限制其营业面积(出多少钱,租多大店面)之外,还要有其他的限制或管理。比如,门前的公共通道的卫生、拉客的方式、店面的装修风格、播放音乐的音量、补给食材和物资的时间和路线、安装电器的功率等等,都要有具体的管理办法。否则,出现纠纷与冲突,会影响整个美食城的经济效益。
  同理,为打造PaaS“美食城”而生的OpenShift也必须提供控制资源的技术手段。该有的,肯定会有。OpenShift提供了两种资源控制方法:一种是控制对象的数量,如:
  ·豆苞(pod)
  ·再生器(rc- replication controller)
  ·服务(service)
  ·密文(secret)
  ·永久卷请求(pvc – persistentvolumeclaim)
  以上对象都是以数量来控制的。
  另一种则按照计算使用量来控制,如存储、内存的大小和CPU的总使用量。存储、内存的使用量是以Gi为单位的,即GiB。
  1 GiB = 1073741824 bytes = 10243 B = 230 B
  而CPU的使用单位却是m,而OpenShift的教材上则写道:m means millicores,即m是“毫核”。毫核,是个什么鬼?OpenShift官方网站上,这样写道:
  CPU的计量单位叫毫核。集群中的每一个节点可以通过操作系统确认本节点的CPU内核数量,将这个数量乘以1000,得到的就是节点总的CPU总数量。如,一个节点有两个核,那么该节点的CPU总量为2000m。如果你要使用单核的十分之一,则你要求的是100m。
  还是有点晕,继续在网上翻找,终于我在Kubernetes的网站上找到相应的说明。顺便提一下,OpenShift使用的是Kubernetes + Docker + Etcd及其他开源技术栈构建起来的。原来,在一个豆苞内,Kubernetes通过两个参数来限制CPU的使用,即:
  [].re
  //主动限制。这个月销售额必须达到1000万,否则给我卷铺盖走人。
  [].re
  //主动请求限制。张飞大叫:只拨三千军与我去取武陵郡,活捉太守金旋来献!
  而这个m的单位,则是将一个cpu抽象化,分成1000等份。每一份即为一个millicore,即千分之一个核,或毫核。跟米与毫米的关系是一样的。而且,Kubernetes的一个CPU核概念与下面各家的概念是等同的:
  ·1 AWS vCPU
  (1个亚马逊云虚拟核)
  ·1 GCP Core
  (1个谷歌计算平台核)
  ·1 Azure vCore
  (1个微软Azure虚拟核)
  ·1 IBM vCPU
  (1个IBM虚拟核)
  ·1 Hyperthread on a bare-metal Intel processor with Hyperthreading(Intel超级线程物理CPU上的1个线程)

  这个限制最小的单位是100m,不允许制订更小的精度,如限制为90m或120m,只能以100为基数增减。有时候,也写作0.1。Intel的处理器的核的计算能力,恐怕各代产品都有所不同,所以这种限制也是相对的,是一种模糊的控制。但总比没有控制要好。

  当然,本文只是作者对OpenShift这个宏大的云计算系统进行的一次卑微的管窥,希望能激发读者的兴趣,形成一个记忆点。是一面之缘,还是终身朋友,就看你的了。

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐