一种面向边云结合架构的资源分配和任务调度方法与流程

文档序号:17488737发布日期:2019-04-23 20:13阅读:486来源:国知局
一种面向边云结合架构的资源分配和任务调度方法与流程

本发明属于边缘计算领域,具体涉及设计并实现一种面向边缘计算与云计算相结合结构下的资源分配和任务调度方法。



背景技术:

随着物联网相关技术的发展,我们正在从物联网时代走入万物互联的时代,其突出特点是任何“物”都将具有环境感知的功能、更强的计算能力和感知能力,网络将具有数十亿甚至数百亿的连接节点。在提供更复杂的功能的同时,网络中也将产生海量的数据,对海量数据的处理,将是未来物联网发展的突出问题。传统基于云计算的解决方案,将数据的处理任务发送到云计算中心,利用云计算中心的超强计算能力来集中解决这些数据的计算和存储问题。基于云计算的集中式处理方法,虽然解决了资源的限制,但由于物联网终端设备和远程云服务器之间的高延迟,对于需要较短延迟时间的任务,可能会带来巨大的延迟时间从而导致任务中断。在这种情况下,基于云计算的集中式处理方法不能高效的支持基于万物互联的应用服务,而边缘计算则可以较好地解决这些问题。

在边缘计算架构下,与数据相关的操作(包括数据的存储和处理)被放置在网络边缘的一组小型服务器(cloudlet)中进行处理,而不是远程云端服务器。大量数据将在接近数据产生源头的边缘服务器中进行,从而降低网络的使用,减少了任务处理的延迟时间。与云计算相比,边缘计算所采用的架构呈分布式,更接近网络边缘,数据的存储、处理和应用程序将集中在网络边缘的服务器中,将会极大地减少这些过程中的网络延迟,同时在保护用户隐私数据,提升数据安全性方面与云计算相比较也有很大的优势。

边缘计算与云计算的结合将是物联网网络架构发展的趋势,借助边缘服务器接近数据生产者的优势和云服务器的强大的计算、存储能力,将对未来物联网环境所产生的海量数据进行有效的存储和处理。然而边云结合的网络架构,也带来了新的挑战,与云计算架构不同,在边云结合的网络架构内,任务处理的位置也有了选择,对于不同特性的任务,其所适合处理的位置也不同,以往云计算中使用的调度策略将不再适用于当前边云结合的计算架构。不同的资源分配与任务调度算法则在对任务处理位置和顺序的安排中,起到不同的作用。寻找到合适于边云结合架构的资源分配与任务调度算法,将为边缘计算的发展做出重要贡献。



技术实现要素:

为上述解决边云结合架构下任务处理位置分配及边缘服务器内的任务调度问题,本发明提出了一种基于边云结合架构的资源分配与任务调度算法。首先每个任务都有其相对应的临近边缘服务器,在其临近边缘服务器和与服务器中存储着与其相关联的一段数据。每个任务在达到与其相临近的边缘服务器时,都会生成关于任务的相关信息,包括任务的到达时间,任务处理的截止时间,任务的计算量和数据量,以及任务的临近边缘服务器。由任务的到达时间和截止时间,以及在任务处理期间所产生的能耗,以及周边边缘服务器的运行情况,为任务选择合适的边缘服务器或者将任务发送至云服务器进行处理,任务到达服务器后,依照任务的截止时间和任务数据传输的时间,对任务的处理顺序和数据传输顺序进行调度,以达到在保证任务处理延时时间的前提下,减少整体能耗的目的。当所有边缘服务器都已处于满负载或者能耗不优于云服务器的情况下,任务将被传输至云端处理。

为达到上述目的,本发明采用以下技术方案。

一种基于边云结合架构的资源分配与任务调度算法,其特征在于,包括以下步骤:

步骤(1)边缘服务器及任务信息配置:

(1.1)边缘服务器列表信息配置:边缘服务器e所在子网中的所有边缘服务器构成一个集合e={e1,e2,……,em},边缘服务器ei∈e,其信息包括:最大计算能力ci,最大下载、上传带宽biin和biout,完成单位计算量的能耗成本pi,下载和上传单位数据量的能耗成本qiin和qiout,所有边缘服务器的信息存储为矩阵einfm×7,m表示集合e中边缘服务器的个数,7表示信息的个数;

矩阵einfm×7分别存储在集合e中的各个边缘服务器中,除此之外云服务中心的信息也将存储在上述各个边缘服务器中,所述云服务中心的信息包括:所有边缘服务器与云服务器之间的距离,以及数据传输速度v,其中边缘服务器ei与云服务器之间的距离记为lencloud,i;

(1.2)任务信息配置:所有需要在边缘服务器中处理的任务组成任务集合j={j1,j2,……,jn},任务jj∈j,其信息包括:任务直接传输到的边缘服务器fej,任务ji到达边缘服务器fej的时间和任务ji的最大截止时间tjbegin与tjend,任务jj的计算量lj,任务jj的数据量dj,任务jj的以上信息组成列表infj,则infj=<tjbegin,tjend,lj,dj,fej>,infj跟随任务jj到达其直接传输到的边缘服务器ej;

步骤(2)任务集合中的某一任务jj到达其直接传输到的边缘服务器fej后,分析任务jj在不同服务器中的延迟和能耗,其中任务jj的具体分析方法如下:

当任务jj到达其直接传输到的边缘服务器fej中后,该服务器将结合任务信息列表infj,和边缘服务器信息矩阵einfm×7中的信息,计算任务jj在边缘服务器矩阵中,不包括fej的各个边缘服务器中的预计时间t和预计能耗w,其中任务jj在边缘服务器ei中的预计时间tij和预计能耗wij的计算公式如下:

时间tij:

能耗成本wij:

其中lj表示任务jj的计算量,ci表示边缘服务器信息矩阵einfm×7中边缘服务器ei的最大计算能力,dj表示任务jj的数据量,bjout表示任务jj直接传输到的边缘服务器fej的上传带宽,biin表示边缘服务器ei的下载带宽,pi表示边缘服务器ei计算每单位计算量的能耗成本,服务器qjout表示fej上传每单位数据量的能耗成本,qiin表示边缘服务器ei下载每单位数据量的能耗成本;

计算结果存储为矩阵ejm×3,其中m表示集合e中边缘服务器的个数,3表示信息的个数,即边缘服务器ei的序号,任务jj在ei上计算预计所需时间tij和能耗成本wij,进入步骤(3);

步骤(3)任务处理位置选择策略,其中任务jj的具体选择策略如下:

(3.1)首先计算任务jj在其直接传输到的边缘服务器fej中计算所需的能耗wj,和任务的最大延迟时间tj,计算公式如下:

最大延迟时间tj:

能耗wj:wj=lj·pj④

其中,tjend表示任务jj的最大截止时间,tjbegin表示任务jj到达边缘服务器fej的时间,lj表示任务jj的计算量,pj表示任务jj到达其直接传输到的边缘服务器fej计算每单位计算量的能耗成本;

(3.2)适合任务集合中各任务计算的边缘服务器分析,其中任务jj的具体分析方法如下:

(3.2.1)通过tj与矩阵ejm×3中各个边缘服务器预计处理任务jj所需时间tij的比较,选择出tij<tj的边缘服务器,组成矩阵etjk×3,其中k表示矩阵ejm×3中满足tij<tj的边缘服务器的数量,3代表三个参数,即边缘服务器ei的序号,任务jj在ei上计算预计所需时间tij和能耗成本wij;

若etjk×3为空,则进入(3.3.2);

否则进入步骤(3.2.2);

(3.2.2)通过wj与矩阵etjk×3中各个边缘服务器预计处理任务jj需要的能耗成本的比较,选择出wij<wj的边缘服务器,组成矩阵ewjn×3,其中n表示etjk×3中满足tij<tj的边缘服务器的数量,3代表三个参数:边缘服务器ei的序号,任务jj在ei上计算预计所需时间tij和能耗成本wij;

(3.2.3)若ewjn×3为空,则进入(3.3.2),否则进入步骤(3.3.1)

(3.3)为任务集合中各任务,选取适合计算的最佳边缘服务器,其中对任务jj的选取方法具体如下:

(3.3.1)首先在矩阵ewjn×3中,选择预计产生能耗成本wij最小的边缘服务器ej,任务jj直接传输到的边缘服务器fej向ej发送任务jj信息列表infj=<tjbegin,tjend,lj,dj,fej>,边缘服务器ej根据自身计算量剩余情况返回是否允许将任务jj发送至本地的信息;

若ej返回为否定,则将边缘服务器ej从矩阵ewjn×3中去除,重新进入步骤(3.2.3);

若ej返回为肯定,则边缘服务器ej为最终计算任务jj的位置,本步骤结束,进入步骤4;

(3.3.2)首先判断边缘服务器fej是否剩余足够计算资源,若剩余足够计算资源,则任务jj将在边缘服务器fej中执行,本步骤结束,进入步骤4;

如果fej处于满载状态,计算将任务jj发送给云服务器的时间tjcloud,计算方式如下:

其中lencloud,j表示任务jj直接传输到的边缘服务器fej距离云服务器的距离,v表示数据传输速度,dj表示任务jj的数据量,bjout表示边缘服务器fej的上传带宽;

若将任务jj发送至云端处理的时间小于任务jj在本地处理的时间tj,即由步骤3.1得到的最大延迟时间tj,即满足公式tjcloud<tj,则任务jj将发送至云服务器执行;否则将选择把在边缘服务器fej等待执行任务列表中、任务最大截止时间tjend最大的任务发送至云服务器执行,本步骤结束;

步骤(4)边缘服务器中的任务调度和数据传输调度策略,包括以下步骤:

(4.1)边缘服务器中的任务调度,当任务信息到达在步骤(3)中为任务jj选择的边缘服务器ei中时,将进入边缘服务器的待处理任务列表首先根据任务列表的截止时间tjend,由小到大进行排序,边缘服务器首先处理任务列表中排名在前且任务数据在本地的任务;数据不在本地的任务,边缘服务器将对其数据传输进行调度,在这类任务数据到达边缘服务器ei后,将抢占正在执行的任务中,最大截止时间大于本任务最多的任务进行执行,被抢占任务重新进入等待队列等待执行;

(4.2)边缘服务器中的数据传输调度,在步骤(4.1)中为任务确定了执行顺序,则每个任务开始执行的时间便成为了该任务进行数据传输的最大截止时间dtjend,根据等待数据传输的任务列表中的从小到大进行排序,生成任务数据传输调度的顺序,系统按照此顺序进行数据接收,直到所有任务都已安排时,方法终止。

有益效果

本项目面向边缘计算与云计算结合的物联网架构,应对任务处理位置的多种可能,考虑到不同处理位置所产生的能耗成本不同的现实情况,在保证任务处理延迟时间要求的前提下,为任务分配产生能耗成本最小的位置。在为任务选择处理位置的过程中,也考虑到边缘服务器子网中的负载均衡问题,结合了子网中其他空闲边缘服务器和云服务器的计算能力,避免了单一服务器陷入满负载所造成的大量任务延迟。在边缘服务器的任务调度方面,本项目选择基于任务最大截止时间的抢占式调度,进一步保证总体任务的延迟要求。

附图说明

为使本发明的目的、方案更加通俗易懂,下面将结合附图对本发明进一步说明。

图1为边云结合架构图

图2为某一项任务选择处理位置流程图

图3为任务调度过程示意图

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施进行详细说明。

本发明所涉及的是一种面向边云结合架构的资源分配与任务调度的算法,所适应的整体架构图如图1所示,网络边缘部分由边缘服务器组成相互连接的网络,相临近的边缘服务器各自连接为一个网络,通过核心网络与云服务器相连接,所有终端设备都有与其相临近的边缘服务器用于接受其可能传输的任务。边缘服务器的计算能力、存储能力、上传带宽、下载带宽以及计算单位计算量的能耗成本各自不同,云服务器的计算能力与存储能力与边缘服务器相比,远远超越后者。算法具体步骤如下:

步骤(1)、边缘服务器及任务信息配置:

(1.1)边缘服务器列表信息配置:边缘服务器e所在子网中的所有边缘服务器构成一个集合e={e1,e2,……,em}。边缘服务器ei∈e,其信息包括:最大计算能力为ci,最大下载、上传带宽分别为biin和biout,完成单位计算量的能耗成本为pi,下载和上传单位数据量的能耗成本qiin和qiout。所有边缘服务器的信息存储为矩阵einfm×7,m表示集合e中边缘服务器的个数,7表示信息的个数。

矩阵einfm×7分别存储在集合e中的各个边缘服务器中,除此之外云服务中心的信息也将存储在各个边缘服务器中,这些信息包括:边缘服务器ei与云服务器之间的距离lencloud,i,数据传输速度v。

例如图1所示,在边缘服务器所组成的子网中,由边缘服务器e1,e2,e3,e4组成,在各个边缘服务器中都存储着所有边缘服务器的上述信息矩阵einfm×7,以及边缘服务器自身与云服务器之间的距离和数据传输速度,同时各个边缘服务器各自与云服务器之间的距离lencloud,i和数据传输速度v也记录在该边缘服务器之中。

(1.2)任务信息配置:所有需要在边缘服务器中处理的任务组成任务集合j={j1,j2,……,jn}。任务jj∈j,其信息包括:任务直接传输到的边缘服务器fej,任务ji到达边缘服务器ej的时间和任务的最大截止时间tjbegin与tjend,任务jj的计算量lj,任务jj的数据量dj。任务jj的以上信息组成列表infj,则infj=<tjbegin,tjend,lj,dj,fej>,infj跟随任务jj到达其直接传输到的边缘服务器ej。

例如图1所示,在边缘服务器所组成的子网中,某一终端设备所产生的任务j1,其相关信息inf1=<t1begin,t1end,l1,d1,fe1>,此处,fe1为子网中的边缘服务器e1,inf1将跟随任务发送至其直接传输到的边缘服务器fe1,以供后续的分析计算。

步骤(2)当任务到达与其临近的边缘服务器ei后,该服务器依照其上所存储的关于边缘服务器相关信息的矩阵einfm×7,和任务的相关信息列表infj,计算任务在边缘服务器矩阵中不包括fej的各个边缘服务器中的的各个边缘服务器中的预计时间t和预计能耗w,其中任务jj在边缘服务器ei中的预计时间tij和预计能耗wij的计算公式如下:

时间tij:

能耗成本wij:

预计时间tij和预计能耗wij分别由计算和传输两个过程组成。其中,lj表示任务jj的计算量,ci表示边缘服务器信息矩阵einfm×7中任意边缘服务器ei的最大计算能力,dj表示任务jj的数据量,bjout表示任务jj直接传输到的边缘服务器fej的上传带宽,biin表示边缘服务器ei的下载带宽,pi表示边缘服务器ei计算每单位计算量的能耗成本,服务器qjout表示fej上传每单位数据量的能耗成本,qiin表示边缘服务器ei下载没单位数据量的能耗成本。

计算结果存储为矩阵ejm×3,进入步骤(3)。

步骤(3)任务处理位置选择策略,任务的处理位置将在矩阵ejm×3中的边缘服务器以及云服务器之间选择,整体流程如图2所示。

(3.1)首先计算任务jj在其直接传输到的边缘服务器fej中计算所需的能耗wj,和任务的最大延迟时间tj,计算公式如下:

最大延迟时间tj:

能耗wj:wj=lj·pj④

其中,tjend表示任务jj的最大截止时间,tjbegin表示任务jj到达边缘服务器ej的时间,lj,表示任务jj的计算量,pj表示任务jj到达其直接传输到的边缘服务器fej计算每单位计算量的能耗成本。

(3.2)

(3.2.1)通过tj与矩阵ejm×3中各个边缘服务器预计处理任务jj所需时间tij的比较,选择出tij<tj的边缘服务器,组成矩阵etjk×3。其中k表示矩阵ejm×3中满足tij<tj的边缘服务器的数量,3代表三个参数:边缘服务器ei的序号,任务jj在ei上计算预计所需时间tij和产生功耗wij。

若etjk×3为空,则进入(3.3.2);

否则进入步骤(3.2.2)。

(3.2.2)通过wj与矩阵etjk×3中各个边缘服务器预计处理任务jj需要的能耗成本的比较,选择出wij<wj的边缘服务器,组成矩阵ewjn×3。其中n表示etjk×3中满足tij<tj的边缘服务器的数量,3代表三个参数:边缘服务器ei的序号,任务jj在ei上计算预计所需时间tij和产生功耗wij。

(3.2.3)若ewjn×3为空,则进入(3.3.2),否则进入步骤(3.3.1)

(3.3)在完成上述步骤后,任务在各个边缘服务器计算的情况和适合计算的边缘服务器已经分析完成。接下来将在适合任务计算的边缘服务器中为任务jj选取最佳处理位置:

(3.3.1)首先在矩阵ewjn×3中,选择预计产生能耗成本wij最小的边缘服务器ej,任务jj直接传输到的边缘服务器fej向ej发送任务jj信息列表infj=<tjbegin,tjend,lj,dj,fej>,边缘服务器ej根据自身计算量剩余情况返回是否允许将任务jj发送至本地的信息。

若ej返回为否定,则将边缘服务器ej从矩阵ewjn×3中去除,重新进入步骤(3.2.3);

若ej返回为肯定,则边缘服务器ej为最终计算任务jj的位置。

(3.3.2)首先判断边缘服务器fej是否剩余足够计算资源,若剩余足够计算资源,则任务将在边缘服务器fej中执行。如果fej处于满载状态,计算将任务jj发送给云服务器的时间tjcloud,计算方式如下:

其中lencloud,j表示任务jj直接传输到的边缘服务器fej距离云服务器的距离,v表示数据传输速度,dj表示任务jj的数据量,bjout表示边缘服务器fej的上传带宽。

若将任务jj发送至云端处理的时间小于任务在本地处理的时间,即tjcloud<tj,则任务将发送至云服务器执行;

否则将选择在边缘服务器fej等待执行任务列表中,任务最大截止时间tjend最大的任务发送至云服务器执行。

至此,为任务选择处理位置的操作完成

步骤4,在上一步骤为任务分配了合适的处理位置后,选择接受任务的边缘服务器便接收到了任务的相关信息,将在该服务器上进行任务处理顺序调度和数据传输顺序调度,包括以下步骤:

(4.1)任务调度

首先根据边缘服务器中的待处理任务列表,将任务的截止时间tjend进行排序,首先处理队列中任务数据在本地且截止时间最小的的任务,调度方式采用抢占式,即当队列中数据不在本地的任务,所需要的数据到达时,将会抢占服务器正在处理的任务中截止时间tjend大于该任务最多的任务的计算资源,使得该任务进行处理。如图3所示,左侧为边缘服务器计算资源,右侧为当前服务器的待处理任务队列,a、b、c、d四块分别表示四个任务,块的长短代表任务截止时间tjend的大小,长度越短,代表其截止时间越接近,字母后面的0和1,代表任务数据是否在本地边缘服务器,如图中时间节点(1)时,a、c任务的数据在本地,b、d任务的数据不在本地。边缘服务器首先选择数据在本地,且任务截止时间最接近的任务进行处理,直到计算资源分配完毕。在时间节点(3)中,任务b的数据传输到了本地,而任务b的截止时间比正在计算两个任务a、c的截止时间接近,则任务b将抢占截止时间较远的任务a,先进行计算。

(4.2)数据传输调度

在上一步骤任务调度阶段确定了任务执行的顺序,则每个任务开始执行的时间便成为了该任务进行数据传输的最晚截止时间dtjend,根据等待数据传输的任务列表中任务的最晚截止时间dtjend由小到大进行排序,系统根据该序列进行数据传输,直到所有任务都已安排时,算法终止。

本发明面向边云结合的计算架构,对该架构中任务的资源分配和调度算法做出了优化,充分利用边缘服务器的计算能力,将任务在边缘服务器中就近处理,同时充分考虑了不同的边缘服务器计算成本的不同,在保证架构中的任务计算要求时间的前提下,将降低整体系统中任务处理的能耗成本作为目标。此外,周边服务器将被充分利用,为某一边缘服务器繁忙时分担处理任务,使用云服务器作为整体系统繁忙时处理任务的备选,避免了边缘服务器繁忙时所造成的负载集中,达到了负载均衡的目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1