智能、自动化是对系统孜孜不倦的追求,尤其是在资源调度这块。传统的YARN/MESOS有各种资源分配算法,如DRF,capacity scheduler,fair scheduler。这些调度算法聚焦在资源的匹配和分配上面。其中最大的问题设计思路是基于预留的思路,要求应用提出资源的需求,而在现实中往往是不现实的。不现实在两个方面:
-
job需要的资源和需要处理的数据量,过程的复杂度强相关。而这两者在实际的生产系统中都不是一成不变的,所以往往预留的资源要么多大,要么过小。
-
单个job实际上本身也是一个复杂的过程,需要的资源也不是一成不变的。所以按理想的状态预留资源往往不现实,带来的最终结果是资源利用率不高。
关于智能资源调度方面,我早前写过一篇文章《智能调度与蚁群算法》,提的是设想通过蚁群算法来自动分配资源。最近看到stanford的一篇论文《Quasar: Resource-Efficient andQoS-Aware Cluster Management》,通过简单的分类算法就达到了job资源的预测和自动分配,解决了上面提到的2个资源分配的难题。
首先来看下Quasar的基本思路,基本过程对照上面的图,分下面几步:
-
quasar不是基于资源预留和匹配的模式。Quasar提供一个high-level的接口让用户给调度器描述他性能约束条件。不同类型的workload接口不一样。比如对延迟苛刻的workload,限制条件藐视为QPS(查询次数/秒)。分布式框架,如hadoop,限制条件是执行时间。对于单机里面单线程或者多线程workload,限制条件就是low-level的IPS(每秒执行的指令数)。这个主要取决于以哪种资源分配和制定来满足workload.
-
Quasar使用快速分类技术去评估不同的资源分配导致不同的workload性能。一个新进的workload和数据集,需要从一些server上采集一段时间(从几秒到几分钟)。这些有限的采集信息和已有的被分类离线的workload、已经被调度过的workload组合起来。分类的结果准确的估计了应用的性能,考虑各种不同的类型和数量的服务器以及单服务的资源量,排除了其他的一些干扰。Quasar将问题分配的简化成四种主要部分 每个节点 和 节点数,分配的服务器类型 和干扰的程度。这大大降低了分类的复杂性问题。
-
quasar使用分类的结果直接用于资源的分配,消除分配和匹配的二次无效性。quasar使用贪心算法结合四个独立的分类结果,选择数量或具体的资源集,来达到(或接近)的性能约束。Quasar同时监视系统性能。如果在有空闲资源的情况下,约束没有得到满足,即使workload发生了变化(比如job内部阶段变化了)说明分类是不正确的,或贪婪的次优方案到指定结果。只要条件允许Quasar会重新分配资源。
再来看下Quasar达到的效果。
-
Single batch job(纯粹hadoop):平均提升29%到58%。
-
Multiple Batch Frameworks performance(Hadoop,Storm, and Spark混合):提升27%。
-
Large-Scale Cloud Provider:从15%的cpu利用率提升到62%,提升47%。
Quasar的规模也很小,6K行代码。新增一个应用大概需要几百行即可。
总的来说,Quasar这个是非常好的一个思路,是调度的未来发展方向,是非常值得研究和跟进的技术,有兴趣的同学,可以把论文下载下来好好读读。
相关推荐
论文:Stanford Doggo: An Open-Source, Quasi-Direct-Drive Quadruped 。这篇论文展示了 Stanford Doggo,它是一种准直接驱动(quasi-direct-drive)的四足机器人,具有很强的动态运动能力。该机器人能媲美或超过...
斯坦福大学IOS教程:Stanford CS193P 第三课 网易教程上的PDF文档,希望对大家有用
斯坦福大学IOS教程:Stanford CS193P 第二课 网易教程上的PDF文档,希望对大家有用
Stanford OpenIE的Python3包装器 开放信息提取(open IE)指的是从纯文本中提取结构化关系三元组,因此不需要预先指定这些关系的模式。 例如,巴拉克·奥巴马(Barack Obama)出生于夏威夷会创建一个三元组(Barack ...
Stanford, California: Stanford University Press, 1965, 383p., [dollar]8.50 B O O K N O T E S A N D R E V I E W S NEW INSIGHTS ON CHILDREN MCCANDLESS, BOYD R. Children, Behavior and Development....
Stanford Parser 中文句法分析器使用教程 Stanford Parser 是一种功能强大的中文句法分析器,它可以对中文句子进行依存关系分析,生成句法树和词性标注。下面是使用 Stanford Parser 进行中文句法分析的教程。 一...
Memorize-SwiftUI:Stanford类的项目可在Youtube上获得
WordNet是语言学中一个广泛使用的词汇数据库,它将英语单词组织成一组有意义的概念,称为“synsets”(同义...通过这个库,开发者可以在自己的项目中轻松地集成语义理解和词汇分析功能,提升应用程序的智能和准确性。
Stanford Basic是Stanford品牌的Drupal 8基本主题,与集成在一起。 辅助功能 评估日期:2020-02-05 该主题符合大学可访问性政策要求的AA WCAG 2.0级标准。 有关该政策的更多信息,请访问: : 。 安装 像安装其他...
《斯坦福解析器Stanford Parser的使用指南》 在IT领域,自然语言处理(NLP)是一个关键的研究方向,而其中的句法分析是至关重要的一步。斯坦福解析器(Stanford Parser)是由斯坦福大学开发的一个强大的Java工具,...
斯坦福大学 stanfordcorenlp是的Python包装器。 它提供了用于文本处理任务的简单API,例如令牌化,语音标记,命名实体重新命名,选区解析,依赖项解析...nlp = StanfordCoreNLP ( r'G:\JavaLibraries\stanford-corenl
在实际应用中,"stanza-old"被广泛用于新闻分析、社交媒体监控、学术论文挖掘、智能客服等领域。例如,新闻机构可以利用"stanza-old"进行自动摘要,提高报道效率;电商平台则可以借助其进行情感分析,了解用户对产品...
首先,为了在Python中使用Stanford Parser,我们需要下载Stanford CoreNLP的Java版本以及对应的Python库`stanfordnlp`。确保你的系统已经安装了Java运行环境,然后从Stanford NLP官网下载最新的CoreNLP软件包。同时...
Stanford SAIL(Stanford Artificial Intelligence Laboratory)操作系统是计算机历史上的一个重要里程碑,它与PDP-10计算机紧密相关。SAIL是20世纪60年代末至70年代初在斯坦福大学人工智能实验室开发的一套多用户、...
Stanford, CA: Stanford University Press, 203 pp., [dollar]38.50 Psychology in the Schools Volume 25, April 1988 B O O K R E V I E W S GILBERT R. GREDLER University of South Carolina Ross, R...
【标题】"cs476a:Stanford CS 476a Fall 2015的所有代码"指的是斯坦福大学计算机科学系在2015年秋季开设的课程CS 476a的全部源代码集合。这门课程可能专注于特定的计算机科学领域,而“所有代码”意味着学生和研究...
这是Stanford Web Services自助服务平台安装配置文件的主要帮助程序模块,并用作更多内容的基础。 辅助功能 该模块符合大学可访问性政策要求的AA WCAG 2.0级标准。 有关该政策的更多信息,请访问: : 。 安装 像...
数据语言学家在处理自然语言时,常常会使用各种工具和技术,其中Stanford CoreNLP是一个广泛采用的开源工具包,尤其在Clojure编程环境中。本文将深入探讨Stanford CoreNLP的功能、它如何与Clojure结合使用,以及相关...
从官方下载Stanford CoreNLP。 解压缩文件,并将您的CORE_NLP环境变量设置为指向目录。 从pip安装pynlp pip3 install pynlp 快速开始 启动服务器 使用给出的指令对StanfordCoreNLPServer进行劳改。 或者,只需...
CoreNLP服务器 用于CoreNLP管道的node.js网络服务器。 当前仅返回已解析的实体和令牌。 跑步 要运行,只需启动server.js(节点server.js / js server.js) 要求 发布到服务器:8080 / nlp / ner ...需要Stanford的coreN