Page 321 - 《软件学报》2020年第12期
P. 321

周墨颂  等:一种云环境中的动态细粒度资源调度方法                                                        3987


             定义 3 只约束了相似任务的执行逻辑和输入数据量,而假设需要处理的信息在输入数据中均匀分布.其原
         因有 3 个方面:首先,不同执行逻辑任务的资源使用行为很可能具有明显差异,因此不具有比较性,无法应用于任
         务资源需求推测中;其次,使用执行逻辑相同而输入数据量不同的任务相互推测资源需求时,得出的资源需求结
         果的准确性会受到影响,最终影响 FGM 方法的效率;最后,需要处理的信息在输入数据中通常均匀分布,而在处
         理完成之前分布无法确定.
             FGM 推测任务在每个进度上对各种资源的需求量以及持续时间,某个进度任务 CPU、内存资源需求量及
         持续时间的迭代推测公式如(8)所示:
                                 ⎧ average (ββ  ,β  ),                                            n = 1
                                          ,
                             α = ⎨       n  n+  1  n+  2                                      (8)
                              n    min(Th r r×− 5/ 60,0)  ×  α  +  −  min(Th r r× − 5/ 60,0) ) β  ×  , n >
                                       c
                                                           c
                                 ⎩ e           n−  1  (1 e          n+  2  1
             公式(8)中,α n 为第 n 次推测结果,β n 为第 n 次的任务资源信息,r c 为信息采集时的资源压缩率,Th r 为最大压
         缩率限制系数.公式(8)参考了 Linux 系统资源利用率的计算公式,这样设计可以避免数据抖动影响推测结果.
         FGM 在分配资源中可能对资源需求进行压缩,这会导致相似任务运行时信息的准确性下降.公式(8)在推测时,
         使用资源压缩率动态调整迭代计算中新信息的权重来保证推测结果的准确性.当资源压缩率大于 5/(60×Th r )时,
         推测中认为该信息不具有参考性,在迭代中将该信息的权重降为 0.
             对于推测得出的任务在各进度的资源需求量及持续时间,FGM 依据 CPU 和内存空间资源需求将任务划分
         若干执行阶段,执行阶段的资源需求为阶段内各进度资源需求的最大值.FGM 以一定的周期更新阶段划分,划
         分算法流程图如图 5 所示,图中的 P,P s ,P e 分别代表任务进度、阶段开始进度和结束进度,C max ,C min ,M max 和 M min
         分别表示阶段内 CPU、内存资源需求的最大值和最小值.当阶段内 CPU 或者内存资源需求量的波动达到一定
         幅度且阶段长度达到要求时,将[P s ,P e ]划分为一个执行阶段,直到任务完成.

                        Start                                                 End


                      P s=P e=P=0;       P=P+1;
                    C min=M min=100;      P e=P;            P=100?    Y   New stage[P s,100]
                     C max=M max=0;
                                                               N

                                                            C P>C max?  Y   C max=C P;
                                     C max-C min>Th c*C or
                                 N   M max-M min>Th m*M?
                                                              N
                                           Y
                                                            C P<C min?  Y   C min=C P;

                                        P e-P s>Th p?          N
                                  N
                                           Y                C P >C max ?  Y  C max=C P;
                                      New stage[P s,P e]
                                         P s=P e;              N
                                      C min=M min=100;
                                       C max =M max =0;
                                                            C P<C min?  Y    C min =C P ;
                                                       N


                                  Fig.5    Flow chart of task execution stage division
                                      图 5   任务执行阶段划分算法流程图
   316   317   318   319   320   321   322   323   324   325   326