云计算资源调度:延迟调度与数据感知调度解析
1. 云应用调度基础
不同类型的云应用对服务质量(QoS)有不同要求,因此需要不同的调度策略。尽力而为的应用,如批处理应用和分析应用,通常不需要QoS保证;而多媒体应用,如音频和视频流,有软实时约束,需要统计上保证的最大延迟和吞吐量;具有硬实时约束的应用目前较少使用公共云,但未来可能会有所改变。
常见的尽力而为应用调度算法包括轮询(Round - robin)、先来先服务(FCFS)、最短作业优先(SJF)和优先级算法。轮询调度中,每个线程按循环方式在一定时间片内控制CPU,公平且无饥饿问题;FCFS算法按线程到达顺序使用CPU;SJF算法则按线程运行时间排序。实时应用通常使用最早截止时间优先(EDF)和速率单调算法(RMA)。
2. 延迟调度(Delay Scheduling)
在云计算早期,像Facebook和Yahoo这样的大型IT服务提供商面临着一个重要问题:如何在不牺牲大数据应用的局部性和吞吐量的前提下,同时确保公平性并最大化资源利用率。
2.1 Hadoop调度器问题
Hadoop作业由多个Map和Reduce任务组成,Hadoop主节点的作业跟踪器管理着多个运行在任务跟踪器控制下的从服务器,这些从服务器有用于Map和Reduce任务的插槽。Hadoop使用具有五个优先级级别的FIFO调度器根据任务优先级分配插槽,作业中已在所有服务器插槽上运行的任务数量越少,剩余任务的优先级就越高。
然而,这种基于优先级的分配策略没有考虑数据局部性。在大型集群中,网络带宽远低于磁盘带宽,本地数据访问的延迟也远低于远程磁盘访问。数据局部性会影响吞吐量,服务
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



