基于负载均衡的边缘计算任务调度策略
Lintan Sun,Zigan Li*,Jingxian Lv,Chenfei Wang,Yajuan Wang,Long Chen 和 Dong He
国家电网有限公司客户服务中心信息运维中心,中国
关键词: 边缘计算, 负载均衡, 二次分配。
摘要
随着万物互联的快速发展和广泛应用,为了应对移动终端处理的数据量和计算规模日益增加,以及现有调度算法负载不均衡和资源利用率低的问题,本文提出了一种基于业务优先级的任务调度算法。该算法首先根据服务的优先级对服务进行划分;其次,利用计算任务组的标准差确定长短服务的比例,并建立动态选择模型;最后,依据二次分配的思想,将重负载的任务分配给轻负载资源的调度策略执行,并建立服务重分配模型。仿真结果表明,与典型算法相比,所提出的算法在完工时间和负载均衡方面取得了综合优化的效果,提升了系统效率。
1 引言
在万物互联时代,万物互联产生了海量数据,现有云计算模型的网络带宽和计算资源无法高效处理这些数据。因此出现了边缘计算技术。移动边缘计算技术将需要处理的服务下发到更靠近用户终端的边缘计算服务器,解决了移动终端计算能力不足、硬件条件差以及与云端距离过远导致延迟响应过高的问题。
在边缘计算技术的应用全过程中,完成一项商业计算需要边缘计算服务器的通信资源和计算资源。因此,通过优化计算资源分配策略,可以减少计算过程所需的时间和系统损耗,如图1所示。在[3]中,通过博弈算法与匈牙利算法的相互迭代来解决资源分配优化问题,从而降低计算能耗和延迟。在[4]中,任务卸载问题被表述为一个混合整数非线性计算过程,将降低延迟问题转化为两个子问题:任务卸载放置问题和资源分配。文献[5]结合用户费用与任务截止时间构建合理的用户优先级,并采用改进的离散粒子群优化实现云计算任务在短时间内达到最优调度。
基于最小‐最小调度算法和最大‐最小调度算法及相关研究,本文进行了改进,根据不同的优先级对任务集进行划分,设计了长短任务集的标准差匹配函数,并提出了一种改进算法。结合两种调度算法的优点,实现了资源任务的良性匹配,并在预分配完成后增加二次分配机制,充分利用预分配阶段的空闲资源,从而进一步减少计算时间,提高负载均衡。
2 系统建模
2.1 商业等待队列模型
当移动终端将待卸载的服务传输到边缘服务器时,该服务首先被存储在服务调度器中。服务调度器根据服务的重要程度进行划分,并按重要程度从大到小排序,根据不同服务的最短完成时间差异形成不同优先级区域的任务调度队列 D{S1, S2, S3, S4, S5,…,Sl}。服务 Tn 在排序后的优先级和最短完成时间的具体参数设置为 Tn={IDTn, DaTn, WTn, PTn}。其中:IDTn 是服务的编号;DaTn 是服务的数据量;WTn 是服务传输到边缘服务器后在服务调度队列中的等待时间;PTn 是服务的重要程度。服务的重要程度越高,其服务调度的优先级也越高。
2.2 边缘计算服务器资源调度模型
本文考虑了多任务和多边缘服务器的分布式计算场景。在边缘计算网络中设置一个服务器,使用集合 S={S1, S2, S3, S4, S5,…,Sl}。对于集合 S 中的任意服务器 Sm,该服务器的具体参数配置可以表示为集合 Sm={IDm, Cm, Pm, Wm},其中各个参数的具体含义如下:IDm 表示边缘计算服务器的编号标识,作为区分服务器的依据;Cm 表示边缘计算服务器的计算能力;Pm 表示边缘计算服务器的优先级;Wm 表示边缘计算服务器的就绪时间。
从参数可以看出,边缘计算服务器计算任务 Tn 所消耗的时间为 tn = DaTn / Cm。资源调度器根据优先级 Pm 对边缘计算服务器进行排序,形成资源调度队列,便于后续传输服务的资源匹配。
3 基于标准差和二次分配的边缘计算任务调度策略
3.1 基于标准差的一次预调度资源分配算法
本文中,研究场景下的边缘计算服务器数量少于移动终端数量,即服务数量,且所有服务器在初始状态下的工作状态为空闲。优先分配优先级最高的服务集。首先计算该服务集中所有服务的最小完成时间标准差,并得到第i个服务的最短完成时间 ETCi、边缘计算服务器的就绪时间 Wm 以及服务的计算时间。公式如下:
$$
ETC_i = W_m + t_i \tag{1}
$$
其中,ETCi 表示第i个服务的最短完成时间;Wm 表示第m个边缘计算服务器的就绪时间;$ t_i = \frac{DaT_i}{C_m} $ 表示第m个边缘计算服务器计算任务 Ti 所消耗的时间。
因此,业务集中的所有服务的最短完成时间标准差 SD 可以表示为:
$$
SD = \sqrt{\frac{\sum_{i=1}^{s}(ETC_i - \text{aveETC})^2}{s}} \tag{2}
$$
其中,s 表示服务集中的服务数量;ETCi 表示第i个服务的最短完成时间;aveETC 表示服务集中所有服务的最短完成时间的平均值。
根据算法的描述,基于标准差的一次预调度资源分配算法描述如下:
输入:任务集 Ti,边缘计算服务器 Sm,ETC矩阵
输出:任务集完成时间,每个边缘服务器的工作时间
1) 对任务集中的每个商业进行循环
2) 对每个边缘服务器进行循环
3) $ ETC_i = W_m + t_i $
4) 结束循环
5) 结束循环
6) 找出每个商业的最小预期完成时间,并按时间大小升序排序
7) 计算标准差 SD
8) 找到服务集中待完成的两个连续服务的预期执行时间之差是否大于标准差 SD 的位置 p,判断 p 是否在服务集的前半部分,如果是则跳转到步骤 9);否则跳转到步骤 10)
9) 使用最小‐最小算法来分配服务,并将该服务从待分配服务集中删除。
10) 使用最大‐最小算法分配服务,并将该服务从待分配服务集合中删除
11) 确定是否所有服务都已分配,如果是,则进入步骤 12);否则跳转到步骤 1)
12) 结束
3.2 基于重分配边缘计算服务器的资源分配算法
在完成服务优先级分组和预调度后,仍可能面临负载不平衡的问题。此时,执行时间最长的边缘计算服务器上的算法尝试通过二次分配算法将任务分配到其他资源上。对于其他资源,可通过减少完成时间后再进行分配,从而实现负载均衡。二次分配的具体操作如下:
(1) 高负载边缘计算服务器的服务按照执行时间升序排列。
(2) 如果将负载较重的边缘计算服务器上执行时间最短的服务分配给其他边缘计算服务器,则更新所有边缘计算服务器的负载时间。
根据算法描述,基于重新分配的资源分配算法描述如下:
输入:任务集 Ti,边缘计算服务器 Sm,ETC矩阵
输出:任务集完成时间,每个边缘服务器的工作时间
1) 对执行时间最长的边缘计算服务器上的所有服务进行 FOR 循环
2) 对于其他 m−1 个边缘计算服务器的 FOR
3) 如果(分配完成后,系统完成时间不增加,且每个边缘计算服务器的执行时间不大于系统完成时间)
4) 重新调度业务集
5) 更新每个边缘计算服务器的工作时间 Wm
6) 结束如果
7) 结束循环
8) 是否已遍历所有服务,如果是则跳转到步骤 9);否则跳转到步骤 1)
9) 结束循环
在输出“每个边缘服务器工作时间”后,计算各边缘计算服务器工作时间的标准差,作为负载均衡的指标,公式如下:
$$
SD = \sqrt{\frac{\sum_{j=1}^{M}(W_j - \text{aveW})^2}{M}} \tag{3}
$$
其中,M 表示边缘计算服务器的总数;Wj 表示第j个边缘计算服务器的就绪时间;aveW 表示所有边缘计算服务器就绪时间的平均值。
4 模拟与分析
4.1 模拟条件
为了应对实际网络环境的复杂性和多变性,本文在模拟真实网络环境时,应充分考虑服务与边缘计算服务器资源异构性对边缘计算业务调度算法的重要影响,即充分考虑两者交互作用下调度算法的性能。本文通过 MATLAB 实验平台完成调度策略的模拟,在 6 组服务上进行对比实验,每组包含 30–80 个数据,并根据经验数值设置模拟平台的相关参数。
基于将服务卸载到边缘计算服务器,本文提出的算法与传统的最小‐最小调度算法和高优先级(TPMM)调度策略进行了比较。TPMM 调度算法按照服务优先级从高到低的顺序分配资源,能够始终确保高优先级服务获得足够的处理资源,并在一定程度上实现负载均衡优化。在模拟中,对比了不同调度策略在处理相同数据量时所消耗的计算时间以及具有不同计算能力的边缘计算服务器的负载情况。
4.2 结果分析
在服务和服务器计算资源具有低异构性的前提下,三种服务调度策略的消耗时间及负载均衡标准差如图2所示。通过对比可知,在服务数量从30增加到80的整个过程中,主算法所采用的调度算法耗时最少,其次是 min‐min 算法,TPMM 算法耗时最多。
然而,在服务器负载均衡方面,TPMM 算法的表现优于 min‐min 算法。这是因为本文提出的算法考虑了服务等待队列的最短完成时间标准差,从而能够确定整个服务集中长任务和短任务的比例,使得可以在预调度阶段动态选择使用 min‐min 或 max‐min 算法来应对不同情况。同时,补充了二次调度机制,以进一步降低延迟并优化负载均衡。
在业务和服务器计算资源具有高异构性的前提下,三种服务调度策略的消耗时间及负载均衡标准差如图3所示。在此情况下,最小‐最小算法表现较差,负载均衡标准差急剧上升,甚至出现多个边缘计算服务器长时间空闲的情况,导致资源利用率严重下降。TPMM 算法在保证负载均衡的同时,根据最小延迟分配服务,并适应服务优先级,因此该算法的时间延迟指标有所增加,但获得了更低的负载平衡标准差。本文提出的算法由于采用了预分配算法的动态选择和二次分配策略,提高了资源利用率并减少了工作时间。
完工时间(b)负载均衡)
完工时间(b)负载均衡)
5 结论
边缘计算将网络、计算、存储等集成在网络边缘,以提供智能服务。边缘计算环境中的任务调度算法是边缘计算技术研究中的核心问题,已受到研究人员的特别关注。本文重点研究网格任务调度算法在计算性能和负载均衡方面的性能。针对最小‐最小调度算法的不足,提出了一种基于任务分组和二次分配的服务调度算法。实验结果证明了所提出算法的有效性。实验结果表明,该算法通过前后两次优化,达到了降低服务调度延迟、降低服务器负载均衡标准差以及提高资源利用率的效果。

308


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



