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
《大数据经典论文解读》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- bearlu老师,Task 使用的资源可能是动态变化的,是用什么技术动态实现?2022-01-101
收起评论