Page 319 - 《软件学报》2020年第12期
P. 319
周墨颂 等:一种云环境中的动态细粒度资源调度方法 3985
2 细粒度资源调度方法
细粒度资源调度方法(fine-grained method,简称 FGM)根据相似任务运行时信息推测任务的资源需求及持
续时间,并依据资源需求将任务划分为若干执行阶段;分阶段按需求匹配资源和服务器可用计算资源,避免资源
碎片和过度分配等问题,提高资源利用率;根据计算资源的特性,将资源抽象为可压缩资源和不可压缩资源两
类,必要时,在不影响负载完成的前提下,一定程度压缩资源分配,进一步提高资源利用率和负载性能;在运行时
感知服务器上计算资源的使用情况,并动态调整调度策略,保证资源平台高效运行.
FGM 的细粒度体现在两个方面:分配时间粒度方面,资源匹配以任务执行阶段为粒度进行,而不是以任务
的整个执行过程或者某个固定长度的时间为粒度;分配资源量粒度方面,任务执行阶段的资源分配以该阶段资
源需求量为依据,而不是以任务最大资源使用量、人为指定申请量、计算核心及 slot 等进行分配.
2.1 计算资源特征抽象
任务在执行过程中需要多种不同的计算资源,每种计算资源的特性有所差异.对于有些计算资源,如果资源
供给量少于任务需求量,任务的完成时间会被延长,但不影响任务的顺利完成.例如,任务需要 CPU 的所有时间
片进行计算,但是分配到了 CPU 时间片的一半.此时任务仍然可以正常完成,只是任务完成时间会增加一倍.对
于另外一些计算资源,如果资源供给量少于资源需求量,任务则无法正常完成.例如,任务需要 1GB 内存空间,如
果分配量少于 1GB,则任务失败.FGM 依据计算资源特性将计算资源抽象为可压缩资源和不可压缩资源两种类
型,并定义资源压缩率来衡量计算资源被压缩的程度.
定义 1(可压缩计算资源). 在任务执行过程中,如果任务分配到的某种资源少于任务对该资源的需求量,任
务可以通过延长执行时间正常完成,则该资源为可压缩资源;否则为不可压缩资源.
定义 2(计算资源压缩率). 假设在一段时间内资源的需求量为 R r ,资源分配量为 R u .如果资源为可压缩资源,
则该段时间内压缩率 r c 按公式(1)计算;如果资源为不可压缩资源,则其压缩率 r c 始终为 0:
⎧ (R − R )/ R R > , R
r = ⎨ r u r r u (1)
c
⎩ 0, R ≤ R u
r
可压缩计算资源性能变化示意图如图 4 所示,图中的计算资源性能变化可分为两个阶段.
• 第 1 阶段中,计算资源需求小于 100%,资源利用率等于资源需求.此阶段内,计算资源的性能随资源需
求增加而上升;
• 第 2 阶段时,资源需求大于资源总量,资源利用率等于 100%.此时,各任务的资源需求被压缩,服务器上
任务间资源竞争加剧,性能开始大幅度下降.
根据测试所得的可压缩计算资源性能变化数据,FGM 中可压缩计算资源的最大压缩率限制为 10%.当方法
所处的场景发生改变时,应当重新就行测试,并根据测试结果调整最大压缩率限制值.
性能
n+ 1
∑ i wT
i= 1
n
∑ wT
i
i= 1
n
0 ∑ i μ 100% n+ 1 i μ 资源需求
∑
i= 1 i= 1
Fig.4 Performance change of compressible resource
图 4 可压缩计算资源性能变化图
资源压缩的目的是:在可接受范围内延长任务的完成时间,从而换取更高的资源利用率和任务并行数量,最