专栏首页博文视点BroadviewMesos超配:让集群利用率可以达到100%

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

小编说:集群利用率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资源时有用,它们还构成了优先任务的基础。

本文分享自微信公众号 - 博文视点Broadview(bvbooks),作者:博文视点

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 书单丨构建响应式微服务架构——5本书了解微服务最新动向

    《Spring响应式微服务:Spring Boot 2+Spring 5+Spring Cloud实战》

    博文视点Broadview
  • Web应用开发周期

    在我所经历的项目以及我所看到的Web应用里,它们都有相同的很有意思的生命周期。我们经常在网上看到某个知名的网站使用某个新的技术、语言来替换旧的系统,某个App使...

    博文视点Broadview
  • 学习强化学习无法避开的两个词:Model-Based与Model-Free

    在学习强化学习的过程中,有两个名词早晚会出现在我们面前,就是Model-Based 和Model-Free。在一些资料中,我们经常会见到“这是一个Model-B...

    博文视点Broadview
  • 使用MySQL这么久,你了解sql_mode吗?

    前面一篇文章《案例| +1s导致的故障》介绍了因为开发同学对datetime值+1s的操作导致的问题。我们在复盘的时候讨论设置sql_mode为严格模式可行性。...

    用户1278550
  • 干货 | Tomcat类加载机制触发的Too many open files问题分析

    作者简介 宋顺,携程框架研发部技术专家。2016年初加入携程,主要负责中间件产品的相关研发工作。毕业于复旦大学软件工程系,曾就职于大众点评,担任后台系统技术负责...

    携程技术
  • HTML中的meta

    HTML <meta> 元素表示那些不能由其它HTML元相关元素 (<base>,<link>,<script>,<style> 或 <title>) 之一表示...

    刘亦枫
  • VSCode同步扩展配置神器

    vscode工具就不介绍了,这已经是不能再谈的话题了。今天分享的是多台设备之间如何同步配置的问题。比如公司一台电脑,家里一台电脑,要想做到两台电脑上的配置、扩展...

    A梦多啦A
  • 干货 | 高盛:2017人工智能报告中文版(附PDF版下载)

    关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 高盛人工智能报告中文版 人工智能是制...

    昱良
  • python http OPTIONS请

    通过发送http OPTIONS请求,可以获取 http允许的方法(我这里主要测试网站是否开启webDav),测试如下:

    py3study
  • Windows 7下硬盘安装Ubuntu 13.10图文教程

    之前一直在虚拟机里玩Linux了,昨天忽然兴起想往真机里装一个,昨天找到的方法,今天折腾了半天终于装好啦。

    汐楓

扫码关注云+社区

领取腾讯云代金券