引言:集群利用率100%意味着什么?从某种意义上来说,Mesos集群上没有任何空闲资源时,就可以说达到了100%的利用率。 
但是,即使某个框架为某个任务(比如一个web服务器)预留了资源,该任务可能并不会完全使用所有这些资源。实际上,在大多数集群上,实际使用率仅仅有10%~30%。为了解决这个问题,Mesos推出了超配特性。该特性允许Mesos集群自动使用预留但是未使用的资源。 
本文选自《用Mesos框架构建分布式应用》。

  Mesos超配特性是基于Google的Heracles系统,是解决低实际使用率问题的方案。 
 要理解超配,首先需要定义slack。slack是指认为被使用了的资源和实际使用的资源之间的差。 
                
                   CPU、内存的分配slack和使用slack

  降低slack是所有人的共同目标:slack纯粹是浪费,这里的资源本来可以做一些有产出的事情,却白白空闲着。Mesos集群里有两种类型的slack:

分配slack

  分配slack(allocation slack)是集群上的可用资源和框架预留资源之间的差。Mesos从设计上就可以高效解决这一类型的slack,通过向所有连接着的框架重复重新提供资源来实现。这样,如果某个框架不需要或者无法利用某些资源,其他框架就有机会使用这些资源。一些框架,比如Spark,通过启动很多使用少量资源的小型任务来利用这一点,这样它们能够在很多机器上得到很小的资源分配,从而提高集群的利用率,并且将这些资源贡献给用户。

使用slack

  使用slack(usage slack)是预留资源和实际使用资源之间的差。比如,如果web服务器预留了两个CPU,但是在没有太多待处理请求的非高峰时段,它几乎不用使用任何资源。超配特性帮助Mesos降低这一类型的slack。 
  从某些方面来看,Mesos成了自身成功的受害者:Mesos集群里能够大幅降低分配slack,商业生产环境集群的分配slack为5%~15%,这比前面所述系统的20%~30%可低得多。因此,企业联盟,包括Twitter、Mesosphere和Intel,开始构建一种能够降低Mesos使用slack的系统。它们工作的产出就是Mesos超配系统,在很多资源的使用slack上应用控制理念。 
  要启用超配,Mesos为此添加了一种新类型的资源offer:可撤销offer。可撤销offer和常规offer几乎完全一样,除了这一点:在可撤销offer上启动的任务可以随时被Mesos“杀死”。默认情况下,框架不会接受任何可撤销offer。在注册时向FrameworkInfo里添加REVOCABLE_RESOURCES功能就能选择接受可撤销offer。如果Mesos集群还被配置为启用超配机制,那么任何选择接受可撤销offer的框架在看到常规offer时,也会看到另一种类型的offer,这些特别的offer带有revocable字段,这意味着它们在任何时间都可以被取消。注意当前执行器必须有可撤销的或者常规的资源,无法在相同的执行器上启动可撤销和非可撤销任务的混合体。 
  超配系统包含两个可插拔组件:资源估算器和服务质量(QoS)控制器。资源估算器的工作是向其slave报告运行着的任务里有多少可用slack,从而slave能将这些额外资源作为slack发布出去。QoS控制器的工作是跟踪使用slack。当使用slack降低,低于分配给可撤销资源的资源时,QoS控制器就会开始“杀死”可撤销任务,确保集群能够保证预留资源的提供。 
  在Mesos 0.23里,只有一个固定的资源估算器,集群管理员可以让所有slave都发布其固定的额外资源。当大多数任务请求的是一个或者两个CPU,但是却仅仅使用了其资源的5%~10%时,该功能就很有用了。固定的资源估算器会允许每个slave上调度比实际CPU更多的任务。Mesos 0.23仅仅发布了一个不工作的QoS控制器。 
  Mesosphere和Intel还构建了Serenity,这是一个精妙的控制系统,周期性地衡量每个slave上的使用slack,以便集群能够利用这些资源。Serenity还知道如何估算烦人邻居问题的影响,如何区分正在启动的任务和达到稳定状态的任务,以及其他一些优化集群使用率所必需的实用的调整方案。 
  超配是一个强大的新特性,可以帮助大型集群多利用10%~40%的资源。超配引入的可撤销资源并不仅仅在分配slack资源时有用,它们还构成了优先任务的基础。 
  本文选自《用Mesos框架构建分布式应用》,点此链接可在博文视点官网查看此书。 
                    

  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                       

Mesos超配:让集群利用率可以达到100%相关推荐

  1. 无惧浩瀚数据 超云XS5000集群存储为扩展而生

    伴随着信息化技术的发展,我们正在加快步入数字时代的进程.根据IDC的报告显示,全球每年数据增长幅度超过58%,预计到2020年,全球数据总量将超过40ZB(1ZB约等于1万亿GB).面对海量数据的激增 ...

  2. 【腾讯云原生降本增效大讲堂】Kubernetes集群利用率提升实践

    嘉宾 | 宋翔 出品 | CSDN云原生 2022年7月7日,国内首次由信通院.腾讯云.FinOps 产业标准工作组联合策划的<原动力 x 云原生正发声 降本增效大讲堂>第三期直播上,腾讯 ...

  3. 深度解读 | ElasticDL 深度学习框架简化编程,提升集群利用率和研发效率的秘诀...

    文 / 蚂蚁集团, ElasticDL 主力工程师 齐俊 ElasticDL 是一个基于 TensorFlow 2.x 和 Kubernetes 的开源的分布式深度学习编程框架.2019 年秋天的 G ...

  4. linux集群课程,超全Linux集群技术高俊峰-实战式教学视频课程(43讲全)

    超全Linux集群技术高俊峰-实战式教学视频课程(43讲全) 1.jpg (63.6 KB, 下载次数: 0) 2016-4-27 11:41 上传 1.jpg (38.51 KB, 下载次数: 0) ...

  5. Mac M2芯 超详细k8s集群实战 - kubeadm

    概述 我们准备搭建kubeadm的master+worker集群,实现k8s集群,master.worker在虚拟机上来执行,中间遇到了超级多的坑,都搞定了之后,在这里系统的总结一下,这也是一篇学习笔 ...

  6. Redis集群搭建~Redis-x64-3.2.100版本

    参考文档: https://www.cnblogs.com/yaopengfei/p/12418227.html https://blog.csdn.net/weixin_42694286/artic ...

  7. 如何利用Kubernetes集群提升资源利用率?

    导语 | 近日,云+社区技术沙龙"高效智能运维"圆满落幕.本期沙龙围绕运维展开了一场技术盛宴,从AIOps.Serverless DevOps.蓝鲸PaaS平台.K8S等分享关于业 ...

  8. 云计算学习总结(1)——PaaS云平台部署之在Centos7搭建Mesos+Zookeeper+Marathon+Docker单机集群

    ----------------------------------------------------------------------------------- ========Mesos+Do ...

  9. 云计算学习总结(1)——PaaS云平台部署之在Centos7搭建Mesos+Zookeeper+Marathon+Docker单机集群...

    ----------------------------------------------------------------------------------- ========Mesos+Do ...

  10. CEPH集群操作入门--配置

    https://www.cnblogs.com/luxiaodai/p/10006036.ht CEPH集群操作入门--配置l CEPH集群操作入门--配置 阅读目录(Content) 概述 配置 存 ...

最新文章

  1. usaco Stringsobits
  2. python_字符串有时可以比较大小哦!
  3. 你所忽略的Linux系统安全及应用(最全面)
  4. linux脚本实现复制,Shell脚本实现复制文件到多台服务器的代码分享
  5. 模拟jquery链式访问
  6. mysql command line client闪一下消失
  7. 一个html中同时引入js和ts,《使用require在ts里引入js》
  8. (转)悟透javascript
  9. matlab样本标准差,关于样本标准差(SD)与样本标准误差(SE)
  10. Android控件 TabHost,Android控件开发之TabHost
  11. swfupload 无法加载_解决SWFUpload的按钮图片加载慢的问题
  12. Ubuntu16.04 安装Redis哨兵模式
  13. 高分一号WFV影像云检测工具(免费)
  14. STM32CubeIDE使用总结(三)——debug调试程序
  15. VCS仿真学习(5)Debugging with DVE
  16. 国内部分视频剪辑软件使用总结
  17. MATLAB机器人可视化
  18. go语言判断文件是否为UTF8编码
  19. 高性能 JavaScriptの五 -- 快响应用户界面
  20. 2018“人工智能”:是彻底复苏?还是起落轮回?| 抢票

热门文章

  1. centos安装python3.7和yum报错解决方法
  2. windows10 右键 manage 没反应
  3. 洛谷P1880 石子合并 区间动归
  4. Android Bitmap 开源图片框架分析(精华四)
  5. 机器学习概念笔记(1)——混淆矩阵、Precision、Recall、F-score
  6. Linux操作系统中sed工具常见用法
  7. pytest特色与实用插件
  8. expect远程登录服务器并执行命令
  9. C#之Application.DoEvents()
  10. 利用JQuery在动态页面的倒计时器