基于深度强化学习的流调度方法、装置、设备及介质
技术领域
本发明涉及一种基于深度强化学习的流调度方法、装置、设备及介质,属于软件定义数据中心网络的流调度领域。
背景技术
目前,软件定义数据中心网络(Software-Defined Data-Center Networks,SD-DCN)已经在被广泛地部署,如谷歌的B4。而DCN中存在三种类型的流,即老鼠流(Mice Flow,简称MF)、已知大小的大象流(Elephant Flow with known sizes,简称EFY)和未知大小的大象流(Elephant Flow with unknown sizes,EFN)。例如,一些面向用户的数据中心应用(网络搜索,社交网络,推荐系统等)会产生MF;虚拟机迁移和数据备份等应用会产生已知大小的大象流;而数据库访问和基于HTTP的大数据块传输等应用会产生未知大小的大象流。更重要的是,大象流(已知大小或未知大小的大象流)和老鼠流具有不同的性能要求。通常,老鼠流是延迟敏感度应用,期望最大化时限要求满足率DMR(Deadline Meet Rate);而大象流期望更高的吞吐量和更短的流完成时间FCT(Flow Completion Time)而其没有具体的截止完成时间(Deadline)。
早期的数据中心网络流调度是将流的分组分布于所有等长的路径上(例如:ECMP),以便充分利用数据中心网络的带宽。然而,由于大象流会比老鼠流消耗更多的带宽,并占用路径更长时间,因此会导致链路负载不平衡。
基于稳定匹配理论,Lin Cui等提出了Fincher来调度大象流,他们假设每个路径对应一个唯一的核心(或聚合)交换机,Fincher分配新的流给适当的交换机,这实际上为其确定了特定的最短路径。因此,他们试图在流和交换机之间找到稳定的匹配。然而,即使他们的假设在胖树(Fat-tree)拓扑下正确,但无法确保在其他拓扑下正确。换句话说,Fincher不能适应于所有类型的拓扑。此外,Fincher的流和交换机之间匹配的缺点是粗粒带宽分配(其粒度是两个交换机之间的所有带宽)。
NUMFabric可以灵活地分配带宽,但它们只优化单个目标,例如最小化流完成时间FCT,多径资源池和优先带宽函数等。作为基于EDF(Earliest Deadline First)方法,pFabric让老鼠流对已知大小的大象流有严格的优先权,这是由SJF(Shortest Job First)安排的。然而,过于积极地完成老鼠流是以牺牲已知大小的大象流为代价的。
概括地说,现有的解决方案专注满足于一种流的需求而忽略了另一种流的需求甚至以损害其他类型流性能为代价。因此,如何同时满足三种流的不同性能要求亟待解决(称为混合流调度问题,Mix-flow scheduling problem)。
为了解决这一问题,Kai Chen等人提出了Karuna,其将老鼠流设置为最高优先级但控制其速率,并根据流大小,将剩余的带宽分配给已知大小的大象流/未知大小的大象流。然而,其采用的非自适应分割或筛选阈值对于跨时空的流量变化不具有自适应性。因此,流量和阈值之间的错配导致老鼠流可能在大象流后面排队,从而会减少其时限要求满足率DMR。
发明内容
本发明的第一个目的是为了解决上述现有技术的不足之处,提供了一种基于深度强化学习的流调度方法,该方法针对老鼠流设计了基于优先级的机制进行调度,针对未知大小的大象流设计了基于稳定匹配的流调度方法进行调度,针对已知大小的大象流设计了基于比例分配的流调度方法进行调度,仿真实验结果证明与以前工作相比具有较大的优势。
本发明的第二个目的在于提供一种基于深度强化学习的流调度装置。
本发明的第三个目的在于提供一种计算机设备。
本发明的第四个目的在于提供一种存储介质。
本发明的第一个目的可以通过采取如下技术方案达到:
一种基于深度强化学习的流调度方法,所述方法包括:
构建面向流调度的深度强化学习架构;
利用深度强化学习架构为老鼠流、未知大小的大象流和已知大小的大象流建立三个相应的专用链路集,并根据流量的跨时空变化,为每个专用链路集分配带宽;
在三个专用链接集内,采用基于优先级的机制对老鼠流进行调度,采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,以及采用基于比例分配的流调度方法对已知大小的大象流进行调度。
进一步的,所述深度强化学习架构的关键要素如下:
奖励:将时限要求满足率-流完成时间的受试者工作特征曲线下方的面积作为深度强化学习的奖励的函数,以引导深度强化学习的代理帮助网络同时实现老鼠流的时限要求满足率最大化和大象流的流完成时间最小化;
动作:采取的动作是建立三个专用链路集;
状态:若流在一个时间步长内完成传输,状态则是流完成时间;否则,状态是实时流持续时间。
进一步的,所述奖励的函数的第i步的奖励值ri表达如下式:
其中,AUCSi为第i步的时限要求满足率-流完成时间的受试者工作特征曲线下方的面积,DMRi为第i步的时限要求满足率,FCTi为第i步的流完成时间;
通过实现AUC_S=∑AUC_Si的最大化,来同时实现老鼠流的时限要求满足率最大化和大象流的流完成时间最小化。
进一步的,所述利用深度强化学习架构为老鼠流、未知大小的大象流和已知大小的大象流建立三个相应的专用链路集,具体为:
将一对源-目的地之间的每跳链路的带宽划分为一些切片,利用深度强化学习架构根据老鼠流、未知大小的大象流和已知大小的大象流的需求将这些切片进行组合,从而建立三个对应的专用链路集。
进一步的,在未知大小的大象流专用链路集内,所述采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,具体包括:
设置流和路径;
为流和路径构建偏好表;
根据流和路径的偏好表,构建流-路径稳定匹配模型;
根据流-路径稳定匹配模型,基于一对一稳定匹配理论的方法在流和路径之间找到最佳匹配,实现未知大小的大象流的最优调度。
进一步的,在已知大小的大象流专用链路集内,采用基于比例分配的流调度方法对已知大小的大象流进行调度,已知大小的大象流被分配的带宽如下所示:
其中,si为已知大小的大象流fi的大小,B_free为已知大小的大象流专用链路集内总的空闲带宽,Bi为已知大小的大象流fi被分配的带宽。
进一步的,在老鼠流专用链路集内,所述采用基于优先级的机制对老鼠流进行调度,具体包括:
在用户发送的老鼠流的报文头部中设置该报文的优先级;
当一个新报文到达交换机并且该交换机的缓冲区已满时,若新报文的优先级低于缓冲区中的所有报文的优先级,则丢弃新报文;否则,将缓冲区中的最低优先级的报文替换为新报文;
当交换机转发报文时,从缓冲区中选择优先级最高的报文进行发送。
本发明的第二个目的可以通过采取如下技术方案达到:
一种基于深度强化学习的流调度装置,所述装置包括:
深度强化学习架构构建模块,用于构建面向流调度的深度强化学习架构;
链路集建立模块,用于利用深度强化学习架构为老鼠流、未知大小的大象流和已知大小的大象流建立三个相应的专用链路集,并根据流量的跨时空变化,为每个专用链路集分配带宽;
流调度模块,用于在三个专用链接集内,采用基于优先级的机制对老鼠流进行调度,采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,以及采用基于比例分配的流调度方法对已知大小的大象流进行调度。
本发明的第三个目的可以通过采取如下技术方案达到:
一种计算机设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述的基于深度强化学习的流调度方法。
本发明的第四个目的可以通过采取如下技术方案达到:
一种存储介质,存储有程序,所述程序被处理器执行时,实现上述的基于深度强化学习的流调度方法。
本发明相对于现有技术具有如下的有益效果:
本发明利用深度强化学习架构为老鼠流、未知大小的大象流和已知大小的大象流建立三个相应的专用链路集,在三个专用链接集内,采用基于优先级的机制对老鼠流进行调度,采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,以及采用基于比例分配的流调度方法对已知大小的大象流进行调度,可以同时最大化老鼠流的时限要求满足率和最小化大象流的流完成时间,与其他现有技术相比,采用深度强化学习来避免为一种类型流的专用链路集过度地分配资源而使得其他类型流的可用资源不足。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明实施例1的基于深度强化学习的流调度方法的流程图。
图2为本发明实施例1的深度强化学习架构的示意图。
图3为本发明实施例1的胖树设置的专用链路集示意图。
图4为本发明实施例1的受试者工作特征曲线图。
图5为本发明实施例2的基于深度强化学习的流调度装置的结构框图。
图6为本发明实施例2的计算机设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
本实施例为软件定义数据中心网络提出了一种基于深度强化学习的流调度(deepreinforcement learning-based flow scheduling,简称DRL-Flow)方法。
基于深度强化学习的流调度的理论基础:显然,越早地传输完成一个流意味着占用更多的网络资源,而应用的截止完成时间反映了应用的性能要求,因此在远早于其截止完成时间内传输完成一个流意义不大(或者是没必要的)。
所以基于深度强化学习的流调度解决混合流调度问题的主要思路是:首先为三种类型的流建立三个对应专用链路集,实际上就是分配合适的网络资源;然后在三个专用链路集内,分别对老鼠流采用基于优先级的机制、对未知大小的大象流采用基于稳定匹配、对已知大小的大象流采用基于比例分配的流调度方法。
基于深度强化学习的流调度的效果:建立专用链路集的优点是可以避免现有方案的以下缺点:首先,由于大象流(已知大小或未知大小的大象流)长时间占用大量带宽,导致老鼠流的时限要求满足率(Deadline Meet Rate,简称DMR)减小;其次,严格地优先安排老鼠流(例如pFabric)是以增加大象流的流完成时间(Flow Completion Time,简称FCT)为代价,老鼠流占用所有可用带宽使得在远早于时限要求满足率之前就完成传输;最后,由于不合理的带宽分配所导致的带宽碎片问题,为已知大小的大象流设置专用链路集,因为它的大小在调度之前是已知的,所以带宽可以有序地、确定性地分配,而不是随机分配,从而可避免此问题。
本实施例采用基于深度强化学习的流调度方法,可以最大化老鼠流的时限要求满足率,并最小化大象流的流完成时间。此外,与其他现有技术本质不同之处在于,本实施例采用深度强化学习来避免为一种类型流的专用链路集过度地分配资源而使得其他类型流的可用资源不足,在众多深度强化学习算法中,选择深度确定性策略梯度(DeepDeterministic Policy Gradient,简称DDPG)算法。
如图1所示,本实施例的基于深度强化学习的流调度方法具体包括以下步骤:
S101、以基于社团的方式划分网络域。
通过现有文献《基于社区的复杂云数据中心(Community-based complex clouddata center)》研究发现,基于社团(community-based)的数据中心可有效地实现资源最佳管理,例如容量分配,负载平衡,能源优化和服务质量(QoS)保证。现有文献《一种数据中心网络中的自适应分布式SDN控制器(an Adaptively Distributed SDN Controller inData Center Networks)》也证明基于社团的交换机到控制器映射方案(AAMcon)可以减少控制器和交换机之间的通信时间。
因此,本实施例将软件定义数据中心网络划分为一些社团,而一个社团则是一个网络域(network domain),一个SDN控制器负责管理一个网络域内的通信。
S102、构建可部署深度强化学习代理的网络。
根据全局网络拓扑,在每个网络域内,在每个SDN控制器上部署一个深度强化学习代理(agent),这样可分别实现网络状态(State)的采集和动作(Action)的下达。
S103、构建面向流调度的深度强化学习架构。
如图2所示,一方面深度强化学习代理通过强化学习(reinforcement learning,RL)与网络交互:包括从网络w收集状态,对网络w采取动作,并最终从网络w反馈奖励。在软件定义数据中心网络中,根据代理采取的动作,控制器使用OpenFlow协议为交换机(使用Packet-Out消息等)创建基于流表的路径和转发规则。
另一方面,深度强化学习代理使用卷积神经网络(convolutional neuralnetwork,简称CNN)寻找从状态空间S到动作空间A的映射。换句话说,深度强化学习代理和网络w之间多次交互后,它可以找到实现最优流调度的最佳动作集,即策略(policy)。
S104、建立专用链路集。
在任意一对源-目的地之间,SDN控制器上的深度强化学习代理为老鼠流、已知大小的大象流和未知大小的大象流建立三个相应的专用链路集,即三个专用链路集分别为老鼠流专用链路集、已知大小的大象流专用链路集以及未知大小的大象流专用链路集;然后根据流量的跨时空变化,自适应地、智能地为每个专用链路集分配带宽。
建立专用链路集的主要思路是切分带宽并按需组合:将一对源-目的地之间的每跳链路的带宽划分为一些切片,然后根据老鼠流、未知大小的大象流和已知大小的大象流的需求将这些切片组合。
将一跳链路的带宽均匀地划分为u个切片,亦即,带宽的分配粒度是1/u(称为网络切片),那么,每种流可以获得k/u的带宽,其中k={0,1,2,3,...u}。如果一个路径有h跳,则为每种流分配带宽的方案数量上限为(1+u)h,那么,为老鼠流、未知大小的大象流和已知大小的大象流的分配带宽的方案数量上限为(1+u)3h。
在胖树(Fat-tree)拓扑下,当K=4时,对于pod间的流来说,在任何一对给定主机之间存在着(K/2)2=4个等长的最短路径。如图3所示,作为在h1和h7对之间建立专用链路集的示例,未知大小的大象流专用链路集是以下带宽组合:e1-a2带宽的2/4,a2-c3带宽的4/4,c3-a4带宽的4/4和a4-e4带宽的2/4。
S105、在专用链路集内调度老鼠流、未知大小的大象流和已知大小的大象流。
在三个专用链接集内,采用基于优先级的机制对老鼠流进行调度,采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,以及采用基于比例分配的流调度方法对已知大小的大象流进行调度,以下未知大小的大象流的基于稳定匹配的流调度方法和已知大小的大象流的基于比例分配的流调度方法进行说明。
一、采用基于优先级的机制对老鼠流进行调度。
在老鼠流专用链路集内,采用基于优先级的机制对老鼠流进行调度具体包括:
1)在用户发送的老鼠流的报文头部中设置该报文的优先级。
2)当一个新报文到达交换机并且该交换机的缓冲区已满时,若新报文的优先级低于缓冲区中的所有报文的优先级,则丢弃新报文;否则,将缓冲区中的最低优先级的报文替换为新报文。
3)当交换机转发报文时,从缓冲区中选择优先级最高的报文进行发送。
二、采用基于稳定匹配的流调度方法对未知大小的大象流进行调度。
在实现切分带宽并按需组合的基础上,本发明提出了流和路径之间的稳定匹配机制,以实现可应用于所有类型拓扑的细粒度带宽分配。
如上所述,让每跳链路带宽划分为一些网络切片。因此,在未知大小的大象流专用链路集内,根据未知大小的大象流的流数量,通过对组合网络切片来构建一定数量的路径。在所提的未知大小的大象流的流调度方案中,每个路径仅与一个流匹配,并且每个流仅与一个路径匹配。因此,流调度实际上转化为经典的一对一稳定匹配问题,例如稳定婚姻问题。
在所提的基于稳定匹配的流调度方法中,需要设置两个对象:路径和流。
设置路径:一组路径被定义为SP={sp1,sp2,...},其中|SP|是路径的总数量。在软件定义数据中心网络中,因为专用链路集内的排队时延很小,传输时延成为影响流完成时间的主要因素。由于路径由多跳链路组成,因此流完成时间将主要由该路径的平均带宽确定。设路径spj具有k跳链路,其上各跳链路的空闲带宽分别为{bj1,bj2,bj3...bjk},那么,将路径spj的平均带宽记为(本实施例称为路径的带宽)。进一步地说,对于实现一个预期的流完成时间,路径的带宽实际等效于它可以传输的流的大小。
设置流:一组流被定义为F={f1,f2,...},其中|F|是流的总数量。将si表示为流fi的大小。可以获得实时流持续时间(βr)和实时流速率(θr),因此可以等效地将si=βr*θr。
接下来,将构建流-路径稳定匹配模型。
首先,为流和路径构建偏好表,如下所示:
1)每个流都有一个对路径的偏好表P(fi)={sp1,sp2,...};其中,每个路径spj(spj∈P(fi))的带宽都足以接受流fi,即bj≥si。流总是优先选择有更多带宽的路径,因为这样就可以减少它的流完成时间。
2)每个路径都有一个对流的偏好表P(spj)={f1,f2,...};其中,每个流fi(fi∈P(spj))都可以被路径spj接受,该偏好表中流的大小小于路径的带宽,且该偏好表中流的优先级顺序由它们的大小决定,以充分利用路径的带宽。也就是说,当bj≥si时,流的大小越接近路径的带宽,其优先级越高。
针对具有带宽约束的流和路径的偏好表,其目标是在流和路径之间找到最佳匹配,即对于每个流,没有更好的路径(具有更大带宽)可以接受它,而对于每个路径,当它仍有足够的可用带宽时不会拒绝更大的流。
为了描述方便,本实施例做如下约定:M是流和路径之间的匹配,将M(fi)表示为传输fi的路径;类似地,将M(spj)表示为与路径spj匹配的流。E(fi,spj)=1表示为M中发生的如下fi和spj不匹配的事件:spj有足够的带宽来传输fi,并且spj和fi都是彼此比当前在M中的匹配对象更优选的对象。当E(fi,spj)=1,则称(fi,spj)为如定义2描述的一个阻塞对。x>yz表示x在偏好表P(z)中的优先级高于y。当E(fi,spj)=0,则(fi,spj)不是一个阻塞对。
因此,可以如定义1所述来定义流-路径稳定匹配模型FPSM(Flow-Path StableMatching)。
定义1:给定SP和F的集合,流-路径稳定匹配模型FPSM旨在找到具有最多的匹配M={(fi,spj)|fi∈P(spj),spj∈P(fi)},即:
Max|M|
S.t.
(1)bj≥si;
(2)E(fi,M(fi))=0;
(3)|M(fi)|≤1;
(4)|M(spj)|≤1.
其中,i=1,2,...,|F|;j=1,2,...,|SP|.
流-路径稳定匹配模型FPSM旨在获得最多流和路径之间的匹配并且不存在阻塞对。其中,第一个约束条件确保所有路径都不会过载,第二个约束条件确保没有阻塞对出现,最后两个约束条件确保流和路径之间的一对一稳定匹配。
定义2:如果满足以下条件,流-路径对则是一个阻塞对:
bj≥si (1)
其中,fi>M(spj)spj,spj>M(fi)fi。
本实施例在完成流-路径稳定匹配模型的构建后,流调度就变成了一对一的稳定匹配问题,首先通过对流-路径稳定匹配模型求解最优解找到最多的匹配M={(fi,spj)|fi∈P(spj),spj∈P(fi)},获得最多的没有阻塞对的流与路径之间的匹配,然后采用经典的DeferredAcceptance算法(也称为Gale-Shapley算法)在流和路径之间找到最佳的一对一稳定匹配,该算法会往复一个提议-拒绝的过程,其中,流负责提议,而路径会选择拒绝或接受该提议。
在流和路径之间找到最佳的一对一稳定匹配,具体为:每个路径仅与一个流匹配,并且每个流仅与一个路径匹配;针对具有带宽约束的流和路径的偏好表,对于每个流,没有更好的路径(具有更大带宽)可以接受它,而对于每个路径,当它仍有足够的可用带宽时不会拒绝更大的流。
三、采用基于比例分配的流调度方法对已知大小的大象流进行调度。
由于已知大小的大象流的大小和已知大小的大象流专用链路集内总的空闲带宽都是已知的,设计基于比例的简单策略可很好地分配带宽。所以,在已知大小的大象流专用链路集内,采用基于比例分配的流调度方法对已知大小的大象流进行调度,已知大小的大象流被分配的带宽如下所示:
其中,si为已知大小的大象流fi的大小,B_free为已知大小的大象流专用链路集内总的空闲带宽,Bi为已知大小的大象流fi被分配的带宽。
本领域技术人员可以理解,实现上述实施例的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,相应的程序可以存储于计算机可读存储介质中。
应当注意,尽管在附图中以特定顺序描述了上述实施例的方法操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
上述深度强化学习架构的基本机制设计如下:
(1)奖励(Reward,r)
一个好的分类器期望同时具有更高的真阳率(true positive rate,TPR)和更低的假阳率(false positive rate,FPR)。作为广泛用于评估分类器性能的指标,ROC AUC(the Area Under the Receiver Operating Characteristic Curve)是指在以真阳率为横坐标、以假阳率为纵坐标的ROC曲线(Receiver Operating Characteristic Curve,受试者工作特征曲线)下方的面积。
本实施例的目标是最大化老鼠流的时限要求满足率,并最小化大象流的流完成时间。显然,由于带宽有限,在最大化老鼠流的时限要求满足率和最小化大象流的流完成时间之间存在矛盾。因此本实施例设计一种改进的ROC AUC(称为AUC_S)作为流调度的评估指标。并且,让AUC_S作为深度强化学习架构的奖励r的函数,以引导深度强化学习代理找到上述目标的最好解决方案。
具体地,在第i步设置奖励ri为:
ri=AUC_Si (3)
其中,AUC_Si是第i步的AUC_S,即时限要求满足率-流完成时间的受试者工作特征曲线下方的面积。
AUC_S的计算过程:在DRL学习过程中的i步,分别计算出DMRi和FCTi。其中,FCTi是在i步期间所有流的FCT的平均值,然后让FCTi除以Norm以完成归一化。根据FCT的最大值来设定Norm,例如,在实施例中,被设为10秒。然后可以画出如图4所示的ROC曲线,其中纵轴是DMR,而横轴是FCT。那么,可以从ROC曲线计算其中DMRi为第i步的时限要求满足率,FCTi为第i步的流完成时间。
显然,为了得到一个具有更大AUC_S的ROC曲线,目标就被转化为最大化AUC_S=∑AUC_Si。
(2)动作(Action,a)
在本实施例中,采取动作a为老鼠流、已知大小的大象流或未知大小的大象流建立专用链路集,实际上相当于对网络切片进行组合。因此,如上所述的总的组合方案的上限数量为((1+u)3h),这实际上也是基于深度强化学习的流调度的动作空间上限。为了提高深度强化学习的学习效率,在后面将提出如何限制动作空间上限和设置动作a的初始值的方法。
(3)状态(State,s)
由于某些大象流的流完成时间可能比一个时间步长(timestep)更长,因此在采取动作a后,无法立即获得流的流完成时间。此时,可以将在第i步期间的实时流持续时间(βr)等价于FCTi。例如,在本实施例中,将时间步长设定为10秒。
深度强化学习代理需要从网络收集状态s以计算DMRi和FCTi,所以本实施例中的状态s按如下方法设置:如果流在一个时间步长内完成传输,则是流的流完成时间;否则,则是实时流持续时间(βr)。
本实施例的一个应用实例中,使用RYU+Mininet平台评估基于深度强化学习的流调度方法。其中,实验拓扑为具有8-pod的胖树,所有链路都设置为1Gbps。每个交换机输出端口的缓冲区大小为200个数据包。分别通过合成和实际流量来评估基于深度强化学习的流调度方法,其中流中数据包的请求符合泊松过程。实验数据是深度强化学习运行1000个epoch后的记录结果。
如图4所示,实验结果表明,本实施例的基于深度强化学习的流调度方法(DRL-Flow)能够以牺牲最小的流完成时间FCT来提高时限要求满足率DMR,它的AUC(时限要求满足率-流完成时间的受试者工作特征曲线下方的面积)是0.156,比Fincher和pFabric分别提高了7.6%、11.1%。
又例如,当流完成时间FCT=0.565时,DRL-Flow、Fincher和pFabric的时限要求满足率DMR分别为0.96、0.83和0.78;另一方面,当时限要求满足率DMR=0.93时,DRL-Flow、Fincher和pFabric的流完成时间FCT分别为0.532、0.625和0.693,上述实验结果,都证明DRL-Flow比Fincher和pFabric有明显的性能改善。
实施例2:
如图5所示,本实施例提供了一种基于深度强化学习的流调度装置,该装置包括网络域划分模块501、网络构建模块502、深度强化学习架构构建模块503、链路集建立模块504和流调度模块505,各个模块的具体功能如下:
所述网络域划分模块501,用于以基于社团的方式划分网络域。
所述网络构建模块502,用于构建可部署深度强化学习代理的网络。
所述深度强化学习架构构建模块503,用于构建面向流调度的深度强化学习架构。
所述链路集建立模块504,用于利用深度强化学习架构为老鼠流、未知大小的大象流和已知大小的大象流建立三个相应的专用链路集,并根据流量的跨时空变化,为每个专用链路集分配带宽;
所述流调度模块505,用于在三个专用链接集内,采用基于优先级的机制对老鼠流进行调度,采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,以及采用基于比例分配的流调度方法对已知大小的大象流进行调度。
本实施例中各个模块的具体实现可以参见上述实施例1,在此不再一一赘述;需要说明的是,本实施例提供的装置仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
实施例3:
本实施例提供了一种计算机设备,该计算机设备可以是服务器,如图6所示,其包括通过系统总线601连接的处理器602、存储器和网络接口603,该处理器用于提供计算和控制能力,该存储器包括非易失性存储介质604和内存储器605,该非易失性存储介质604存储有操作系统、计算机程序和数据库,该内存储器605为非易失性存储介质中的操作系统和计算机程序的运行提供环境,处理器602执行存储器存储的计算机程序时,实现上述实施例1的基于深度强化学习的流调度方法,如下:
以基于社团的方式划分网络域;
构建可部署深度强化学习代理的网络;
构建面向流调度的深度强化学习架构;
利用深度强化学习架构为老鼠流、未知大小的大象流和已知大小的大象流建立三个相应的专用链路集,并根据流量的跨时空变化,为每个专用链路集分配带宽;
在三个专用链接集内,采用基于优先级的机制对老鼠流进行调度,采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,以及采用基于比例分配的流调度方法对已知大小的大象流进行调度。
实施例4:
本实施例提供了一种存储介质,该存储介质为计算机可读存储介质,其存储有计算机程序,所述程序被处理器执行时,处理器执行存储器存储的计算机程序时,实现上述实施例1的基于深度强化学习的流调度方法,如下:
以基于社团的方式划分网络域;
构建可部署深度强化学习代理的网络;
构建面向流调度的深度强化学习架构;
利用深度强化学习架构为老鼠流、未知大小的大象流和已知大小的大象流建立三个相应的专用链路集,并根据流量的跨时空变化,为每个专用链路集分配带宽;
在三个专用链接集内,采用基于优先级的机制对老鼠流进行调度,采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,以及采用基于比例分配的流调度方法对已知大小的大象流进行调度。
本实施例中所述的存储介质可以是磁盘、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、U盘、移动硬盘等介质。
综上所述,本发明利用深度强化学习架构为老鼠流、未知大小的大象流和已知大小的大象流建立三个相应的专用链路集,在三个专用链接集内,采用基于优先级的机制对老鼠流进行调度,采用基于稳定匹配的流调度方法对未知大小的大象流进行调度,以及采用基于比例分配的流调度方法对已知大小的大象流进行调度,可以同时最大化老鼠流的时限要求满足率和最小化大象流的流完成时间,与其他现有技术相比,采用深度强化学习来避免为一种类型流的专用链路集过度地分配资源而使得其他类型流的可用资源不足。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。