Page 325 - 《软件学报》2020年第12期
P. 325
周墨颂 等:一种云环境中的动态细粒度资源调度方法 3991
14. s.compressible=true;
15. end if
16. end for
算法遍历服务器集合中所有服务器,根据服务器上问题的严重程度,依次调整服务器的调度策略:如果服务
器近期平均资源符合度大于阈值 Th sa ,则停止分配该服务器资源,并根据该服务器上任务完成情况采取进一步
措施(第 2 行~第 6 行);如果服务器近期平均资源符合度大于阈值 Th cg 而小于 Th sa ,则将该服务器调度策略调整
为粗粒度匹配(第 7 行、第 8 行);如果服务器近期平均资源符合度大于阈值 Th fg 而小于 Th cg ,则将该服务器调度
策略调整为不可压缩的细粒度调度(第 9 行~第 11 行);如果服务器近期平均资源符合度小于阈值 Th fg ,则将该服
务器调度策略调整为细粒度调度(第 12 行~第 15 行).
3 细粒度调度器架构与实现
本文基于细粒度资源调度方法,在 Yarn 平台中设计并实现了细粒度资源调度器,其架构图如图 6 所示.图中
的调度模块为细粒度调度器的核心,负责与 Resource Manager 通信,并应用调度算法协调各个调度模块,完成整
个调度过程.为了保证调度的高效,本文将信息处理、需求推测、约束检查、策略管理和压缩管理等功能从调
度模块中抽离,设计为独立的模块.信息推测模块负责处理、存储任务及服务器节点汇报的运行时信息,推测任
务资源需求和服务器资源的可用性,并周期性地划分任务执行阶段.信息推测模块与调度模块异步运行,它不保
证向调度模块提供包含最新运行时信息的推测结果,极大地减少了运行时信息处理、资源信息推测、执行阶段
划分等工作对调度的影响.策略管理模块负责管理资源分配、公平性等策略,并根据配置与服务器当前的资源
调度策略等向调度模块提供各种策略支持.策略管理模块支持在运行时添加资源匹配、公平性策略及更改策略
配置,默认的公平性策略为主资源公平.约束条件检查模块用于保证调度决策生效后,服务器上所有运行中任务
的服务质量约束条件都能得到满足.约束条件检查模块并不等待完成资源匹配等步骤之后才开始检查,它与资
源匹配同时工作,如果资源匹配等前置步骤未通过,则检查工作直接停止.这样的预检查机制很大程度上提高了
调度请求的处理效率.策略调整模块异步运行于调度模块,它存储各服务器各资源近期资源推测符合度,并根据
服务器的资源推测符合度及任务完成时间信息自动调整服务器的资源调度策略.压缩管理模块从信息推测模
块和策略调整模块获取服务器运行中任务信息、待匹配任务信息以及服务器当前资源调度策略等信息,并根据
相关信息计算服务器各阶段各资源的最大资源压缩率,供调度模块在匹配中使用.
细粒度 资 任务资源
资源匹配 源 需求推测
粗粒度 分 节点资源 压缩管理
资源匹配 配 可用性推测
策
略 信息推测
...
Node manager
任务资源信息收集
策略管理 调度模块 策略调整 节点资源信息监控
...
先来先服务 Application master
公
内存资源公平 平 应用注册
性 调度约束条件检查 Resource manager
主资源公平 策 资源申请
略 ...
...
Fig.6 Architecture of the fine-grained scheduler
图 6 细粒度调度器架构图