CN110515716A - 一种支持优先级和反亲和的云优化调度方法及系统 - Google Patents

一种支持优先级和反亲和的云优化调度方法及系统 Download PDF

Info

Publication number
CN110515716A
CN110515716A CN201910804898.0A CN201910804898A CN110515716A CN 110515716 A CN110515716 A CN 110515716A CN 201910804898 A CN201910804898 A CN 201910804898A CN 110515716 A CN110515716 A CN 110515716A
Authority
CN
China
Prior art keywords
task
priority
affine
node
cloud
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.)
Granted
Application number
CN201910804898.0A
Other languages
English (en)
Other versions
CN110515716B (zh
Inventor
吴恒
张文博
向昊
钟华
许源佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201910804898.0A priority Critical patent/CN110515716B/zh
Publication of CN110515716A publication Critical patent/CN110515716A/zh
Application granted granted Critical
Publication of CN110515716B publication Critical patent/CN110515716B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • G06F9/5016Allocation 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 the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping

Abstract

本发明提供一种支持优先级和反亲和的云优化调度方法,用于克服现有云调度系统对任务的反亲和约束以及优先级约束无法有效满足的问题,主要通过任务集群信息的反亲和与优先级表示,转化为统一格式的图模型语言,对最大流图进行求解,按照求出优化解进行任务部署。本方法具有多维资源表示与扩展性好的特点,能够提升当前云优化调度管理中对任务和物理资源间约束的满足能力,同时提供更多的任务调度机会。本发明还提供一种支持优先级和反亲和的云优化调度系统,包括云集群管理器、反亲和规则解析器、优先级规则解析器、优化调度模型生成器和优化调度模型求解器。

Description

一种支持优先级和反亲和的云优化调度方法及系统
技术领域
本发明涉及一种支持优先级和反亲和的云优化调度方法及系统,属于云服务和计算技术领域。
背景技术
随着IT技术的不断发展,数据中心云资源共享泛型已成为物联网、人工智能、无服务计算等应用模式的主要构造方式,对于促进信息技术产业发展和应用创新具有重要的国家战略意义。当前,面向特定应用负载模式实现云优化调度系统依然是学术界研究的重点,但面向拥有多维约束且长时间运行的服务型,现有调度方案仍然难以应对。
云调度是指任务使用资源的架构、模型和机制,它是提高云资源利用率的关键技术之一。其中,资源主要是指CPU资源。已有研究工作认为当前云计算会面临主要两种约束:(1)任务反亲和性:标记为反亲和的任务不可以调度到同一个物理节点;(2)优先级:在物理资源紧缺时,具有高优先级的任务可优先进行调度。现云调度系统需严格遵循这些约束,否则会导致服务响应时间过长,造成数据中心巨大经济损失。如研究表明,Google搜索响应时间如果从0.4秒增加到0.7秒,Google广告年收入会下降20%。在满足上述约束前提下,剑桥大学等团队认为大规模(至少数万个任务同时调度)是当前云调度的一个主要特征,而调度延迟则是调度效果(毫秒级)好坏一个重要度量指标。
当前,将流图模型引入调度逐渐成为工业界与学术界的共识,但相关工作依然无法适应实际的集群生产环境,比如,经典流图仅仅能表示数值型约束关系,但反亲和是典型的非数值型关系。因此,具备优先级和反亲和约束的云优化调度难题亟待解决。
发明内容
本发明克服现有技术的不足,提供一种支持优先级和反亲和的云优化调度方法及系统,具有多维资源表示与扩展性好的特点,能够提升当前云优化调度管理中对任务和物理资源间约束的满足能力,同时提供更多的任务调度机会。
为解决上述技术问题,本发明采用的技术方案是:
一种支持优先级和反亲和的云优化调度方法,包括以下步骤:
接收客户端任务请求,缓存到任务队列中,任务应提供所需的信息,如CPU资源需求;
对批量任务进行集合分析,获取任务的显示和隐性的反亲和关系并进行数学方法的表示,重新对任务进行分类和排布,获取任务的显示和隐性的优先级关系并进行数学方法的表示,得到优先级的高低,生成集群系统能识别的反亲和与优先级表示;
将反亲和与优先级表示的任务集群信息转化为统一格式的图模型语言,产生节点和边集合信息,通过扩展流图流量和边费用生成最大流图模型;
基于最大流算法构造流图的求解器,求出优化解,“最大流”在满足优先级和反亲和的前提下,其优化解是部署最多的任务数,按照优化解进行任务部署。
进一步地,任务队列是基于超时或最大队列长度机制,本方法会同时取出多个任务进行分析,获取任务的反亲和关系,以及任务的优先级的关系。
进一步地,任务的反亲和可由二元组描述,如<A,B>表示任务A的实例与任务B的实例不能部署在同一台物理机上,如<A,A>表示任务A的多个实例之间也不能部署在同一台物理机上。如果任务A不能与任务B或者任务C部署在一起,则需要引入两个二元组,<A,B>和<A,C>分别表示。
进一步地,任务的优先级可由数值大小描述,比如任务A的优先级高于任务B的,则可以将任务A的优先级属性设置为2,而任务B的优先级属性设置为1。
进一步地,将任务集群信息转化为统一格式的图模型语言的方法如下,如图1所示;
将用户提交的任务转化为流图节点T,T包含CPU需求;
将任务实例转化为流图节点I,I包含CPU资源。在这里,对于属于同一T的任务实例,其CPU资源需求一样;
将物理机转化为流图节点M,M包含可用CPU资源;
根据最大流图理论,新增节点t,表示流图搜索路径的终点;
流图中任意两个节点表示<费用,CPU需求>,节点T与节点M之间的费用表示任务可部署的物理机列表。
进一步地,利用求解器求解时,寻找可行的流f,该流f表示决策任务与物理机的部署关系。流f前新增系数w,用于表示任务的优先级,取值范围为[1,+∞)之间的整数,按照数值的大小衡量优先级的高低。对于经典流图理论,假设物理机M的资源供给为4CPU,而任务T1和T2的资源需求分别是2CPU和3CPU,则经典流图算法会将T2部署到M上,而忽略T1,尽管T1可能会有更高的优先级。这是因为经典流图会优先部署资源需求多的任务。在本方法中,任务会预先标注[0,1]之间的优先级,将任务分为N类。并引入函数MaxCPU(Ni)和MinCPU(Ni)获取每一个优先级类中任务的资源需求最大与最小值,并基于wi+1=[MaxCPU(Ni)/MinCPU(Ni+1)]获取每一个优先级类的权重w,其中符号[]表述取整数。如果上述示例,T1优先级是1,而T2为0.5,假设T2优先级对应的权重为1,说明T1的权重为w=[3/2]=2。有了该权重后,w*f(T1)=2*2=4,w*f(T2)=1*3=3,流图算法会选择T1部署,满足优先级需求。
进一步地,在每个物理机节点M上新增反亲和规则,用于决策任务是否可以部署到物理机上,采用集合论交集,当交集为空时候,允许部署。对于物理机M,使用函数getTasks方法获取已部署的任务集合,对于任务T,使用函数getAntiAffinity获取不能同时部署的任务集合,则
进一步地,利用求解机求解时,基于超时响应机制判断物理机是否宕机,并从流图中将宕机的物理机节点M删除;监测任务运行完成,修改相应物理机的可用CPU和内存资源;更新物理机的反亲和列表,直到任务部署完成为止。
一种支持优先级和反亲和的云优化调度系统,包括:
云集群管理器,包括任务管理器和集群节点管理器,任务管理器用于对多客户服务端的任务请求进行记录存储,该多客户服务端包括基于客户端的用户本身和基于API的远程客户;集群节点管理器用于对分布式集群的任务结构进行个性化配置和扩展;
反亲和规则解析器,用于将批量任务进行集合分析,获取任务的反亲和关系,并将反亲和关系列表抽象化为规则式的语言,重新对所得的批量任务进行分类和排布;
优先级规则解析器,用于将批量任务进行集合分析,获取任务的优先级关系,并对优先级关系列,得到优先级的高低;
优化调度模型生成器,用于将规则化的任务集群信息转化成统一格式的图模型语言,产生节点和边集合信息,通过扩展容量满足对任务间多维约束的表达,生成最大流图模型;
优化调度模型求解器,用于对最大流图模型进行最大流路径集合求解,得到调度方案并发送给云集群进行调度。最大流含义是优先部署高优先级的任务,并尽可能部署更多任务。
进一步地,优化调度模型生成器会基于PAXOS协议实时收集物理机状态信息和任务完成情况,动态修改流图中物理机节点M的增加(失效恢复)与删除(宕机),根据任务完成情况动态修改物理机可用CPU资源。
进一步地,优化调度模型求解器对于任务和物理机地部署关系,即流进行后验,后验的内容包括:是否违反反亲和约束,根据任务的优先级为该流f赋予一定的权重w。
进一步的,对于决策出的任务与物理机的部署关系进行实施,完成整个调度过程。
本发明与现有技术相比的优点在于:
(1)本发明针对现有云优化调度系统无法满足任务间的反亲和约束和优先级约束,最终导致的云整体资源利用率不高的问题,通过扩展经典的网络流图的容量表示,满足对任务间反亲和约束以及优先级的表达,通过最大流模型对调度场景进行抽象刻画和求解来获得满足约束需求的最大数量任务的云优化调度方案;
(2)本发明针对当前云优化系统和调度器方式过于耦合导致集群调度策略无法进行快速的调整配置和更改扩展的现状,将其转化为图的构造与求解问题。通过定义图的搜索路径,满足调度的扩展性需求。
附图说明
图1为本发明的实施例的流图表示示例图。
图2为本发明的实施例的支持优先级和反亲和的云优化调度系统的结构示意图。
图3为本发明的实施例的反亲和关系及规则解析流程示意图。
图4为本发明的实施例的优先级关系流程示意图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本实施例公开一种支持优先级和反亲和的云优化调度系统,运用本发明方法进行云优化调度,本系统包括云集群管理器、反亲和规则解析器、优先级规则解析器、优化调度模型生成器、优化调度模型求解器。
云集群管理器,为集群控制核心部分,通过YAML格式的配置文件进行任务配置,设置了包括任务资源类型、任务名称、任务标签、容器化任务的上下文,如来源的镜像、启动时命令、挂载文件等,云集群管理器包括任务管理器和集群节点管理器。任务管理器的目标对象为不同类型的客户服务端,包括基于客户端的用户本身和基于API的远程客户,接收任务请求。集群节点管理器是对集群节点进行管理,采用服务注册的模型,使得分布式大集群的任务结构可快速地进行个性化配置和扩展,其中集群节点的描述内容包括集群节点的名称、节点实时可用资源信息、节点已调度任务健康状态、节点可连接状态。当控制中心接收到未知的机器节点发来的注册请求时,由集群节点管理器进行处理,集群节点管理器将未知节点的请求转化为对基于PAXOS协议的多节点存储结构的请求,并通过基于PAXOS协议的多节点存储结构的同步机制保证分布式集群信息的最终一致性。当数据信息在同步过程中发生错误时,集群节点管理器将回退节点的注册提交步骤,避免冗余数据的产生。
反亲和规则解析器,负责将监听所得的大量任务进行集合分析,获得其显示和隐性的反亲和关系,将反亲和关系列表抽象化为规则式的语言,通过规则解析器来重新对所得的大量任务进行分类和重新排布。具有相同的反亲和约束的两个任务,彼此无法部署到同一台机器上进行运行。
优先级规则解析器,负责将监听所得的大量任务进行集合分析,根据用户自定义[0,1]表示任务优先级,优先级高的任务可以对优先级低的任务进行置换和抢占,在云集群资源有限的条件下,保证优先级高的应用的资源供给。
优化调度模型生成器,负责将反亲和规则解析器和优先级规则解析器所提供的格式标签化的任务列表描述成统一格式的图模型语言,通过流图生成模块对统一格式的图模型语言进行解析,从而获取生成图模型所需要的详细信息,包括任务类型、任务名称、任务资源需求和任务的约束内容以及云集群的资源类型、资源配置大小等。流图生成模块将收集到的信息转化为图模型中的节点元素和元素本身的多维容量信息以及节点之间的单向边元素,根据统一格式的图模型语言进行图模型中的节点管理和单向边管理。图模型节点信息中的不同属性能够直观描述不同节点的差异性,包括节点之间的亲和性详细信息、对于资源的硬性要求等,图模型单向边信息中的属性描述了任务对于不同类别集群资源的亲和性。
优化调度模型求解器,基于最小费用最大流图模型对优化调度模型生成器所输出的统一格式的图模型信息进行分析和处理,对多维的容量维度进行扩展后,寻求满足容量需求的最大流解决方案,通过抢占资源的方式从而提供部署最多任务数量的最终调度方案。由于流图生成模块是基于格式标签化的任务列表结果进行对点建模,在模型的表达上通过更小的费用的流量表达任务对于不同的云集群资源类型的偏好。同时封装了底层集群资源的服务接口,主要提供采集和监测节点状态信息,更新服务端集群资源状态,监听调度结果和执行调度结果的功能。
其中,云集群管理器包括云任务提交接口,云任务提交接口的具体实现与工作方式包括:
创建任务提交接口,设计任务提交接口的参数,参数包括任务类型、任务名称、任务资源需求、任务约束内容;
定义任务提交接口参数的属性,属性包括参数的类型、取值范围和该参数是否为必须参数的标识;
调用任务提交接口返回对应的结果,任务提交接口返回的结果是一个JSON格式的树型结构,树的深度为2,树的第1层即根节点为服务器的身份验证服务,树的第2层为任务的提交指标,包括提交结果和原因。任务提交结果包括成功和失败两种,产生原因包括网络无法连接、集群已达任务上限、任务提交格式非法等。
其中,云集群管理器包括节点状态信息更新接口,节点状态信息更新接口的具体实现与工作方式包括:
接受远程节点的注册信息的接口,对节点信息进行解析分析,持久化节点信息,以及监测节点健康状态,该节点信息包括节点类型、节点资源、节点约束关系、节点的名称和节点的健康状况等;
定义节点参数的属性,属性包括参数的类型、取值范围和该参数是否为必须参数的标识;
调用节点状态更新接口返回对应的结果,云任务提交接口返回的结果是一个JSON格式的树型结构,树的深度为2,树的第1层即根节点为服务器的身份验证服务,树的第2层为节点的更新指标包括更新结果和原因以及更新状态变化。任务提交结果包括成功和失败两种,产生原因包括网络无法连接、集群规模超过限额、节点状态更新格式非法等。
其中,反亲和规则解析器包括反亲和关系解析接口和反亲和规则化接口,反亲和关系解析接口具体实现与工作方式包括:
基于解释器模式的机制对收集到的所有的任务列表的对象字符串属性进行解析和关系抽象,获取待调度的任务的反亲和性内容;
调用反亲和关系解析接口返回对应的结果是一个JSON格式的树型结构,树的深度为3,树的第1层即根节点为服务器的身份验证服务,树的第2层为反亲和关系解析指标,包括解析目标集和原因,树的第3层为所有的待调度任务的反亲和性集合。反亲和关系解析指标包括解析目标集或者失败两种,产生原因包括网络无法连接等;解析目标集包括所有待调度任务的反亲和信息。
反亲和规则化接口具体实现与工作方式包括:
基于规则的方式对反亲和规则化接口返回的反亲和性关系集合进行规则标签化,并上传给优化调度模型生成器进行更新;
反亲和规则化接口返回的结果是一个JSON格式的树型结构,树的深度为2,树的第1层即根节点为服务器的身份验证服务,树的第2层为反亲和性规则标签化指标包括标签集和原因。反亲和性规则标签化指标包括标签集或者失败两种,产生原因包括网络无法连接、状态更新结果异常等。
其中,优先级规则解析器包括优先级归一化接口,优先级归一化接口具体实现与工作方式包括:
基于归一化的方法对收集到的所有的任务列表的优先级整数属性进行归一标准化抽象,获取可比较的待调度的任务的优先级内容;
调用优先级归一化接口返回对应的结果是一个JSON格式的树型结构,树的深度为3,树的第1层即根节点为服务器的身份验证服务,树的第2层为优先级关系归一化指标包括归一标准化后的优先级集合和原因,树的第3层为所有的待调度任务的归一标准化后的优先级集合。归一标准化后的优先级集合包括归一化的集合或者失败两种,产生原因包括网络无法连接等;解析目标集包括所有待调度任务的反亲和信息;
其中,优化调度模型生成器包括图模型的生成和更新接口,图模型的生成和更新接口的具体实现与工作方式包括:
接受图模型元素解析结果的接口,抽象图模型元素的相关信息构建图模型属性,图模型属性包括图模型的类型、图模型的节点集合、图模型的边集合、图模型的起始节点和终止节点等;
定义图模型的边的属性,属性包括边的起始节点、边的终止节点、边的容量向量;
调用图模型的生成和更新接口返回对应的结果,图模型的生成和更新接口返回的结果是一个JSON格式的树型结构,树的深度为3,树的第1层即根节点为服务器的身份验证服务,树的第2层为图模型的生成更新结果指标包括生成更新结果和原因,树的第3层为树的节点集合和边集合。图模型的生成更新结果包括图的节点数和边数或者失败两种,产生原因包括网络无法连接、图模型结构非法等;节点集合包括所有节点的编号和对应集群节点的名称,边的集合包括所有的边的编号和起始/终止节点的编号。
其中,优化调度模型求解器包括图模型的求解接口,图模型的求解接口的具体实现与工作方式包括:
基于经典的最大流图对图模型的容量理论进行扩展,支持非数值型的容量类型,同时支持多维容量向量的计算,计算方向为深度优先;
调用图模型的求解接口返回对应的结果,图模型的求解接口返回的结果是一个JSON格式的树型结构,树的深度为3,树的第1层即根节点为服务器的身份验证服务,树的第2层为图模型的求解结果指标包括生成更新结果和原因,树的第3层为调度结果的结果对。图模型的求解结果包括调度目标集或者失败两种,产生原因包括网络无法连接、图模型结构非法等;调度目标集包括所有调度结果中任务名称和集群节点名称。
现列举一具体实例,进一步说明上述的一种支持优先级和反亲和的云优化调度系统,如图1所示,展示了基于最大流图模型的任务提交、调度、受理过程,步骤如下:
步骤101:云集群管理器通过系统提供的任务提交接口接入系统,通过JSON格式的配置文件进行任务配置,提供调度所需的任务信息,包括任务类型、任务名称、任务资源需求量和任务约束内容等后,将任务列表提交给反亲和规则解析器和优先级规则解析器;
步骤102:反亲和规则解析器和优先级规则解析器通过图模型的生成和更新接口提交规则化和归一化后的任务集群信息给优化调度模型生成器,通过将所有解析后的集群信息转化为图模型语言,产生节点和边集合信息,通过扩展容量来满足对任务间多维约束的表达,最终生成一个抽象于当前集群的最大流图模型;
步骤103:优化调度模型求解器通过优化调度模型生成器的内部接口获得合法的图模型,以一种容量扩展后的图模型求解方法来进行最大流路径集合的求解;
步骤104:最终通过与云集群间的接口,通过调度结果返回接口将结果返回给云集群,并监督执行,如果执行失败,重新发送请求直到超时;
步骤105:通过云集群的实际调度情况,云集群管理器通过监听的方式对未调度成功的任务进行收集并进行重调度。
本系统涉及一种反亲和关系及规则解析流程,如图2所示,具体步骤如下:
步骤201:反亲和规则解析器从云集群管理器处获取任务集合的反亲和性信息,包括反亲和性的属性和字符串内容,其中包括任务和任务之间的反亲和性,同时也包括了任务和机器之间的反亲和性等;
步骤202:反亲和规则解析器调用反亲和关系解析接口和反亲和规则化接口,将步骤201收集到的待调度任务集合的反亲和性信息进行解析分析,将反亲和性关系转化为格式化的规则表示;
步骤203:优化调度模型生成器根据步骤202返回的结果对图模型的当前状态进行建模更新,包括创建或更新可行路径上的每一条边的当前容量,并增加总流量,使得具有反亲和性的任务和机器之间不可达等等;
步骤204:优化调度模型求解器在求解的过程,通过规则匹配来判断当前是否有和该任务反亲和的任务已经调度到了主机上,如果有,通过反悔机制来协调多反亲和任务和空闲资源间的关系;
步骤205:当任务的调度满足反亲和性时,直接部署;不满足时,判断是否能够抢占已调度任务或是否应进入等待调度队列;
步骤206:上一轮调度中未调度的任务重新作为新任务加入到下一轮的调度中。
本系统涉及一种优先级关系归一标准化流程,如图3所示,具体步骤如下:
步骤301:优先级规则解析器从云集群管理器处获取任务集合的优先级信息,包括优先级的属性和优先级整数内容,主要包括任务相对于其他任务的优先级;
步骤302:优先级规则解析器调用优先级归一化接口,将步骤201收集到的待调度任务集合的优先级信息进行解析分析,将优先级关系转化为归一标准化的小数表示;
步骤303:优化调度模型生成器根据步骤202返回的结果对图模型的当前状态进行建模更新,包括创建或更新可行路径上的每一条边的当前容量,并增加虚拟流量,使得具有高优先级的任务拥有更高的虚拟容量等等;
步骤304:优化调度模型求解器在求解的过程,通过规则匹配来判断当前是否有比该任务优先级更高的任务已经调度到了主机上,如果有,通过反悔机制来协调多不同优先级任务列表和空闲资源间的关系;
步骤305:当任务的调度满足优先级性时,直接部署;不满足时,判断是否能够抢占已调度任务或是否应进入等待调度队列;
步骤306:上一轮调度中未调度的任务重新作为新任务加入到下一轮的调度中。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (10)

1.一种支持优先级和反亲和的云优化调度方法,其特征在于,包括以下步骤:
接收客户端任务请求,并缓存到任务队列中;
对批量任务进行集合分析,获取任务的显示和隐性的反亲和关系,对任务重新进行分类和排布,获取任务的显示和隐性的优先级关系,得到优先级的高低,生成集群系统能识别的反亲和与优先级表示;
将反亲和与优先级表示的任务集群信息转化为统一格式的图模型语言,产生节点和边集合信息,通过扩展流图流量和边费用生成最大流图模型;
基于最大流算法构造流图的求解器,求出优化解,按照优化解进行任务部署。
2.如权利要求1所述的方法,其特征在于,任务队列是基于超时或最大队列长度机制,通过同时取出多个任务进行分析,获取任务的反亲和关系,以及任务的优先级的关系。
3.如权利要求1所述的方法,其特征在于,任务的反亲和关系可由二元组表示,表示两个任务的实例不能部署在同一台物理机上;任务的优先级可由数值大小表示。
4.如权利要求1所述的方法,其特征在于,将任务集群信息转化为统一格式的图模型语言的方法如下:
将用户提交的任务转化为流图节点T,T包含CPU需求;
将任务实例转化为流图节点I,I包含CPU资源;
将物理机转化为流图节点M,M包含可用CPU资源;
根据最大流图理论,新增节点t,表示流图搜索路径的终点;
流图中任意两个节点表示<费用,CPU需求>,节点T与节点M之间的费用表示任务可部署的物理机列表。
5.如权利要求4所述的方法,其特征在于,在每个物理机节点M上新增反亲和规则,用于决策任务是否可以部署到物理机上,采用集合论交集,当交集为空时候,允许部署;对于物理机M,使用函数getTasks获取已部署的任务集合,对于任务T,使用函数getAntiAffinity获取不能同时部署的任务集合,则
6.如权利要求1所述的方法,其特征在于,利用求解器求解时,引入权重w,对于一个表示决策任务与物理机的部署关系的流f,通过求解w*f的最大值获得优化解,其中w*f为大于1的整数;
权重w的计算方法如下:
任务预先标注[0,1]之间的优先级,将任务分为N类;
利用函数MaxCPU(Ni)和MinCPU(Ni),获取每一个优先级类中任务的资源需求最大值与最小值;
计算wi+1=[MaxCPU(Ni)/MinCPU(Ni+1)]得到每一个优先级类的权重w,其中[]表述取整数。
7.如权利要求1所述的方法,其特征在于,利用求解器求解时,基于超时响应机制判断物理机是否宕机,并从流图中将宕机的物理机节点删除;监测任务运行完成,修改相应物理机的可用CPU和内存资源;更新物理机的反亲和列表,直到任务部署完成为止。
8.一种支持优先级和反亲和的云优化调度系统,其特征在于,包括:
云集群管理器,包括任务管理器和集群节点管理器,任务管理器用于对多客户服务端的任务请求进行记录存储,该多客户服务端包括基于客户端的用户本身和基于API的远程客户;集群节点管理器用于对分布式集群的任务结构进行个性化配置和扩展;
反亲和规则解析器,用于将批量任务进行集合分析,获取任务的反亲和关系,并将反亲和关系列表抽象化为规则式的语言,重新对所得的批量任务进行分类和排布;
优先级规则解析器,用于将批量任务进行集合分析,获取任务的优先级关系,并对优先级关系列,得到优先级的高低;
优化调度模型生成器,用于将规则化的任务集群信息转化成统一格式的图模型语言,产生节点和边集合信息,通过扩展容量满足对任务间多维约束的表达,生成最大流图模型;
优化调度模型求解器,用于对最大流图模型进行最大流路径集合求解,得到调度方案并发送给云集群进行调度。
9.如权利要求8所述的系统,其特征在于,优化调度模型生成器基于PAXOS协议实时收集物理机状态信息和任务完成情况,动态增加或删除流图中物理机节点,根据任务完成情况动态修改物理机可用CPU资源。
10.如权利要求8所述的系统,其特征在于,优化调度模型求解器对于表示任务和物理机地部署关系的流f进行后验,后验的内容包括:是否违反反亲和约束,以及根据任务的优先级为流f赋予一定的权重w。
CN201910804898.0A 2019-08-29 2019-08-29 一种支持优先级和反亲和的云优化调度方法及系统 Active CN110515716B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910804898.0A CN110515716B (zh) 2019-08-29 2019-08-29 一种支持优先级和反亲和的云优化调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910804898.0A CN110515716B (zh) 2019-08-29 2019-08-29 一种支持优先级和反亲和的云优化调度方法及系统

Publications (2)

Publication Number Publication Date
CN110515716A true CN110515716A (zh) 2019-11-29
CN110515716B CN110515716B (zh) 2021-11-30

Family

ID=68628747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910804898.0A Active CN110515716B (zh) 2019-08-29 2019-08-29 一种支持优先级和反亲和的云优化调度方法及系统

Country Status (1)

Country Link
CN (1) CN110515716B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995855A (zh) * 2019-12-13 2020-04-10 深圳先进技术研究院 微服务集群调度方法、调度装置及计算机可读存储介质
CN113448743A (zh) * 2020-03-25 2021-09-28 伊姆西Ip控股有限责任公司 用于任务处理的方法、电子设备以及计算机程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0459931A2 (en) * 1990-05-31 1991-12-04 International Business Machines Corporation Process for dispatching tasks among multiple information processors
CN106534318A (zh) * 2016-11-15 2017-03-22 浙江大学 一种基于流量亲和性的OpenStack云平台资源动态调度系统和方法
CN106708625A (zh) * 2016-12-08 2017-05-24 中国科学院软件研究所 一种基于最小费用最大流的大规模资源调度系统及方法
CN108667864A (zh) * 2017-03-29 2018-10-16 华为技术有限公司 一种进行资源调度的方法和装置
CN109582448A (zh) * 2018-10-17 2019-04-05 中国电子科技集团公司第二十八研究所 一种面向关键度和时效性的边缘计算任务调度方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0459931A2 (en) * 1990-05-31 1991-12-04 International Business Machines Corporation Process for dispatching tasks among multiple information processors
CN106534318A (zh) * 2016-11-15 2017-03-22 浙江大学 一种基于流量亲和性的OpenStack云平台资源动态调度系统和方法
CN106708625A (zh) * 2016-12-08 2017-05-24 中国科学院软件研究所 一种基于最小费用最大流的大规模资源调度系统及方法
CN108667864A (zh) * 2017-03-29 2018-10-16 华为技术有限公司 一种进行资源调度的方法和装置
CN109582448A (zh) * 2018-10-17 2019-04-05 中国电子科技集团公司第二十八研究所 一种面向关键度和时效性的边缘计算任务调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M.S.SQUILLANTE.ET AL.: "Threshold-based priority policies for paralled-server systems with affinity scheduling", 《IEEE》 *
王万良等: "大规模云计算服务器优化调度问题的最优二元交换算法研究", 《通信学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995855A (zh) * 2019-12-13 2020-04-10 深圳先进技术研究院 微服务集群调度方法、调度装置及计算机可读存储介质
CN110995855B (zh) * 2019-12-13 2022-06-21 深圳先进技术研究院 微服务集群调度方法、调度装置及计算机可读存储介质
CN113448743A (zh) * 2020-03-25 2021-09-28 伊姆西Ip控股有限责任公司 用于任务处理的方法、电子设备以及计算机程序产品
CN113448743B (zh) * 2020-03-25 2024-02-23 伊姆西Ip控股有限责任公司 用于任务处理的方法、电子设备以及计算机程序产品

Also Published As

Publication number Publication date
CN110515716B (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
CN110532078A (zh) 一种边缘计算调度优化方法及系统
CN111562972A (zh) 一种面向群智感知的泛在操作系统
CN104618693B (zh) 一种基于云计算的监控视频在线处理任务管理方法及系统
CN111339071B (zh) 一种多源异构数据的处理方法及装置
CN104050042B (zh) Etl作业的资源分配方法及装置
CN107404523A (zh) 云平台自适应资源调度系统和方法
CN107463595A (zh) 一种基于Spark的数据处理方法及系统
CN113037802B (zh) 一种用于电力物联网的云边数据协同方法
CN112202899B (zh) 用于工作流的处理方法、装置、智能工作站和电子设备
US10158709B1 (en) Identifying data store requests for asynchronous processing
CN112069204A (zh) 用于算子服务的处理方法、装置、智能工作站和电子设备
CN109815283A (zh) 一种异构数据源可视化查询方法
CN106528169B (zh) 一种基于AnGo动态演化模型的Web系统开发可复用方法
CN112148494A (zh) 用于算子服务的处理方法、装置、智能工作站和电子设备
CN110515716A (zh) 一种支持优先级和反亲和的云优化调度方法及系统
CN108874757A (zh) 报表生成方法及系统、计算机可读介质、电子设备
CN114756629B (zh) 基于sql的多源异构数据交互分析引擎及方法
CN111984505A (zh) 一种运维数据采集引擎及采集方法
CN115756822A (zh) 高性能计算应用性能调优的方法及系统
CN113010296B (zh) 基于形式化模型的任务解析与资源分配方法及系统
CN114679451A (zh) 面向边缘计算的服务调度系统及其调度方法
Hajlaoui et al. Multi-tenancy aware configurable service discovery approach in cloud computing
CN111970145B (zh) 基于语义化虚拟和任务迁移的物联网设备管控方法
Zhou et al. An interactive and reductive graph processing library for edge computing in smart society
CN113886111A (zh) 一种基于工作流的数据分析模型计算引擎系统及运行方法

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