边缘计算中数据放置与任务调度联合优化

面向提升边缘计算用户体验的数据放置与调度联合优化

摘要

近年来,边缘计算成为一种日益流行的替代方案。边缘计算允许在网络边缘执行计算,数据也存储在网络边缘,以提高数据处理效率。然而,云或分布式系统中的一些资源管理技术并不能很好地适应边缘计算,因此在提升边缘计算性能方面仍存在一些挑战。本文旨在结合数据块的最优放置与任务的最优调度,降低提交任务的计算延迟和响应时间,从而改善边缘计算中的用户体验。在数据块的最优放置中,数据块的价值不仅考虑了数据块的流行度,还考虑了将存储这些数据块的边缘服务器的数据存储容量和替换率。此外,已放置数据块的替换成本被视为数据块放置的重要组成部分。该最优放置方案可避免反复替换已放置的数据块,从而降低带宽开销。在任务的最优调度中,采用容器作为服务用户请求的轻量级资源单元,以充分利用边缘服务器中的数据存储,提升边缘服务器的服务性能。最后,通过大量实验对任务调度策略的性能进行了评估。结果表明,所提出的任务调度算法的性能优于对比算法。

关键词 :数据放置,任务调度,边缘计算,用户体验

1. 引言

近年来,由于云计算存在高负载和高响应延迟的问题,其无法满足日益增长的用户需求这一局限性愈发明显。因此,边缘计算逐渐成为一种广受欢迎的替代方案。边缘计算允许在网络边缘执行计算任务,数据也存储在网络边缘,从而提高数据处理效率[1]。与云计算相比,边缘计算的优势可归纳如下:1)低延迟。在边缘计算中,数据被放置于靠近用户的网络边缘,用户需求能够得到及时响应,因此相较于云服务器,边缘服务器实现了更低的延迟。2)低能耗。由于用户设备电池容量有限,复杂任务应被卸载至云或边缘服务器执行,以节省用户设备的能量。与云相比,边缘服务器距离用户设备更近,因此将任务传输到边缘服务器所消耗的能量少于传输到云。边缘计算可应用于多个领域,如人脸识别[2],无人机集群[3],智慧城市[4],自动驾驶[5],等。然而,一些在云或分布式系统中的资源管理技术,在边缘计算环境中仍面临挑战。预测性资源分配方法[6],任务调度策略[7],数据放置方案[8],等,无法更好地适应边缘计算。因此,在边缘计算的性能提升方面存在一些挑战。

网络边缘的数据存储已被证明在边缘计算中具有优势。边缘服务器将数据块存储到自身或靠近用户设备的邻近边缘服务器中。当用户设备向边缘服务器发送请求时,所需数据块将从本地边缘服务器获取。如果所需数据块未存储在本地边缘服务器中,则所需数据块将从邻近边缘服务器获取。最后,如果邻近边缘服务器也没有所需数据块,则所需数据块将从远程数据中心获取。网络边缘的数据存储可有效减少数据传输延迟,并提高用户设备的能效。任务调度是边缘计算中的另一个关键组成部分,因为边缘计算存在计算能力的限制。任务调度技术合理地将任务分配给不同的边缘服务器,以满足相同的需求,避免单个边缘服务器的高开销,并降低任务的响应时间。

网络边缘的数据存储是任务调度的基础。在数据块被放置到边缘服务器后,来自用户的任务将被分配给包含相应所需数据块的边缘服务器,这可以显著减少任务处理的计算延迟并提升用户体验。本文的主要目的是结合数据块的最优放置和任务的最优调度,以降低提交任务的计算延迟和响应时间,改善边缘计算中的用户体验。我们希望本研究能为边缘计算技术在下一代5G网络中的应用提供理论基础。本文的创新点总结如下。

在边缘计算中,数据块的最优放置与任务的最优调度相结合。数据块的价值不仅考虑数据块的流行度,还考虑将存储这些数据块的边缘服务器的数据存储容量和替换率。已放置数据块的替换成本被视为数据块最优放置中的一个重要组成部分。在边缘计算的任务最优调度中,容器被用作用户请求服务的轻量级资源单元。

本文的主要贡献总结如下: 在数据块的最优放置中,数据块的价值不仅考虑数据块的流行度,还考虑将存储这些数据块的边缘服务器的数据存储容量和替换率。此外,已放置数据块的替换成本被视为数据块放置的重要组成部分。该最优放置方案可以避免反复替换已放置的数据块,从而降低带宽开销。

  • 在任务的最优调度中,将容器作为用户请求服务的轻量级资源单元,以充分利用边缘服务器中存储的数据并提升边缘服务器的服务性能。
  • 实验中使用了真实数据,以说明基于数据块最优放置的任务调度策略的性能优于对比算法。

本文的其余部分组织如下。第2节总结了相关工作。第3节阐述了数据块的最优放置问题和任务的最优调度问题,并描述了基于数据块最优放置的任务最优调度算法在边缘计算中。第4节通过大量实验讨论了实验结果。最后,第5节总结了结论和未来工作。

2. 相关工作

2.1 资源管理与调度

与云资源相比,边缘服务器上的资源受限、异构且动态变化[9]。在边缘计算中,通过合理地管理和调度资源,可以降低时延并提高终端用户的服务质量。目前存在大量关于边缘计算中资源管理与调度的文献,可将其分为三类:聚合、共享和卸载。聚合模型被广泛用于减少边缘计算中的通信开销。针对聚合模型,基于图的[10], 、基于集群的[11], 、解耦的[12],、带宽感知[13], 、延迟感知[14], 、能量感知[15], 、质量感知[16], 、安全感知[17]以及异构性感知[18]技术得到了广泛研究。共享模型旨在通过将工作负载卸载到对等的终端用户而非云端,以满足终端用户的需求。对于共享架构,集中式控制[19], 、分布式控制[20], 、连接性感知[21],、异构性感知[22], 、安全感知[23]以及公平性感知[24]技术受到了广泛关注。卸载是一种将数据、服务器或应用程序迁移至网络边缘以减少计算延迟的技术。相关文献主要涉及功能感知[25], 、地理感知[26], 、延迟感知[27], 、基于内容流行度的数据放置[28]以及多层数据放置[29]技术。

2.2 数据放置

在本文中,我们重点研究基于内容流行度的数据放置技术和共享模型。通过将数据块放置在网络边缘,以减少计算延迟并防止用户所需数据块的重复传输。关于数据块放置已有大量文献研究。

一些研究人员关注数据块的放置位置,试图找到将数据块放置在何处,以便使数据块更靠近用户并最小化服务器延迟。阿莱哈格等人[30]通过将视频数据放置在宏基站中提出了一种视频感知调度方法,以增加视频容量并降低视频的卡顿概率。顾等人[31]提出了一种启发式方法来解决宏基站中的存储分配问题。与宏基站相比,小基站能够提供更高的数据速率,并且更靠近用户。巴什图ǧ 等人[32]通过考虑文件流行度和存储容量,将文件放置到小基站中,以提高平均内容传输速率并降低中断概率。布拉斯科等人[33]研究了小基站中内容的最优放置问题,并提出了一种算法以快速确定内容流行度。波拉拉基斯等人[34]提出了一种新颖的数据块放置方法,其中同一文件在相近时间内的请求可通过一次组播传输来服务,从而实现小基站中的低流量。在下一代 5G网络中,关键技术之一是设备到设备通信。因此,一些学者尝试将内容放置到移动设备中,以实现比放置在宏基站和小基站更低的计算延迟和更高的服务质量。白等人[35]设计了一种新颖的超图框架,其中通过D2D进行数据放置通信方案,通过考虑用户之间的社交关系和共同兴趣来减轻网络流量负担并提高设备能效。陈等人[36]提出了一种机会式协作D2D传输策略,其中用户被聚类并且带宽分配被优化,从而提高了吞吐量增益。

此外,一些学者关注内容的选择,试图搜索或发现用户所需的内容。有些人根据内容流行度来选择放置的内容。例如,内容流行度被建模为幂律,被视为独立泊松过程的速率,内容的请求数量服从泊松过程[37]。特拉韦尔索等人提出了一种动态流行度模型以实现内容放置[38]。一些研究人员通过考虑用户偏好来发现放置的内容。例如,阿莱哈格等人[39]发现本地视频流行度与全国视频流行度明显不同,且用户更偏好本地视频。因此,在[39]中提出了一种基于用户偏好的数据放置方法。然而,大多数研究者对数据放置策略更感兴趣。

由于非协作式数据放置策略的限制,越来越多的学者研究协作式数据放置策略。江等人[40]提出了一种内容分发策略,该策略将内容放置在毫微微基站中,并通过毫微微基站之间的协作来提供服务器服务。王等人[41]研究了无线接入网络中数据放置之间的协作关系,实现了各基站中内容的最优冗余比。奥斯托瓦里等人[42]提出了一种基于网络编码的内容放置方法,该方法增加了用户可获得的数据量,同时实现了数据的公平分配。波拉拉基斯等人[43]联合设计了数据放置与路由方案,旨在在基站带宽限制下最大化对小小区基站的内容请求。这些数据块放置策略关注放置项之间的协作关系,并试图优化协作关系以提高用户服务器质量。

实际上,用户并不稳定,他们具有移动性。一些研究人员已在此问题上做了大量工作。王等人[44]对用户移动性的时空特性进行了建模,并为以内容为中心的无线网络中的感知移动性的数据放置创建了一个通用框架。关等人[45]通过考虑用户的移动模式来制定感知移动性的数据放置问题,以实现最大放置效用。贾拉耶等人[46]分析了用户移动性对D2D网络中数据放置命中性能的影响。这些工作都是在用户移动性已知的条件下完成的。但是,在大多数情况下,用户移动性是未知的。也有一些针对此情况的研究工作。李等人[47]在用户移动性未知的情况下,通过移动性预测算法研究了切换用户的内容服务连续性。戈麦斯等人[48]提出了一种移动随行云方法,用于改善位于以信息为中心网络边缘的内容放置迁移并增强内容可用性。

然而,以往关于数据块放置的研究主要关注热门数据块的选择或放置位置的选择,所考虑的数据放置因素相对单一,导致边缘计算技术的优势未能充分体现。尽管已有许多数据放置策略被研究,但先前的文献所考虑的数据放置因素较少。在本文中,我们研究了数据块的最优放置策略,不仅考虑了热门数据块的选择和边缘服务器之间的协作关系,还考虑了已放置数据块之间的替换成本来自远程云的数据块和存储在边缘服务器中的数据块。此外,讨论了每个边缘服务器中磁盘与内存之间的协作关系,以提高数据块放置的性能。

2.3 任务调度

数据块放置是边缘计算服务器为用户提供服务的基础。在将数据块放置到边缘服务器后,用户的请求会被发送到包含相应所需数据块的边缘服务器,从而显著减少响应时间。此外,已有大量关于任务调度的研究工作。任务调度可以根据不同的目标进行设计,主要可分为延迟感知、能量感知和协作任务调度。

延迟是影响用户体验的重要性能指标。延迟感知的任务调度可以有效提升下一代5G网络的性能。Souza等[49]讨论了雾与云协同运行下的服务延迟问题,旨在以较低的容量限制最小化服务延迟。Mach等[50]提出了一种面向延迟敏感应用的分布式云功率控制算法。Liu等[51]设计了移动边缘计算中计算任务的最优调度策略。Fajardo等[52]通过移动边缘计算中的服务等级调度,最小化下行链路中通用流量的延迟。

由于终端设备的电池限制,能量感知任务调度被视为边缘计算或下一代5G网络的另一重要指标。Zhang等人[53]提出了一种能量感知计算卸载方案,联合优化无线资源分配和卸载,以最小化满足延迟约束下的能耗。Borylo等人[54]讨论了雾与云之间的能量感知交互,并指出可以降低数据中心的能耗。Zhang等人[55]设计了一种基于阈值的调度方案,综合考虑了能耗模型和无线信道模型。Sardellitti等人[56]通过联合优化无线资源和计算资源,最小化了所有用户的能耗。Bessis等人[57]在分布式系统中提出了一种能量感知的消息交换优化模型,该模型考虑了实体通信中消息总数可被最小化的问题。

此外,一些研究人员提出了基于带宽感知的任务调度[58],基于资源感知的任务调度[59],基于服务质量感知的任务调度[60],基于成本感知的任务调度[61]等等。然而,这些研究考虑的调度因素相对单一。为了实现更优的任务调度性能,一些学者对协作任务调度产生了兴趣。王等人[62]通过构建部分计算卸载问题,最小化了应用执行的能耗和延迟。李等人[63]在考虑能耗、执行单元成本和时延的基础上,设计了最优任务调度方案。

然而,以往关于任务调度的研究仅考虑了任务分配,而忽略了所需数据块的最优放置问题。因此,为了提升任务调度的性能,将数据块放置与任务调度进行协作可能是一个不错的选择。在本文中,我们首先考虑了数据块的最优放置,然后结合用户请求与本地数据的相关性以及所需数据块的传输成本,来优化边缘计算中的任务调度。

3. 边缘计算中用于数据放置和任务调度的协作模型

3.1 边缘计算中数据块的最优放置模型

在我们的论文中,数据块存储在每个边缘服务器的磁盘和内存中。由于存储在内存中的数据块的读取速度比存储在磁盘中的数据块更快,因此优先将数据块存储在内存中。但是,由于内存大小的限制,需要协同使用磁盘来存储数据。此外,以心跳间隔作为一个周期。在每个心跳间隔期间,所需的数据块被传输到边缘服务器。为了减少数据通信,需要讨论数据块最优放置方法。因此,在本节中,提出了一个关于数据块的价值、数据块的传输成本以及已放置数据块的替换成本的数据块放置最大化问题。

3.1.1 数据块的价值

在边缘计算中,数据块应存储在边缘服务器中并保持较长时间,以便数据块能够等待较长时间的需求。因此,提出通过数据块的价值来确定哪些数据块将被存储。数据块的价值由数据块的流行度、边缘服务器的数据存储容量以及边缘服务器的替换率组成。

数据块的流行度受数据块的访问频率以及两次访问之间的时间间隔的影响。访问频率越高,数据块的流行度越大。两次访问之间的时间间隔越小,数据块的流行度将增加。设数据块的流行度为 $p_i$。则数据块的流行度可通过以下方式计算:
$$
p_i = f(t_i, T_i) \tag{1}
$$
其中 $f_i$ 表示被访问的数据块数量占所有数据块总访问次数的比例。$t_i$ 表示从数据块上一次访问到当前时间的时间间隔。$T_i$ 表示数据块的平均访问时间间隔。

边缘服务器的数据存储容量由存储空间的可用性、中央处理器的计算速度以及内存的读写能力决定。设边缘服务器的数据存储容量为 $c_j$,其形式为
$$
c_j = c_{avai} \cdot c_{CPU} \cdot c_{mem} \tag{2}
$$
其中 $c_{cj}$ 是最小‐最大归一化[64]的值。

边缘服务器的替换率用于评估边缘服务器在数据块存储时间方面的性能。存储时间越长,边缘服务器的替换率越低。显然,访问频率高的数据块应存储在替换率较低的边缘服务器中。边缘服务器的替换率根据被替换的数据块大小和该边缘服务器的存储空间大小计算得出。设 $r_j$ 表示边缘服务器的替换率,其计算公式为
$$
r_j = \frac{z_j}{a_j} \tag{3}
$$
其中 $z_j$ 表示被替换的数据块的大小。$z_j = \sum_{k=1}^{m_j} z_k$,其中 $m_j$ 表示边缘服务器 $j$ 的替换次数,$z_k$ 被视为在替换时被替换数据块的大小。$a_j$ 是边缘服务器的存储空间大小。

然后,存储在边缘服务器中的数据块的价值可以表示为 $v_{ij}$
$$
v_{ij} = p_i \cdot c_j \cdot r_j \tag{4}
$$

3.1.2 数据块的传输成本

本文中,数据块的传输成本主要受边缘服务器与持有数据块的物理位置之间的网络距离和网络带宽的影响。当网络距离较短或网络带宽较大时,数据块的传输成本降低。设从持有数据块的物理位置到边缘服务器的数据块传输成本为 $o_{ij’}$,其形式为
$$
o_{ij’} = y_{jj’} \cdot d_{jj’} \tag{5}
$$
其中 $d_{jj’}$ 表示持有数据块的物理位置与边缘服务器之间的网络距离。$y_{jj’}$ 被视为数据块由于从持有该数据块的物理位置到边缘服务器的网络带宽所产生的传输成本。$y_{jj’} = \frac{s_i}{b_{jj’}}$,其中 $s_i$ 定义为数据块的大小。$b_{jj’}$ 是物理位置与边缘服务器之间的网络带宽。

3.1.3 已放置的数据块的替换成本

在边缘计算中,如果一个边缘服务器无法满足将要存储到该边缘服务器中的数据块的需求,则应选择该边缘服务器中已存在的某些数据块进行删除。然而,在数据块被删除后,可能仍会对其产生需求。在这种情况下,这些被删除的数据块将再次从其他边缘服务器或远程云传输过来,从而导致较大的开销。因此,提出了已放置数据块的替换成本,以确定是否应通过删除其现有数据块的方式将新的数据块存储到边缘服务器中。已放置数据块的替换成本受边缘服务器的存储空间大小以及被删除数据块大小的影响。

设从物理位置存储到边缘服务器的数据块的替换成本为 $e_{ij}$,其形式为
$$
e_{ij} =
\begin{cases}
0, & s_i \leq a_j \
\sum_{g=1}^{n_{ij}} o_{gj’}, & s_i > a_j
\end{cases} \tag{6}
$$
当已放置数据块的大小小于边缘服务器的存储空间时,由于没有被移除的数据块来为该数据块腾出空间。否则,该数据块的替换成本由为腾出空间而移除的数据块所产生的传输成本构成。

3.1.4 数据块放置问题的表述

数据块的传输成本和已放置数据块的替换成本用于确定数据块的放置位置。数据块放置的整合效用函数定义为 $UP$,其中如果数据块被存储到边缘服务器中,则 $x_{ij} = 1$;否则 $x_{ij} = 0$。$I$ 是所有数据块的数量。$J$ 定义为边缘服务器数量。为了合理选择数据块并将其放置到边缘服务器中,需要最大化数据块放置的整合效用函数。然后,数据块放置问题可表述如下。
$$
UP = \sum_{i=1}^I \sum_{j=1}^J x_{ij} \left[ v_{ij} - o_{ij’} - e_{ij} \right] \tag{7}
$$
受限于
$$
x_{ij} \in {0,1}, \quad i \in {1,2,\dots,I}, \quad j \in {1,2,\dots,J}, \quad j’ \in {1,2,\dots,J+1} \setminus {j} \tag{8}
$$
$$
0 \leq \sum_{j=1}^J x_{ij} \leq J \tag{9}
$$
$$
0 \leq \sum_{i=1}^I x_{ij} \leq I \tag{10}
$$
其中,如果数据块被存储到边缘服务器中,则 $x_{ij} = 1$,否则为0。目标函数表示数据块的价值最大化。$I$ 是所有数据块的数量。$J$ 定义为边缘服务器数量。$J+1$ 表示云数据中心。约束条件(9)表明一个数据块可以存储到多个边缘服务器中。约束条件(10)表明所有数据块可能被存储到同一个边缘服务器中,这取决于该边缘服务器的存储空间大小。显然,数据块放置问题是一个0‐1多选择背包问题,可归约为0‐1背包问题,而后者是众所周知的NP难问题[65]。求解背包问题的传统方法,如动态规划方法[66],分支定界法[67],等,无法适用于大规模背包问题。目前,求解大规模背包问题的主要方法是智能优化算法,如粒子群优化算法[68],禁忌算法[69],等。本文采用禁忌算法来获得近似最优解,因为禁忌搜索算法在求解组合优化问题时具有较高的效率[69]。

3.2 边缘计算中任务的最优调度模型

在边缘计算中,数据块存储到边缘服务器后,提交的任务将对边缘服务器进行合理调度,以减少服务器延迟并提高服务质量。在本文中,将心跳间隔作为一个周期。在每次心跳期间,数据块放置完成后,任务将被传送给边缘服务器。每个边缘服务器会为每个任务分配相应的容器。这里的容器是虚拟机的轻量级替代方案,与虚拟机相比,具有更短的启动时间和更低的任务处理开销。因此,使用容器来处理任务可以改善响应时间并减少计算延迟。由于每个边缘服务器的物理限制,其计算资源可能无法满足相应任务的需求。因此,为了减少服务器延迟和响应时间,提出了一种合理的任务调度策略。在所提出的任务最优调度模型中,当边缘服务器接收到用户发送的任务后,将根据任务优先级和边缘服务器的物理性能依次创建相应的容器。然后,我们合理匹配容器与任务,以减少计算延迟并提高服务质量。为解决边缘计算中任务调度的最优化问题,建立了一个关于任务与容器之间的相关性、任务优先级以及任务传输成本的任务调度最大化问题模型。此外,提出了一种任务的最优调度算法,以提高任务的计算效率并减少服务器延迟。

值得注意的是,在本文中,数据块被存储在每个边缘服务器的磁盘和内存中。为了处理提交的任务,边缘服务器首先从本地内存中查找所需数据块。当所需数据块不在内存中时,边缘服务器将从本地磁盘中搜索这些数据块。如果这些数据块未存储在本地磁盘中,边缘服务器将尝试从邻近边缘服务器获取它们。最后,如果邻近边缘服务器无法提供这些数据块,则将从远程云中获取。

3.2.1 任务优先级

本文中,用户通过提交作业向边缘服务器发送其需求。一个作业可被划分为多个相互独立的任务。当提交若干作业时,每个作业的优先级由Hadoop YARN中的默认调度算法确定。因此,每个任务的优先级与包含该任务的作业的优先级相关。同时,由于所需数据块存储位置的不同,任务的优先级也有所不同。例如,在一个心跳周期内存在两个任务,其中一个任务所需的数据块存储在本地磁盘或内存中,而另一个任务所需的数据块存储在远程云或其他边缘服务器上。在这种情况下,我们希望优先处理具有本地存储数据块的任务,即具有本地存储数据块的任务优先级高于具有远程存储数据块的任务。因此,任务的优先级还与所需数据块的存储位置相关。设 $h_l^w$ 为任务的优先级,该任务属于作业 $l_w$,其形式为
$$
h_l^w = q \cdot h_{Job} + (1-q) \cdot h_{data} \tag{11}
$$
其中 $h_{Job}$ 表示由 Hadoop YARN 中默认调度算法确定的任务优先级。$h_{data}$ 被用作根据所需数据块的位置确定的任务优先级。当所需数据块存储在内存中时,对应任务的优先级为 3;当所需数据块存储在磁盘中时,对应任务的优先级为 2。当所需数据块被存储在其他边缘服务器或远程云中,相应任务的优先级为1。$q$ 被定义为可调参数,用于确定 $h_{Job}$ 到 $h_{data}$ 的比例。显然,在边缘计算中,我们更倾向于优先处理优先级较高的任务。

3.2.2 任务与容器之间的相关性

当边缘服务器在心跳周期内接收到用户提交的任务时,边缘服务器中的资源管理器将根据任务的需求依次生成容器,每个心跳周期内一个容器用于处理一个任务。然而,由于边缘服务器的物理资源限制,边缘服务器生成的容器数量少于心跳周期内的任务数量。因此,我们需要合理地匹配容器与任务,以减少任务处理的时间。

在我们的论文中,一个任务由一个元组表示。设 $l_w$ 为作业 $l_w$ 包含的任务 $l_w$,其形式为
$$
l_w = (CPU_w, MEM_w, S_w) \tag{12}
$$
其中 $CPU_w$ 被视为处理作业任务的中央处理器大小。$MEM_w$ 被定义为作业任务所需的内存大小。$S_w$ 表示作业所包含任务的大小。

容器也由一个元组表示。设 $u_\lambda^j$ 为 $j$ 边缘服务器中的容器 $\lambda$,其形式为
$$
u_\lambda^j = (CPU_\lambda^j, MEM_\lambda^j, SPACE_\lambda^j) \tag{13}
$$
其中 $CPU_\lambda^j$ 表示边缘服务器中容器的中央处理器容量。$MEM_\lambda^j$ 是边缘服务器中容器内存的大小。$SPACE_\lambda^j$ 是边缘服务器中容器存储空间的大小。

任务与容器之间的相关性由向量的余弦度量决定。设 $R(l_w, u_\lambda^j)$ 为任务与容器之间的相关性。那么,
$$
R(l_w, u_\lambda^j) = \cos(l_w, u_\lambda^j) \tag{14}
$$
显然,我们更倾向于在边缘计算中处理相关性更高的任务。

3.2.3 传输成本

当任务在边缘服务器上处理时,如果该任务所需的数据块未存储在边缘服务器中,则需要从远程云或其他边缘服务器传输这些数据块。如果该任务所需的数据块已存储在边缘服务器的磁盘或内存中,则无需进行数据块传输。因此,提出传输成本以评估任务调度的性能,其形式为
$$
\Theta_{l_w}^j =
\begin{cases}
0, & \tau_{l_w} = j’ \
\sum_{i=1}^{\tau_{l_w}} o_{ij’}, & j \neq j’
\end{cases} \tag{15}
$$
其中 $o_{ij’}$ 是任务所需的数据块的传输成本。$\sum_{i=1}^{\tau_{l_w}} o_{ij’}$ 被视为任务所需但不在边缘服务器上的数据块的总传输成本。显然,在边缘计算中,我们更倾向于选择传输成本较小的任务进行处理。

3.2.4 任务调度问题的表述

任务调度的整合效用函数为 $US$。$W_j$ 是提交到边缘服务器 $j$ 的作业数量。$L_w$ 表示作业 $w$ 所包含的任务数量。$\Lambda_j$ 定义为边缘服务器 $j$ 所包含的容器数量。如果作业 $l_w$ 中的任务 $l_w$ 与容器 $u_\lambda^j$ 匹配,则 $\omega_{l_w}^\lambda = 1$;否则 $\omega_{l_w}^\lambda = 0$。为了减少计算延迟并提高服务器性能,应选择更合适的任务在边缘计算中处理,即应最大化任务调度的整合效用函数。因此,任务调度问题可表述如下。
$$
US = \sum_{w=1}^W \sum_{l_w=1}^{L_w} \sum_{\lambda=1}^{\Lambda_j} \omega_{l_w}^\lambda \cdot h(l_w, u_\lambda^j) \cdot R(l_w, u_\lambda^j) \cdot \Theta_{l_w}^j \tag{16}
$$
受限于
$$
\omega_{l_w}^\lambda \in {0,1}, \quad w \in {1,2,\dots,W}, \quad l_w \in {1,2,\dots,L_w}, \quad \lambda \in {1,2,\dots,\Lambda} \tag{17}
$$
$$
\sum_{w=1}^W \sum_{l_w=1}^{L_w} \omega_{l_w}^\lambda = 1 \tag{18}
$$
其中,$W$ 是提交到边缘服务器的作业数量。$L_w$ 表示作业所包含的任务数量。$\Lambda_j$ 定义为边缘服务器所包含的容器数量。如果作业中的任务与容器匹配,则 $\omega_{l_w}^\lambda = 1$。否则,$\omega_{l_w}^\lambda = 0$。约束条件(18)表明,一个任务仅由一个容器处理。显然,该任务调度问题是一个背包问题,即该任务调度问题是一个NP难问题。

如果将任务集合和容器集合分别视为二分图中的两个集合,$\omega_{l_w}^\lambda$ 将其视为二分图中的边,$h(l_w, u_\lambda^j) \cdot R(l_w, u_\lambda^j) \cdot \Theta_{l_w}^j$ 将其作为二分图的权重,则任务调度问题可转化为加权二分图匹配问题。然后,由于KM算法在解决加权二分图匹配问题时的有效性,应用库恩‐蒙克雷斯(KM)算法以获得最优解[70]。然而,在实际中,任务的数量可能与容器的数量不同。如果任务数量等于容器数量,则加权二分图匹配问题可视为完全二分图匹配问题,可直接使用KM算法求得加权二分图匹配问题的最优解。如果任务数量少于容器数量,边缘服务器可以移除多余的容器,使得任务数量与容器数量相等,然后我们可以使用 KM算法搜索加权二分图匹配问题的最优解。如果任务数量多于容器数量,为了构建一个完全二分图,我们将添加相应数量的虚拟容器,使容器数量与任务数量相等。然后,可以使用KM算法获得加权二分图匹配问题的最优解。虚拟容器通过权重为零的虚边与每个任务相连,表示它们仅用于辅助执行KM算法,但在实际调度中不会被选中。

3.3 边缘计算中用于数据放置与任务调度的协同算法

本节通过算法1描述了边缘计算中数据放置与任务调度的协同算法的伪代码。为了实现边缘计算中任务调度问题的最优解,需要获取已放置的数据块、边缘服务器和任务的信息(第1行)1‐2)。依次计算数据块的值、数据块的传输成本以及已放置数据块的替换成本(第4‐15行)。此外,使用禁忌算法确定数据块的放置位置(第16‐17行)。在解决数据块的最优放置问题后(第 1‐17行),将任务提交至边缘服务器,每个边缘服务器中的资源管理器会根据边缘服务器的物理性能创建容器。然后,通过算法1获取容器的信息(第18行)。结合数据块放置位置的信息,计算任务优先级(第21行)。同时,分别计算任务与容器之间的相关性以及任务所需的传输成本(第 22‐28行)。最后,使用KM算法获得任务与容器之间的合理匹配(第29‐30行)。

算法1:边缘计算中用于数据放置与任务调度的协同算法

输入:数据块集合,边缘服务器集合,任务集合
输出:任务与容器之间的最优匹配

1. 对于每个数据块 i
2.     计算 pi // 数据块的流行度
3. 对于每个边缘服务器 j
4.     计算 cj // 边缘服务器的数据存储容量
5.     计算 rj // 边缘服务器的替换率
6.     计算 V_ij <- p_i * c_j * r_j // 存储在边缘服务器中的数据块的值
7. 对于每个边缘服务器 j ≠ j'
8.     计算 o_ij' // 已放置数据块的传输成本
9.     如果 s_i ≤ a_j
10.        e_ij = 0
11.    否则
12.        e_ij = o_ij'
13. // 应用禁忌算法以求解数据块放置问题的最优解
14.    UP <- max(sum(sum(x_ij * (v_ij - o_ij' - e_ij))))
15. 从边缘服务器的资源管理器获取容器信息
16. 对于每个任务 l_w
17.     对于每个作业 l_h
18.         计算 h_l^w // 作业中包含的任务的优先级
19. 对于每个任务 l_w
20.     计算 R(l_w, u_λ^j) // 任务与容器之间的相关性
21. 对于每个任务 l_w
22.     如果 j = j'
23.         Θ_l_w^j = 0
24.     否则
25.         Θ_l_w^j = 1
26. // KM算法应用于实现任务调度问题的最优解
27. US <- max(sum(sum(sum(ω_l_w^λ * h(l_w, u_λ^j) * R(l_w, u_λ^j) * Θ_l_w^j))))
28. return

在算法1中,禁忌算法求解数据块放置问题的时间复杂度为 $O(I(J-1)+J)$,其中 $I$ 是数据块的数量。$J$ 表示边缘服务器的数量。KM算法求解任务调度问题的时间复杂度为 $O(l^3)$,其中 $l$ 是提交到边缘服务器的总任务数。因此,算法1的时间复杂度为 $O(I(J-1)+J + l^3)$。

4. 实验与分析

4.1 实验配置

为了评估所提出的算法的性能,使用真实数据进行了大量实验。边缘计算系统由11台计算机构建而成。图1描述了实验配置和环境。其中一台计算机作为边缘协调器,用于管理其他边缘服务器,并保证边缘服务器与远程云之间的通信。其余计算机作为边缘服务器。在边缘计算系统中,操作系统采用Linux Ubuntu14.04.1,Java开发工具包版本为JDK 1.7.0‐45,开发环境为My Eclipse 10。

示意图0

在本文中,将一个心跳间隔视为一个周期。在每个心跳间隔内,将进行同步、通信和协调。在每个心跳间隔内,边缘协调器会根据上一个心跳周期获取的数据信息,为每个边缘服务器同步数据块。同时,边缘协调器会将同步信息以及来自边缘服务器的需求发送至远程云。所需数据块将被传递基于所提出的数据块最优放置方法,将数据块放置到边缘服务器中。完成数据块放置后,任务被提交至边缘服务器。此处提交的任务包括当前心跳周期内的任务以及上一个心跳周期中的未处理任务。此外,每个边缘服务器会为每个任务分配容器。由于每个边缘服务器存在物理限制,其计算资源可能无法满足任务的相应需求。因此,采用所提出的任务最优调度方法来匹配容器与任务。未能获得容器分配的任务将在下一个心跳周期进行处理。在本论文中,数据块存储于每个边缘服务器的磁盘和内存中。为处理提交的任务,边缘服务器首先从本地内存中查找所需数据块;当所需数据块不在内存中时,边缘服务器将从本地磁盘中搜索这些数据块;若这些数据块未存储在本地磁盘中,边缘服务器将尝试从邻近边缘服务器获取;最后,如果邻近边缘服务器也无法提供这些数据块,则将从远程云获取。任务处理完成后,边缘服务器会向边缘协调器发送本地数据信息,以便边缘协调器在下一个心跳周期对各边缘服务器的数据进行同步。

4.2 数据收集

在我们的实验中,数据集由文本组成,包括来自斯坦福网络分析项目(SNAP)[71] 2008年 8月至2009年4月期间整个在线新闻范围的引文和短语。该数据集的大小为13.36G,包含网站、时间、短语等信息。其中有1700万条短语来源于Twitter、Google等在线社交网络。

在实验中,为了评估边缘计算中数据块最优放置算法的性能,我们采用Hadoop中数据块默认放置算法(DAH)和数据块的贪心放置算法[72] (GPA)作为对比算法。此外,为了评估边缘计算中任务的最优调度算法的性能,采用Hadoop中任务调度默认算法(DTS)和基于数据局部性的工作流调度算法[73] (WSA)作为对比算法。

4.3 指标

在边缘计算中数据块最优放置算法的对比实验中,采用数据响应时间(DRT)和被替换数据块数量(NRDB)作为指标。DRT表示数据访问的响应时间。NRDB是每个边缘服务器中被替换数据的总数。在边缘计算中任务的最优调度算法的对比实验中,使用任务命中率(HRT)和任务响应时间(RTT)来评估所提出的算法的性能。HRT是所需数据存储在本地磁盘或内存中的任务数量与任务总数的比率。RTT是所有提交的任务的总体执行时间。

4.4 实验结果与讨论

4.4.1 边缘计算中数据块最优放置算法的对比实验

(1) 不同数据存储容量的实验结果

示意图1

图2说明了不同的存储容量如何影响DRT。可以看出,随着存储容量的增加,DRT随着数据存储容量的增加,每种算法的DRT值都会增加。同时,DAH算法的DRT值高于GPA算法和所提出的算法。所提出的算法的DRT值小于GPA算法和DAH算法。然而,随着存储容量的增加,这三种算法之间的DRT值差异减小。例如,当数据存储容量设置为45时,所提出的算法相较于DAH算法和GPA算法的DRT损失至少分别为8.08%和2.48%。但当存储容量设置为50时,所提出的算法相较于DAH算法和GPA算法的DRT减少最多仅为4.29%和2.08%。众所周知,磁盘中存储数据的读取速度低于内存中存储数据的读取速度。随着数据存储容量的增加,内存的大小也随之增加。这将导致更高的数据读取速度和更低的DRT值。此外,随着数据存储容量的增加,这三种算法之间的性能差异减小,即它们的DRT值之间的差异减小。在数据块放置过程中,DAH算法考虑了存储容量。而GPA算法和所提出的算法则考虑了数据块的流行度。GPA算法会为更热门的数据块提供更多的存储机会。然而,除了热门数据块外,所提出的算法还考虑了边缘服务器的替换成本。具有较低替换成本的边缘服务器将长期保留数据块。因此,所提出的算法的DRT性能优于DAH算法和GPA算法。

示意图2

图3展示了通过改变数据存储容量的值来得到的NRDB。可以看出,我们所提出的算法的 NRDB比其他两种算法更小。平均而言,与GPA算法相比,我们所提出的算法可使NRDB最多降低42.61%;与DAH算法相比,最多可降低26.31%。随着数据存储容量的增加,每种算法的 NRDB值均减少。此外,随着数据存储容量的增加,三种算法之间的差异变得较小。例如,当数据存储容量的大小设置为40和45时,DAH算法的NRDB分别比我们所提出的算法最多增加45.37 %和19.54%。在相同情况下,GPA算法的NRDB分别比我们所提出的算法最多增加132.41%和 79.31%。随着数据存储容量的增加,边缘服务器的数据存储空间也随之增加。如果存储空间能够满足数据块的空间需求,则将不存在替换成本。因此,随着数据存储容量的增加,每种算法的NRDB均会减小。我们的所提出的算法考虑了替换成本,而其他两种算法没有考虑。因此,由我们所提出的算法存储的数据块具有比其他两种算法更小的替换成本,使得我们所提出的算法的NRDB值小于其他两种算法。然而,随着数据存储容量的增加,无替换成本的数据块数量减少,因此三种算法之间的NRDB差异变小。

(2) 不同数量的所需数据块的实验结果

示意图3

图4展示了不同数量的所需数据块对数据检索时间值的影响。可以看出,随着所需数据块数量的增加,每种算法的数据检索时间值均有所增加。例如,与所需数据块数量设置为16相比,当所需数据块数量设置为256时,所提出的算法可实现高达43.46%的数据检索时间值改善。所提出的算法的数据检索时间值小于DAH算法和GPA算法的数据检索时间值。DAH算法的数据检索时间值高于GPA算法和所提出的算法。例如,当所需数据块的数量设置为208时,所提出的算法与DAH算法和GPA算法相比,DRT损失至少分别为21.43%和6.99%。当存储空间和任务固定时,随着所需数据块数量的增加,未在内存中的所需数据块的访问机会增加。众所周知,磁盘中存储的数据的读取速度低于内存中存储的数据。因此,随着所需数据块数量的增加,每种算法的DRT值都会增加。GPA算法和所提出的算法均考虑了数据块的流行度。GPA算法会为更热门的数据块提供更多的存储机会。然而,除了热门数据块外,所提出的算法还考虑了边缘服务器的替换成本。具有较低替换成本的边缘服务器将长时间保留数据块。因此,当存储空间和任务固定时,所提出的算法和GPA算法的DRT性能优于DAH算法。此外,所提出的算法的DRT性能优于GPA算法。

示意图4

图5展示了通过改变所需数据块数量得到的NRDB。我们看到,与另外两种算法相比,我们所提出的算法的NRDB最小。平均而言,与GPA相比,我们所提出的算法最多可实现57.49%的 NRDB降低;与DAH相比,最多可实现30.08%的NRDB降低。随着所需数据块数量的增加,每种算法的NRDB值也随之增加。此外,随着所需数据块数量的增加,三种算法之间的差异变得较小。例如,当所需数据块数量设置为112和160时,DAH算法的NRDB分别比我们所提出的算法最多增加了65.22%和58.49%。在相同情况下,GPA算法的NRDB分别比我们所提出的算法最多增加了150.00%和137.74%。随着所需数据块数量的增加,边缘服务器中存储的数据块数量无法满足任务所需的数据块数量。因此,由于边缘服务器存储空间的限制,需要以较高的替换成本存储大量数据块。因此,每种算法的NRDB随着所需数据块数量的增加而增加。然而,随着所需数据块数量的增加,已存储的数据块可能无法满足任务的需求,因此大多数所需数据块都需要以较高的替换成本进行存储,从而导致三种算法之间的差异变小。当所需数据块的数量远大于边缘服务器的数据存储容量时,三种算法的所需数据块数量将大致相等。因为在这种情况下,新的数据块需要不断占用已存储数据块的空间以满足任务的需求。

(3) 不同数据块流行度的实验结果

示意图5

图6说明了不同的数据流行度如何影响数据检索时间。如图所示,随着数据流行度的增加,每种算法的数据检索时间值均下降。例如,与数据流行度为0.4时相比,当数据流行度为0.9时,所提出的算法最多可实现67.41%的数据检索时间减少。所提出的算法的数据检索时间值小于DAH算法和GPA算法的数据检索时间值。DAH算法的数据检索时间值高于GPA算法和所提出的算法。例如,当数据流行度为0.4时,与DAH算法和GPA算法相比,所提出的算法的数据检索时间损失至少分别为20.55%和6.65%。对于每种算法,随着数据流行度值的增加,本地数据响应时间增加,即数据检索时间值增加。GPA算法将为更热门的数据块提供更多的存储机会。然而,除了热门数据块外,所提出的算法还考虑了边缘服务器的替换成本。具有较低替换成本的边缘服务器将长时间保留数据块。因此,所提出的算法和GPA算法的数据检索时间性能优于DAH算法。此外,所提出的算法的数据检索时间性能优于GPA算法。

4.4.2 边缘计算中任务的最优调度算法的对比实验

(1) 不同存储空间大小的实验结果

示意图6

图7说明了不同大小的存储空间对HRT的影响。可以看出,随着存储空间的大小增加,每种算法的HRT值也随之增加。例如,与存储空间大小为25时相比,当存储空间大小为55时,所提出的算法可实现高达70.25%的HRT提升。所提出的算法的HRT值高于DTS算法和WSA算法。DTS算法的HRT值低于HRT算法和WSA算法。例如,当存储空间的大小为55时,所提出的算法可以实现与DTS算法和WSA算法相比,HRT分别最高提升了63.76%和23.41%。这是因为随着存储空间的大小增加,存储在边缘服务器中的数据块数量增加,从而使得各算法的HRT值提高。在任务调度过程中,DTS算法考虑了队列因素。DTS算法专注于当前任务的资源分配,而不考虑全局任务。WSA算法则考虑了边缘服务器的本地数据和计算能力。然而,所提出的算法除了考虑WSA算法所涉及的因素外,还考虑了数据块的传输成本。因此,所提出的算法在HRT性能上优于WSA算法和DTS算法。

示意图7

图8描述了随存储空间大小变化的往返时间。可以看出,我们所提出的算法的往返时间比其他两种算法更小。平均而言,与WSA算法相比,我们所提出的算法可使往返时间最多减少27.70%;与DTS算法相比,最多可减少47.76%。随着存储空间大小的增加,各算法的往返时间值均有所降低。此外,随着存储空间大小的增加,三种算法之间的差距也变大。例如,当存储空间大小设置为40和45时,DTS算法与所提出的算法相比,RTT分别增加了84.51%和117.95%。在相同情况下,WSA算法与所提出的算法相比,RTT分别增加了34.51%和47.01%。随着存储空间的大小增加,存储的数据块数量增加。因此,任务所需的本地数据块数量增加,使得任务的响应时间变小。因此,随着存储空间的大小增加,各算法的RTT均减少。所提出的算法考虑了替换成本,而其他两种算法未考虑。因此,所提出的算法放置的数据块的替换成本小于其他两种算法放置的数据块,从而使所提出的算法的 RTT值小于其他两种算法。随着存储空间的大小增加,所提出的算法中无替换成本的数据块数量增加,因此所提出的算法的优势更加显著。因此,所提出的算法与其他两种算法之间的RTT差异变大。

(2) 提交任务的数量不同时的实验结果

示意图8

图9说明了不同提交任务的数量对HRT的影响。可以看出,随着提交任务数量的增加,每种算法的HRT值也随之增加。例如,与提交任务数量为16时相比,当提交任务数量为256时,所提出的算法可实现高达65.78%的HRT提升。所提出的算法的HRT值高于DTS算法和WSA算法。DTS算法的HRT值小于DTS算法和WSA算法。例如,当提交任务数量为256时,所提出的算法相较于DTS算法和WSA算法分别可实现高达42.17%和15.24%的HRT提升。在任务调度过程中,随着提交任务数量的增加,由本地数据块满足的任务数量也增加,即HRT值增加。在任务调度过程中,DTS算法考虑了队列。DTS算法专注于当前任务的资源分配,而不涉及全局任务的资源分配。WSA算法考虑了本地数据和边缘服务器的计算能力。与DTS算法一样,WSA算法也没有考虑任务的全局资源分配。然而,在WSA算法所考虑的因素基础上,所提出的算法还额外考虑了任务的全局资源分配。因此,所提出的算法的HRT性能优于WSA算法和DTS算法。

示意图9

图10展示了通过改变提交任务的数量得到的往返时间。可以看出,我们所提出的算法的往返时间小于其他两种算法。平均而言,与WSA算法相比,我们所提出的算法可实现最高达16.95%的往返时间减少;与DTS算法相比,最高可达32.74%的往返时间减少。随着提交任务数量的增加,每种算法的往返时间值也随之增加。此外,随着提交任务数量的增加,三种算法之间的差异变小。例如,当提交任务的数量分别设置为160和208时,DTS算法相对于我们所提出的算法的往返时间分别最多增加了31.32%和30.47%。在相同情况下,WSA算法相对于我们所提出的算法的往返时间分别最多增加了16.92%和12.35%。随着提交任务数量的增加,存储在边缘服务器中的数据块数量无法满足任务所需的数据块数量。因此,由于边缘服务器存储空间的限制,大量数据块需要从远程云或其他边缘服务器传输。因此,每种算法的往返时间随着提交任务数量的增加而增加。然而,随着提交任务数量的增加,已存储的数据块可能无法满足任务的需求,因此大多数所需数据块需要从远程云或其他服务器传输,导致三种算法之间的差异变小。此外,当提交任务的数量远超边缘服务器的数据存储容量时,三种算法的往返时间将大致相等。因为在这种情况下,新的数据块需要不断从远程云或其他服务器传输以满足任务需求。

5. 结论

本文的主要目的是结合数据块的最优放置和任务的最优调度,以降低提交任务的计算延迟和响应时间,提升边缘计算中的用户体验。在数据块的最优放置中,数据块的价值不仅考虑数据块的流行度,还考虑存储这些数据块的边缘服务器的数据存储容量和替换率。此外,数据块的替换成本被视为数据块放置的一个重要组成部分。该最优放置方案可以避免反复替换已放置的数据块,从而减少带宽开销。在任务的最优调度中,将容器作为用户请求服务的轻量级资源单元,以充分利用边缘服务器中存储的数据,并提高边缘服务的性能。最后,进行了大量实验以评估任务调度策略的性能。结果表明,所提出的任务调度算法在HRT和RTT方面优于对比算法。在未来的工作中,研究边缘计算中边缘服务器的分布是值得的。作为一种新范式,如何部署边缘服务器以提升用户体验是一个重要问题。

Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑用户体验的优化,从而提升整体开发效率软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值