大数据经典论文解读
徐文浩
bothub 创始人
13844 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 59 讲
大数据经典论文解读
15
15
1.0x
00:00/00:00
登录|注册

35 | Borg(二):互不“信任”的调度系统

你好,我是徐文浩。
在上节课里,我们一起学习了 Borg 的整体架构。从架构层面来看,Borg 和其他的 Master-Slave 系统,其实都是类似的。其中比较大的一个挑战,是 Borg 需要管理万级别的机器。虽然 Borg 的 Master 集群,仍然是一个会选举出 master 的 Paxos 实现。但是除了 master 之外的其他副本,也需要去承担和 Borglet 通信的职责,而不仅仅是一个同步数据的副本。不过除此之外,在整体架构上,Borg 就没有太多的特殊之处了。
而对于 Borg 来说,真正的挑战还是在对于一个个 Task 的调度上。Borg 需要回答三个问题:
第一个问题是,当一个 Job 被发给 Master 的时候,我们究竟应该把它的 Tasks 调度到集群的哪一台机器上去?
第二个问题是,如果用户提交的 Job,Task 里实际消耗的资源和它申明的资源差异很大怎么办?
第三个问题是,在不同的 Task 之间互相竞争 CPU 资源的情况下,虽然看似 CPU 的利用率很高,会不会所有的资源都用在了上下文的切换上,而不是实际的 Task 的运算上?
那么今天这节课,就是要来回答这三个问题,理解了这三个问题,对于我们理解设计系统的工程实践会很有帮助。
我们设计的系统,不只能停留在自己的理论思考之中,还需要考虑实际用户会如何使用我们的系统,把“人”的因素一并考虑进来,才能设计出经得起时间考验的大型系统。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Borg系统是一个用于管理大规模机器集群的调度系统,面临着任务调度、资源申请和利用率等挑战。文章介绍了Borg系统如何应对开发者“贪心”申请资源的情况,以及通过超卖和动态资源回收来提高集群利用率。Borg的调度器采用了轮询方式,先调度高优先级任务,再调度低优先级任务,保障公平。在资源分配过程中,Borg考虑了多个因素,如避免重新下载任务程序包、减少抢占正在运行任务的资源、分布式服务的位置选择等。此外,Borg采用混合部署模式,同时运行在线的高优先级生产任务和离线的低优先级批处理任务,以及细粒度的资源分配,但也需要注意CPU资源竞争和上下文切换的影响。为了解决CPU资源利用率和性能问题,Borg测算了运行任务的CPI,发现混合部署对任务性能影响较小,而CPU利用率的提升是划得来的。总的来说,Borg系统通过其独特的资源管理策略和性能评估方法,为大规模机器集群管理提供了一种高效的解决方案,展现了其在技术特点上的独特优势。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据经典论文解读》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • bearlu
    老师,Task 使用的资源可能是动态变化的,是用什么技术动态实现?
    2022-01-10
    1
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部