论文部分内容阅读
随着云计算的发展,其业务量呈现持续性增长的趋势,业务内容不断多样化。同时,随着集群中底层资源的更新换代,硬件异构性不断提升,共享云中的资源竞争难以刻画,进一步加剧了应用运行环境的复杂性,给资源调度构成了严峻挑战。在此背景下,资源管理系统(Resource Management System,RMS)呈现出去中心化的发展趋势,松耦合、多层次的特点日益凸显,资源调度策略更加丰富,优化目标更加多样。高效的资源调度不仅能够减少各应用间共享资源导致的性能干扰,保证优质的用户体验;而且能显著减少资源碎片化现象,提高数据中心资源利用率和云服务提供商的经济效益。针对当前调度系统软件栈中跨层次决策信息缺失导致的调度效率低下问题,提出了基于纵向标签的时空共享调度抽象,设计并实现了面向云操作系统(Cloud operating system)和应用框架的协同调度机制TPShare。由于当前调度系统软件栈涵盖了应用层、云操作系统、虚拟层和操作系统等多个层次,而各层次的调度策略、执行机制缺乏协同性、互补性,往往导致其调度效率的损失(如资源利用率低,应用性能易受损失)。为解决该问题,TPShare调度方法的主要贡献包括(1)设计了基于纵向标签的时间/空间消息传递机制,实现了云操作系统与应用框架间跨层次通信,有效提高了性能攸关信息的感知度;(2)提出并设计了细粒度的资源供给优化方法,实现了资源按需供给,提高了云操作系统吞吐量;(3)设计了负载感知的资源过滤方法,提高了调度质量;(4)设计了应用端全局资源感知的资源扩展方法,提高资源利用效率,并降低了应用尾部延迟。针对当前调度系统中调度延迟和调度质量难以平衡的问题,提出了一种基于B+树和BSP(Bulk Synchronous Parallel)模型的集中式调度器设计方案Treator。为降低集中式架构下的高调度延迟,去中心化架构模式得到了更多关注。一方面,去中心化架构下多个调度器实例可以有效分摊资源请求,减少排队等待;另一方面,潜在的访问冲突往往使其调度决策局限于资源子集,因而缺乏全局最优性。为解决该问题,Treator方案的主要贡献包括(1)根据传统B+树层次化强,富有动态性的结构特点,设计并实现了集群资源信息的有序化存储,减少了资源检索开销;(2)设计了面向用户的策略标签机制和自动化配置模块,提高了集群调度层资源分配策略的灵活性,保证了调度决策的质量;(3)首次将数据库领域的关键技术方法转化运用到资源调度领域,赋予前者的相关操作以调度语义,实现资源调度功能。同时,设计了基于块同步并行处理模型的资源分配方式,实现了多线程无干扰的并发处理,提高了单位时间内的调度能力,进一步减少了作业排队时间。针对共享云中资源预留策略导致的资源碎片化问题,设计了面向Executor-based数据分析系统的CPU时间碎片回收和再利用机制Para。由于资源过分配现象普遍(资源分配量往往大于实际使用量),闲置资源在物理(即大小)、时间维度上呈现高度动态性,且资源管理系统与应用之间的运行时语义鸿沟广泛存在,导致了当前RMS中资源“占而不用”问题突出,对碎片化资源的开发利用难度大。为解决此问题,Para方案的主要贡献包括(1)根据面向运行实例(如Spark中的executor)的资源分配与任务调度相解耦的特点,提出并设计了基于任务调度事件的资源状态监测方法,及时准确发现空闲CPU资源;(2)提出了应用运行实例和资源管理系统之间的资源状态通信方法,提高了RMS对应用层资源碎片的感知度;(3)设计并实现了面向高优先级作业的碎片化资源回收和面向低优先级作业的投机式调度机制。实验证明,Para不仅有效提高了集群任务吞吐量和资源利用率,而且保证了高优先级应用的性能。提出的跨层次调度协同方法主要针对应用层和云操作系统层,并涉及节点操作系统所管理的资源状态信息和资源隔离机制(即Cgroups),但尚未考虑共享环境下虚拟层和操作系统中的资源调度机制及相应的协同优化研究。作为未来工作,节点操作系统(如Linux)中的调度器设计和优化将作为重点研究对象,如面向应用和体系结构的进程调度等。