CN110008024B - 一种多维约束下基于延迟决策的容器调度方法以及装置 - Google Patents
一种多维约束下基于延迟决策的容器调度方法以及装置 Download PDFInfo
- Publication number
- CN110008024B CN110008024B CN201910259625.2A CN201910259625A CN110008024B CN 110008024 B CN110008024 B CN 110008024B CN 201910259625 A CN201910259625 A CN 201910259625A CN 110008024 B CN110008024 B CN 110008024B
- Authority
- CN
- China
- Prior art keywords
- scheduled
- task
- container
- constraint
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多维约束下基于延迟决策的容器调度方法以及装置。该容器调度方法包括:获取多个待调度任务以及各待调度任务的容器信息;依据各待调度任务的容器信息,获取各待调度任务对应的候选节点集合;依据各待调度任务对应的候选节点集合以及节点的资源情况,对多个待调度任务进行优先级排序;按照优先级递减的方式,依次放置各待调度任务对应的容器至目标节点。本发明利用延迟决策的思想一次考虑多个任务请求,根据实际情况对多个待调度任务进行重排序,先放置优先级高的任务,不仅可以降低约束违规率,同时还可以提高资源利用率,优化了集群性能。
Description
技术领域
本发明属于互联网及云计算技术领域,更具体地,涉及一种多维约束下基于延迟决策的容器调度方法以及装置。
背景技术
根据生产环境的真实数据显示,应用存在着多维约束,容器集群资源共享管理模式需满足亲和、反亲和等复杂约束,否则会引起巨大的经济损失。现有的对应用支持约束表达的调度系统仍然处于探索阶段,亲和性约束简单的被实现,但仅仅是是通过静态机器属性隐式来支持约束,缺乏一定的灵活性,导致较高的约束违规率。如何平衡放置质量和资源利用率,以实现更好的应用性能和更低的经济成本是大规模容器集群环境下需要解决的问题。
同时,任务的放置顺序也对资源利用率和约束违规率有着重要的影响,现有调度系统拥有的队列类型以及队列管理功能,大部分支持的是节点上的全局或部分排队,如何通过任务的队列重排序实现高质量的任务放置成为集群调度问题的新挑战。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种多维约束下基于延迟决策的容器调度方法以及装置,其目的在于利用延迟决策的思想一次考虑多个任务请求,根据实际情况对多个待调度任务进行重排序,先放置优先级高的任务,不仅可以降低约束违规率,同时还可以提高资源利用率,优化了集群性能。
为实现上述目的,按照本发明的一个方面,提供了一种多维约束下基于延迟决策的容器调度方法,所述容器调度方法包括:
获取多个待调度任务以及各待调度任务的容器信息;
依据各待调度任务的容器信息,获取各待调度任务对应的候选节点集合;
依据各待调度任务对应的候选节点集合以及节点的资源情况,对多个待调度任务进行优先级排序;
按照优先级递减的方式,依次放置各待调度任务对应的容器至目标节点。
优选地,所述容器信息包括可部署的节点;
所述依据各待调度任务的容器信息,获取各待调度任务对应的候选节点集合包括:
依据各待调度任务的容器信息以及容器的放置约束,对容器集群中全部节点进行过滤,得到各待调度任务对应的候选节点集合;
采用优先级函数,对各待调度任务对应的候选节点集合中的节点进行排序,得到排序后的候选节点集合。
优选地,所述依据各待调度任务的容器信息以及容器的放置约束,对容器集群中全部节点进行过滤,得到各待调度任务对应的候选节点集合包括:
依据各待调度任务的容器信息,对容器集群中全部节点进行节点端口可用性过滤、资源满足性过滤和磁盘冲突性过滤,得到初次节点集合;
依据各待调度任务的放置约束,对所述初次节点集合进行亲和性约束过滤、反亲和性约束过滤以及基数约束过滤,得到各待调度任务对应的候选节点集合。
优选地,所述优先级函数包括亲和性约束函数、反亲和性约束函数、基数约束函数、节点资源评估函数和节点资源均衡函数;
所述采用优先级函数,对各待调度任务对应的候选节点集合中的节点进行排序,得到排序后的候选节点集合包括:
为所述亲和性约束函数、所述反亲和性约束函数、所述基数约束函数、所述节点资源评估函数和所述节点资源均衡函数设置相应的权重值;
采用加权求和的方式,获取各待调度任务对应的候选节点集合中各节点的评分结果;
依据所述评分结果进行排序,得到各待调度任务对应的排序后的候选节点集合。
优选地,所述依据各待调度任务对应的候选节点集合以及节点的资源情况,对多个待调度任务进行优先级排序包括:
建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵;
依据所述决策矩阵获取各待调度任务的决策评价值,依据所述决策评价值对多个待调度任务进行优先级排序。
优选地,所述评估属性集合包括匹配节点数、饥饿时间和资源请求量;
所述建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵包括:
依据各待调度任务对应的可匹配节点数、各待调度任务对应的饥饿时间和每个节点的资源请求量,对各待调度任务进行评估,得到决策矩阵。
优选地,所述建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵包括:
对所述决策矩阵中,各待调度任务对应的匹配节点数、饥饿时间和资源请求量进行归一化处理,得到归一化的决策矩阵。
优选地,所述建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵包括:
为所述匹配节点数、所述饥饿时间和所述资源请求量设置权重值,得到评估属性权重向量;
基于所述评估属性权重向量对所述归一化的决策矩阵进行重新构建,得到加权后的归一化决策矩阵。
优选地,在调度间隔内获取多个任务请求,暂不执行所述多个任务请求,并将所述多个任务请求标记为待调度任务,其中,所述调度间隔小于应用运行的时间;
获取各待调度任务的容器信息。
按照本发明的另一方面,提供一种容器调度装置,包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的容器调度方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供一种多维约束下基于延迟决策的容器调度方法,该容器调度方法包括:获取多个待调度任务以及各待调度任务的容器信息;依据各待调度任务的容器信息,获取各待调度任务对应的候选节点集合;依据各待调度任务对应的候选节点集合以及节点的资源情况,对多个待调度任务进行优先级排序;按照优先级递减的方式,依次放置各待调度任务对应的容器至目标节点。本发明在多维约束的集群环境中,利用延迟决策的思想一次考虑多个任务请求,根据实际情况对多个待调度任务进行重排序,先放置优先级高的任务,不仅可以降低约束违规率,同时还可以提高资源利用率,优化了集群性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的部分关键术语的关联关系示意图;
图2是本发明实施例提供的一种多维约束下基于延迟决策的容器调度方法的流程示意图;
图3是本发明实施例提供的步骤11的具体流程示意图;
图4是本发明实施例提供的步骤12的具体流程示意图;
图5是本发明实施例提供的一种基于多属性决策的任务队列重排序模型示意图;
图6是本发明实施例提供的步骤12的实现过程示意图;
图7是本发明实施例提供的步骤11的实现过程示意图;
图8是本发明实施例提供的一种容器调度装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
为便于清楚地理解本发明的内容,结合图1,下面首先解释说明本发明中所涉及到的部分关键术语以及所述关键术语之间的关联关系。
容器集群(Container Cluster):容器集群可以包括容器运行所需要的云资源,所述云资源通常可以包括多个节点、负载均衡、专有网络等资源。
节点:节点可以用于部署和管理容器,所述节点可以为虚拟机实例,也可以为物理服务器,所述节点上可以安装容器运行环境和管理器。
容器:容器部署在节点上,且一个节点上可运行至少一个容器,任务运行在相应的容器上。
任务:任务可以理解为程序进程,运行在对应的容器上。
应用:应用可以包含至少一个任务。
下面基于上述关联关系的说明,介绍本申请技术方案的实现过程。
在多维约束的集群环境中,应用约束表达能够保证应用更好的性能,并且不同的任务调度顺序会导致不同的资源利用情况。由于现阶段约束的表达方式都是基于静态机器属性的,不能表达容器之间的约束限制,只能简单表达机器与容器的约束。如何平衡放置质量和资源利用率以实现更好的应用性能和更低的经济成本成为大规模集群环境下亟待解决的问题。
为解决前述问题,本实施例提供了一种多维约束下基于延迟决策的容器调度方法,本实施例的容器调度方法是基于延迟的方式进行容器调度的,为了避免延迟时间对应用的影响,本实施例的容器调度方法主要适用于长期在线运行的应用,例如,流处理、迭代计算或者数据密集型交互,针对这类应用,任务的放置顺序对资源利用率和约束违规率有着重要影响,合适的任务调度顺序可以减小初始化成本、调度负载以及约束违规率,同时可以提高资源利用率。
如图2所示,该多维约束下基于延迟决策的容器调度方法包括如下步骤:
步骤10:获取多个待调度任务以及各待调度任务的容器信息。
在本实施例中,在调度间隔内获取多个任务请求,暂不执行所述多个任务请求,并将所述多个任务请求标记为待调度任务,其中,所述调度间隔小于应用运行的时间;获取各待调度任务的容器信息。
具体地,在调度间隔内存在多个任务请求,可以将该调度间隔内的多个任务请求集中起来,暂不执行(按照本实施例的方法完成容器调度后,再执行前述多个任务请求)。该调度间隔内的多个任务请求即为待调度任务。其中,调度间隔远小于应用的运行时间,调度间隔与具体的应用类型以及应用运行的时间有关,例如,调度间隔可以为30s、1分钟、2分钟等,在实际应用场景下,可以经过多次试验得到。
现假设调度间隔为π,定义待调度任务集合T={T1,T2…Ti…Tn},其中,对于集合中的每个任务Ti均为待调度任务。
其中,容器为每个任务提供基础环境和服务设施,以保证任务能够正常运行。容器信息包括应用ID、应用类型、部署节点以及资源的规范等,在本实施例中,可以采用容器标签简单记录应用生成的容器信息。
步骤11:依据各待调度任务的容器信息,获取各待调度任务对应的候选节点集合。
其中,每个待调度任务可供选择的放置节点至少为一个,可以依据待调度任务的容器信息以及相应的放置约束,获取各待调度任务对应的候选节点集合。
其中,可以采用节点标签集的方式标注每个节点对应的容器信息。当一个容器被分配到某个节点上时,容器标签会被添加到该节点对应的节点标签集中,只有当容器完成执行,不在运行状态时,与该节点关联的容器标签才被移除。其中,节点标签集表示以节点为单位设置的标签集,将在一定时间内运行在同一个节点上的容器标签集合设为节点标签集,节点标签集中的每个标签可以与所属节点上的多个容器相关联。
具体地,可以使用“形式语言-标签”指定容器的放置约束,改变每个节点对应的标签集,动态地添加或删除约束。其中,放置约束包括亲和性约束、反亲和性约束和基数约束。
其中,亲和性约束表示满足亲和性约束的任务需要邻近放置,例如,任务A与任务B之间频繁交互,所以有必要利用亲和性让两个任务的尽可能的靠近,甚至在一个节点上,以减少因网络通信而带来的性能损耗。
反亲和性约束表示满足反亲和性约束的任务需要远离放置,打散分布在各个节点上。
基数约束表示某个节点上所部署的容器的数目存在限制。
在本实施例中,可以依据节点端口可用性、资源是否满足以及挂载的磁盘是否冲突等一些常见因素进行基本过滤,然后再考虑待调度任务之间的约束关系,例如,亲和性约束、反亲和性约束以及基数约束,进行约束过滤,得到每个待调度任务对应的候选节点集合。
步骤12:依据各待调度任务对应的候选节点集合以及节点的资源情况,对多个待调度任务进行优先级排序。
其中,可以根据资源消耗情况、资源均衡情况以及容器之间的约束情况,对待调度任务进行优先级排序,得到最优的任务调度顺序,实现最优的任务放置。
步骤13:按照优先级递减的方式,依次放置各待调度任务对应的容器至目标节点。
在本实施例中,按照优先级从高到低的顺序,依次放置各待调度任务对应的容器至目标节点。将所有的待调度任务对应的容器放置到目标节点后,运行相应的待调度任务,从而完成任务请求。
在多维约束的集群环境中,本实施例的容器调度方法利用延迟决策的思想一次考虑多个任务请求,根据实际情况对多个待调度任务进行重排序,先放置优先级高的任务,不仅可以降低约束违规率,同时还可以提高资源利用率,优化了集群性能。
在可选的方案中,所述容器信息包括可部署的节点。如图3所示,在步骤11中,依据各待调度任务的容器信息,获取各待调度任务对应的候选节点集合,具体包括如下步骤:
步骤111:依据各待调度任务的容器信息以及容器的放置约束,对容器集群中全部节点进行过滤,得到各待调度任务对应的候选节点集合。
具体地,首先对容器集群中的全部节点进行基本过滤,依据各待调度任务的容器信息,对容器集群中全部节点进行节点端口可用性过滤、资源满足性过滤和磁盘冲突性过滤,得到初次节点集合。其中,资源包括内核资源、CPU资源。
步骤112:依据各待调度任务的放置约束,对所述初次节点集合进行亲和性约束过滤、反亲和性约束过滤以及基数约束过滤,得到各待调度任务对应的候选节点集合。
然后,对前述初次节点集合进行约束过滤,得到各待调度任务对应的候选节点集合。
在本实施例中,约束的定义形式如下:
P={subject_label,label_constraint,node_group}
其中,subject_label是一个容器标签,标识受约束限制的容器;label_constraint是{p_label,pmin,pmax}形式的约束,其中,p_label是容器标签的关联,标识与受约束限制的容器的关联,pmin、pmax是正整数,代表容器的个数,node_group表示节点组。
为了实现对集群中节点的约束过滤,将亲和性约束、反亲和性约束以及基数约束进行详细表达,利用前述定义的约束类型,可以表达所讨论的长期运行的应用的约束。具体的约束表达形式为:
当pmin=1和pmax=∞,表达亲和性(affinity)约束;例如,亲和性约束表达式Paf={storm,{hb∧mem,1,∞},node},指的是每个具有标签storm应用的容器放置在同一个节点中,至少有一个带有hb和mem标签的容器。例如,限制一个亲和性约束到一个具有ID005标签指定的应用,对应的表达式为Paf′={appID:0055∧storm,{appID:0055∧hb∧mem,1,∞},node}。
当pmin=0和pmax=0,表达反亲和性(anti-affinity)约束;例如,反亲和性约束表达式Paa={storm,{hb,0,0},node},指的是要求将每个storm应用的容器放置在与所有hb应用不同的节点中。
当pmin和pmax为其他的值时,表达基数约束。例如,基数约束表达式Pca={storm,{spark,0,5},rack},指的是每一个storm应用的容器放置在一个机架上,这个机器不能部署大于5个spark应用的容器。
在实际应用场景下,如果subject_label和label_constraint使用相同的标签,可以在一组容器中指定约束。例如,约束表达式Pcg={spark,{spark,3,10},rack},指的是可以让集群运营商在机器中部署不少于3个和不多于10个的spark应用的容器。
步骤113:采用优先级函数,对各待调度任务对应的候选节点集合中的节点进行排序,得到排序后的候选节点集合。
其中,所述优先级函数包括亲和性约束函数、反亲和性约束函数、基数约束函数、节点资源评估函数和节点资源均衡函数。
在本实施例中,为所述亲和性约束函数、所述反亲和性约束函数、所述基数约束函数、所述节点资源评估函数和所述节点资源均衡函数设置相应的权重值;采用加权求和的方式,获取各待调度任务对应的候选节点集合中各节点的评分结果;依据所述评分结果进行排序,得到各待调度任务对应的排序后的候选节点集合。
在实际应用场景下,结合多维约束,首先设置的优先级函数为priorityFunc1:AffinityPriority(亲和性约束函数),在约束表达中通过{p_label,pmin,pmax}的形式,判断pmin和pmax的值,匹配得出任务Ti与运行在节点Nij中的任务是否存在亲和性约束,如果存在返回函数值1,否则返回0。
设置优先级函数priorityFunc2:AntiAffinityPriority(反亲和性约束函数),在约束表达中通过{p_label,pmin,pmax}的形式,判断pmin和pmax的值,匹配得出任务Ti与运行在节点Nij中的任务是否存在反亲和性约束,若存在返回函数值0,否则返回1。
设置优先级函数priorityFunc3:CardinalityPriority(基数约束函数),在约束表达中通过{p_label,pmin,pmax}的形式,判断pmin和pmax的值,匹配得出任务Ti与运行在节点Nij中的任务是否存在基数约束,若存在基数约束,满足条件返回函数值1,否则返回0。
然后,设置优先级函数priorityFunc4:节点资源评估函数,和优先级函数priorityFunc5:节点资源均衡函数。其中,节点资源评估函数是根据节点的资源消耗情况来对节点进行评估,一般是节点资源剩余量越多,priorityFunc4的函数值越大。节点资源均衡函数是对节点使用资源均衡情况的评估,节点CPU资源和内存资源值相差越小,代表越均衡,priorityFunc5函数值越高。
具体地,根据节点的资源剩余情况和均衡情况去评估节点的质量。其中,本实施例通过Clust Monitor(集群监视器)模块去获取节点上的CPU和内存资源总量,分别为Nodeij.capacityCPU(CPU资源总量)和Nodeij.capacityMemory(内存资源总量);还有已经被调度在这个节点上的容器和待调度任务Ti所请求的CPU和内存资源之和,分别为Nodeij.requestCPU和Nodeij.requestMemory。
具体公式如下:
其中,Nodeij.restCPU和Nodeij.restMemory分别表示节点Nodeij中CPU资源和内存资源的剩余率;优先级函数priorityFunc4是根据节点的资源消耗情况来对节点进行评估,一般是节点资源剩余量越多,函数值越大;优先级函数priorityFunc5,是对节点使用资源均衡情况的评估,节点CPU资源和内存资源值相差越小,代表越均衡,函数值越高。
按照如上方式依次设置优先级函数priorityFunct,并分别为每个函数赋予相应的权重值wt,其中,t=1~5。按照如下公式计算多个优先级函数返回的数值相加,得分越大,达标节点质量越好,具体如下所示:
其中,FianlScoreNodeij为节点的最终得分。
在本实施例中,根据节点的最终得分FianlScoreNodeij对任务Ti的候选节点Nodei进行排序,按照FianlScoreNodeij从大到小的顺序形成任务Ti候选节点队列NiQueue。
在可选的方案中,如图4所示,在步骤12中,所述依据各待调度任务对应的候选节点集合以及节点的资源情况,对多个待调度任务进行优先级排序,具体包括如下步骤:
步骤121:建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵。
在本实施例中,基于多属性决策的任务队列重排序模型,对任务多种特征的分析,引入多属性决策理论,将任务队列的重排序转化为多属性决策问题。
首先,设定评估属性集合Attr={A1,A2,A3,…,Am},从不同的属性对任意待调度任务Ti进行评估,得到m个评价结果,对应的是待调度任务Ti的属性向量(Ai1,Ati2,Ai3,…,Aim)。根据评估属性集合Attr收集待调度任务集合T中,各个待调度任务Ti的属性向量,从而建立决策矩阵(如下所示)。
在实际应用场景下,如图5所示,本实施例提出一种基于多属性决策的任务队列重排序模型(Task Reorder Model,TRM),表示为{Attr,T,ρ,E,β,w,ψ,RANK},以下分别介绍模型中的元素。
Attr是评估属性集合,在本实施中Attr={饥饿时间(STi),匹配节点数(NMNi),资源请求量(RRi)}。T是调度间隔π内到达的任务集合,T={T1,T2,…Ti…,Tn},其中Ti是具体待调度任务,i∈{1,2,…,n};ρ表示映射关系:Ti→(Ai1,Ati2,Ai3,…,Aim),表示了对根据任务评估属性集合Attr对待调度任务Ti进行多维特征的评价;E表示根据任务集合中每个任务的属性向量所建立的决策矩阵,其中Eij中的i表示任务集合T中第i个待调度任务,而j表示第i个待调度任务的第j个任务评估属性值,其中i∈{1,2,…,n},j∈{1,2,…,m}。β表示映射关系Attr→w,利用主观法根据评估属性设置权重向量w;w代表任务特征的评估属性权重向量,w=(w1,w2,…,wn)T在任务优先级决策过程中与矩阵E共同决定结果。ψ表示决策过程的映射关系(w,E)→RESULT,根据特征评估属性权重向量w和决策矩阵E进行任务优先级选择,计算得出T任务集合的排序结果;RESULT表示任务的排序结果,RESULT={r1,r2,…,rn},其中rk={Tk,rNbk},k∈{1,2,…,n}。
在大型集群环境中,为了防止任务由于等待时间过长而影响应用性能,所以要判断任务的饥饿状态,需要优先部署等待时间较长的任务。另一方面,为了防止产生过多的资源碎片和过低的资源利用率,需要优先部署任务所匹配的节点数少、任务的请求资源量大的容器。因此,匹配节点数、饥饿时间和资源请求量对任务的调度顺序都具有重要的意义,前述三个因素所对应的属性值都是以实数的形式表示。
因此,所述评估属性集合一般包括:饥饿时间(STi),资源请求量(RRi)和匹配节点数(NMNi)。下面分别对饥饿时间(STi)、资源请求量(RRi)和匹配节点数(NMNi)进行定义。
饥饿时间(STi):待调度任务Ti的饥饿时间STi(Starved Time)
STi=(t-ai)-π
STi表示待调度任务Ti的饥饿时间长度,反应了任务的饥饿状态,由当前时间t、待调度任务Ti的到达时间ai和调度间隔π(即,前述的调度间隔)来计算决定。当待调度任务Ti的等待的时间超过调度间隔π,则将该任务标记为饥饿状态,饥饿时间越大,优先级越高。
匹配节点数(NMNi):待调度任务Ti的可匹配节点数NMNi(Number of MatchedNodes)。
NMNi=NiQueue_Size
NMNi表示待调度任务Ti的可匹配节点数,是通过节点匹配优选策略得出任务Ti候选节点队列NiQueue的队列长度,其中,每个待调度任务Ti所匹配的节点集合为Ni。匹配节点数越小,代表着任务的放置条件越苛刻,为了减少约束违规率,优先部署这类型的任务。
资源请求量RRi:任务Ti的资源请求量RRi(Requested Resource)
RRi=Resquest.CPU+Resquest.Memory
RRi表示待调度任务Ti的CPU资源和内存资源的总请求量之和,在一定的节点资源情况下,部署更多的任务可以提高系统的吞吐量。在实际应用场景下,优先部署资源请求量较大的任务,避免因为节点资源不足而部署失败。因此,任务Ti的资源请求量RRi值越大,优先级越高。
在本实施例中,依据各待调度任务对应的可匹配节点数、各待调度任务对应的饥饿时间和每个节点的资源请求量,对各待调度任务进行评估,得到决策矩阵。
其中,当待调度任务Ti的饥饿时间STi大于调度间隔π时,待调度任务Ti处于饥饿状态,需要将饥饿时间STi纳入评估属性集合;当待调度任务Ti的饥饿时间STi不大于调度间隔π时,待调度任务Ti不处于饥饿状态,可以不将饥饿时间STi纳入评估属性集合。
通过上述的定义,现有的评估属性集合包括任务的饥饿时间STi、匹配节点数NMNi和资源请求量RRi三个特征,因此,本实施例所对应的决策矩阵具体如下式所示。
通过上述对任务评估属性的分析,饥饿时间(STi),资源请求量(RRi)都是属于效益型属性,特点是他们的值越大,代表任务的紧迫性越高。而匹配节点数(NMNi),是属于成本型属性,它的值越小代表任务的优先级越高。
在实际应用场景下,需要判定评估属性值是否具有相同的量纲,当评估属性值的量纲不同时,需要进行归一化处理。在本实施例中,由于上述三个评估属性值具有不同的量纲,为了消除对排序决策结果的影响,对所述决策矩阵中,各待调度任务对应的匹配节点数、饥饿时间和资源请求量进行归一化处理,得到归一化的决策矩阵。
具体地,任务评估属性饥饿时间(STi),资源请求量(RRi)的归一化处理如下:
任务评估属性匹配节点数(NMNi)的归一化处理如下:
然后,为所述匹配节点数、所述饥饿时间和所述资源请求量设置权重值,得到评估属性权重向量,并基于所述评估属性权重向量对所述归一化的决策矩阵进行重新构建,得到加权后的归一化决策矩阵。
具体地,每个评估属性的权重值可以动态变化,例如,饥饿时间越大,权重值越高,匹配节点数越少权重值越高。
归一化的决策矩阵为D=(rij)n*m,然后通过权重w重新构建加权后的归一化决策矩阵C=wD。
最后,可以将待调度任务Ti的优先级多属性决策评价值表示为:
根据待调度任务Ti的优先级多属性决策评价值C(Ti)对任务集合内的各个待调度任务进行排序,得出重排序结果RANK,最后形成任务调度队列。
步骤122:依据所述决策矩阵获取各待调度任务的决策评价值,依据所述决策评价值对多个待调度任务进行优先级排序。
在本实施例中,根据前述加权后的归一化决策矩阵C,获取每个待调度任务Ti的决策评价值C(Ti),其中,决策评价值越高,优先级越高,从而依据决策评价值对多个待调度任务进行优先级排序,得到最佳的任务放置队列,然后依次放置对应的待调度任务。
为了清楚地展现步骤12的具体流程,可以参照图6理解前述过程。
下面结合图7,举例说明本实施例的多维约束下基于延迟决策的容器调度方法的主要过程。
目前,存在五个待调度任务(T1~T5),容器集群中五个节点(N1~N5),按照步骤11获取每个待调度任务对应的候选节点集合,例如,待调度任务T1对应的候选节点集合为:N2、N3、N4、N5;待调度任务T3对应的候选节点集合为:N1,其他待调度任务对应的候选节点集合具体如图所示,在此不再一一列举。然后,再对每个待调度任务对应的候选节点集合中的节点进行排序,例如,待调度任务T1对应的排序后的候选节点集合为:N2、N4、N3、N5;待调度任务T4对应的排序后的候选节点集合为:N2、N1、N5;其他待调度任务对应的排序后的候选节点集合具体如图所示,在此不再一一列举。
再按照步骤12对待调度任务T1~T5进行优先级排序,例如,待调度任务T3可匹配节点数为1个(只有节点N1),需要优先放置待调度任务T3,以避免由于约束限制或者资源不足,使得待调度任务T3无法放置到节点N1上,从而导致待调度任务T3无法运行。前述只是根据匹配节点数进行了简单的优先级排序,当然,在实际应用场景下,需要综合考虑进行待调度任务的排序,以寻求最佳的任务放置顺序。
在多维约束的集群环境中,本实施例利用延迟决策的思想一次考虑多个任务请求,根据实际情况对多个待调度任务进行重排序,先放置优先级高的任务,不仅可以降低约束违规率,同时还可以提高资源利用率,优化了集群性能。
实施例2:
请参阅图8,图8是本发明实施例提供的一种容器调度装置的结构示意图。本实施例的容器调度装置包括一个或多个处理器41以及存储器42。其中,图8中以一个处理器41为例。
处理器41和存储器42可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器42作为一种基于容器调度方法的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的容器调度方法以及对应的程序指令。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,从而执行容器调度方法的各种功能应用以及数据处理,实现实施例1的容器调度方法的功能。
其中,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至处理器41。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
关于容器调度方法请参照图1~图7及相关的文字描述在此,不再赘述。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为ROM)、随机存取存储器(Random AccessMemory,简写为RAM)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种多维约束下基于延迟决策的容器调度方法,其特征在于,所述容器调度方法包括:
获取多个待调度任务以及各待调度任务的容器信息;
依据各待调度任务的容器信息,获取各待调度任务对应的候选节点集合;
依据各待调度任务对应的候选节点集合以及候选节点的资源情况,对多个待调度任务进行优先级排序;
按照优先级递减的方式,依次放置各待调度任务对应的容器至目标节点;
其中,所述依据各待调度任务对应的候选节点集合以及候选节点的资源情况,对多个待调度任务进行优先级排序包括:
建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵;
依据所述决策矩阵获取各待调度任务的决策评价值,依据所述决策评价值对多个待调度任务进行优先级排序;
其中,所述评估属性集合包括匹配节点数、饥饿时间和资源请求量;
所述建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵包括:
依据各待调度任务对应的匹配节点数、各待调度任务对应的饥饿时间和每个节点的资源请求量,对各待调度任务进行评估,得到决策矩阵;
其中,匹配节点数是相应待调度任务对应的候选节点集合中的节点数量。
2.根据权利要求1所述的容器调度方法,其特征在于,所述容器信息包括可部署的节点;
所述依据各待调度任务的容器信息,获取各待调度任务对应的候选节点集合包括:
依据各待调度任务的容器信息以及容器的放置约束,对容器集群中全部节点进行过滤,得到各待调度任务对应的候选节点集合;
采用优先级函数,对各待调度任务对应的候选节点集合中的节点进行排序,得到排序后的候选节点集合。
3.根据权利要求2所述的容器调度方法,其特征在于,所述依据各待调度任务的容器信息以及容器的放置约束,对容器集群中全部节点进行过滤,得到各待调度任务对应的候选节点集合包括:
依据各待调度任务的容器信息,对容器集群中全部节点进行节点端口可用性过滤、资源满足性过滤和磁盘冲突性过滤,得到初次节点集合;
依据各待调度任务的放置约束,对所述初次节点集合进行亲和性约束过滤、反亲和性约束过滤以及基数约束过滤,得到各待调度任务对应的候选节点集合。
4.根据权利要求2所述的容器调度方法,其特征在于,所述优先级函数包括亲和性约束函数、反亲和性约束函数、基数约束函数、节点资源评估函数和节点资源均衡函数;
所述采用优先级函数,对各待调度任务对应的候选节点集合中的节点进行排序,得到排序后的候选节点集合包括:
为所述亲和性约束函数、所述反亲和性约束函数、所述基数约束函数、所述节点资源评估函数和所述节点资源均衡函数设置相应的权重值;
采用加权求和的方式,获取各待调度任务对应的候选节点集合中各节点的评分结果;
依据所述评分结果进行排序,得到各待调度任务对应的排序后的候选节点集合。
5.根据权利要求1所述的容器调度方法,其特征在于,所述建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵包括:
对所述决策矩阵中,各待调度任务对应的匹配节点数、饥饿时间和资源请求量进行归一化处理,得到归一化的决策矩阵。
6.根据权利要求5所述的容器调度方法,其特征在于,所述建立评估属性集合,依据所述评估属性集合对各待调度任务进行评估,得到决策矩阵包括:
为所述匹配节点数、所述饥饿时间和所述资源请求量设置权重值,得到评估属性权重向量;
基于所述评估属性权重向量对所述归一化的决策矩阵进行重新构建,得到加权后的归一化决策矩阵。
7.根据权利要求1所述的容器调度方法,其特征在于,所述获取多个待调度任务以及各待调度任务的容器信息包括:
在调度间隔内获取多个任务请求,暂不执行所述多个任务请求,并将所述多个任务请求标记为待调度任务,其中,所述调度间隔小于应用运行的时间;
获取各待调度任务的容器信息。
8.一种容器调度装置,其特征在于,包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行如权利要求1~7任一项所述的容器调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910259625.2A CN110008024B (zh) | 2019-04-02 | 2019-04-02 | 一种多维约束下基于延迟决策的容器调度方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910259625.2A CN110008024B (zh) | 2019-04-02 | 2019-04-02 | 一种多维约束下基于延迟决策的容器调度方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110008024A CN110008024A (zh) | 2019-07-12 |
CN110008024B true CN110008024B (zh) | 2021-09-24 |
Family
ID=67169334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910259625.2A Active CN110008024B (zh) | 2019-04-02 | 2019-04-02 | 一种多维约束下基于延迟决策的容器调度方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110008024B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110838939B (zh) * | 2019-10-11 | 2022-04-08 | 许继集团有限公司 | 一种基于轻量级容器的调度方法及边缘物联管理平台 |
CN110806930B (zh) * | 2019-10-29 | 2022-08-09 | 浙江大华技术股份有限公司 | 微服务调度方法、装置、设备及存储装置 |
CN113037800B (zh) * | 2019-12-09 | 2024-03-05 | 华为云计算技术有限公司 | 作业调度方法以及作业调度装置 |
EP4057142A4 (en) * | 2019-12-09 | 2022-12-21 | Huawei Cloud Computing Technologies Co., Ltd. | TASK SCHEDULING METHOD AND TASK SCHEDULING APPARATUS |
CN110941495B (zh) * | 2019-12-10 | 2022-04-05 | 广西大学 | 一种基于图着色的容器协同编排方法 |
CN112363811B (zh) * | 2020-11-16 | 2023-04-07 | 中国电子科技集团公司电子科学研究院 | 一种人工智能计算资源调度方法及计算机可读存储介质 |
CN112948079B (zh) * | 2021-02-18 | 2022-06-28 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备和计算机存储介质 |
CN114356587B (zh) * | 2022-03-17 | 2022-07-05 | 梯度云科技(北京)有限公司 | 算力任务跨区域调度方法、系统及设备 |
CN116483547A (zh) * | 2023-06-21 | 2023-07-25 | 之江实验室 | 资源调度方法、装置、计算机设备和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130046709A9 (en) * | 2003-05-15 | 2013-02-21 | Dominic Crosthwaite | System and method for providing an intermediary for a transaction |
US20110231457A1 (en) * | 2010-03-16 | 2011-09-22 | Salesforce.Com, Inc. | Monitoring and managing job resources for database tasks |
US11321118B2 (en) * | 2012-10-24 | 2022-05-03 | Messageone, Inc. | System and method for controlled sharing of consumable resources in a computer cluster |
CN102932279B (zh) * | 2012-10-30 | 2016-06-29 | 北京邮电大学 | 一种云环境数据中心多维资源调度方法 |
CN105260244B (zh) * | 2015-10-30 | 2019-11-22 | 北京奇艺世纪科技有限公司 | 一种分布式系统任务调度的方法和装置 |
CN106919445B (zh) * | 2015-12-28 | 2021-08-20 | 华为技术有限公司 | 一种在集群中并行调度容器的方法和装置 |
CN106658727B (zh) * | 2016-04-28 | 2019-08-30 | 电子科技大学 | 一种基于多种相关属性的业务重要性确定与资源分配方法 |
CN108037994B (zh) * | 2017-11-15 | 2020-12-22 | 中国电子科技集团公司第三十二研究所 | 一种支持异构环境下多核并行处理的调度机制 |
CN109245948B (zh) * | 2018-07-27 | 2019-12-17 | 北京邮电大学 | 安全感知的虚拟网络映射方法及其装置 |
CN110210700A (zh) * | 2019-04-19 | 2019-09-06 | 中国科学院遥感与数字地球研究所 | 面向应急响应的基于任务优先级的多星动态任务规划方法 |
-
2019
- 2019-04-02 CN CN201910259625.2A patent/CN110008024B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110008024A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008024B (zh) | 一种多维约束下基于延迟决策的容器调度方法以及装置 | |
US11656911B2 (en) | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items | |
US10514951B2 (en) | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery | |
US11294726B2 (en) | Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using QoS | |
US20200218579A1 (en) | Selecting a cloud service provider | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
WO2020113310A1 (en) | System and method for resource partitioning in distributed computing | |
Pongsakorn et al. | Container rebalancing: Towards proactive linux containers placement optimization in a data center | |
US10606650B2 (en) | Methods and nodes for scheduling data processing | |
CN115292014A (zh) | 图像渲染方法、装置和服务器 | |
CN109710372A (zh) | 一种基于猫头鹰搜索算法的计算密集型云工作流调度方法 | |
WO2016018352A1 (en) | Platform configuration selection based on a degraded makespan | |
CN112000460A (zh) | 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备 | |
Li et al. | A QoS-based scheduling algorithm for instance-intensive workflows in cloud environment | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
US10402762B2 (en) | Heterogeneous platform configurations | |
CN111367632B (zh) | 一种基于周期特征的容器云调度方法 | |
US20160004985A1 (en) | Prioritizing Proposal Development Under Resource Constraints | |
CN111782688B (zh) | 基于大数据分析的请求处理方法、装置、设备及存储介质 | |
Cadorel et al. | Online multi-user workflow scheduling algorithm for fairness and energy optimization | |
Jrada et al. | Data-aware modeling of elastic processes for elasticity strategies evaluation | |
CN111061553B (zh) | 一种用于超级计算中心的并行任务调度方法和系统 | |
Abbasi et al. | SWSA: A Hybrid Scientific Workflow Scheduling Algorithm Based on Metaheuristic Approach in Cloud Computing Environment | |
CN117421109B (zh) | 训练任务的调度方法、装置、计算机设备及存储介质 | |
Dumitru et al. | A queueing theory approach to pareto optimal bags-of-tasks scheduling on clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |