CN110737529A - 一种面向短时多变大数据作业集群调度自适应性配置方法 - Google Patents
一种面向短时多变大数据作业集群调度自适应性配置方法 Download PDFInfo
- Publication number
- CN110737529A CN110737529A CN201910837799.2A CN201910837799A CN110737529A CN 110737529 A CN110737529 A CN 110737529A CN 201910837799 A CN201910837799 A CN 201910837799A CN 110737529 A CN110737529 A CN 110737529A
- Authority
- CN
- China
- Prior art keywords
- cluster
- state
- module
- training
- time
- 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
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/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/5027—Allocation 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/5038—Allocation 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
-
- 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种面向短时多变大数据作业集群调度自适应性配置方法。所述方法是针对云平台异构、动态负载的集群调度器配置优化,对云平台负载的异构性和短时多变的特点所提出的一个自适应的集群调度器配置优化的方法;云平台负载能够分为服务类应用和分析类应用,不同的分类在资源的消耗上,对时间的要求上都不相同。本发明所述方法根据作业的状态信息和集群环境的信息来调整集群调度器的配置,使其始终处于最佳的调度配置,从而提高作业性能,降低作业延迟,能更好适应云平台的异构负载,并能更好的找到与当前集群状态相对应的优化配置项,使得集群作业等待时间接近最小化,提高了作业效率,有效调度了短时多变的大数据作业。
Description
技术领域
本发明属于集群调度技术领域,尤其涉及一种面向短时多变大数据作业集群调度自适应性配置方法。
背景技术
目前,集群调度是云计算系统性能优化和资源管理的必要前提。一个好的调度器能有效提高集群的利用率并节约用户的投资成本,因此集群调度一直是热门的研究方向之一。面向短时大数据作业的集群调度面临三大挑战:1.短时作业的异构性和动态性;2.如何配置调度程序,这将决定作业的性能;3.没有一种适用于所有情况的最优配置。对于云平台,集群作业能够分为两种类型:
1、服务类应用:如搜索引擎(Search Engine)、社交网络(Social Network)和电子商务(E-commerce)往往提供在线服务,用户对请求延迟十分敏感,请求的执行时间稍有延迟就会造成大量的用户流失和经济损失。服务类应用具有规模大,高并发,用户请求会周期性变化的特点。
2、分析类应用:如Hadoop上的分析类应用(排序、k-means)对任务处理时间不敏感,其性能往往用吞吐量(单位时间处理的任务数)来衡量。分析类应用需要的资源具有多样性,而且本事的应用类型也十分广泛,包括高性能计算和数据密集型分析类应用。
Hadoop:由Apache基金会开发,基于MapReduce的分布式系统基础架构,能够把一个计算任务(Job)分解为许多并行子计算任务(task),并在多个服务器上运行。
由于云平台负载的异构性和多样性,不同应用之间会共享、竞争资源,这都会导致应用的性能下降。申请人通过检索谷歌学术,中国知网,国家知识产权局和德文特专利库,在近三年的检索结果中选取了三个和本发明稍有接近的方法和技术,现有方法的缺点如下所述。
现有方法1、异构工作负载的混合云自适应调度策略(Hybrid Cloud AdaptiveScheduling Strategy for Heterogeneous Workloads),是一种高效的混合云异构工作负载自适应调度策略,是为了提高私有云的利用率和公有云的成本效率。算法1根据作业类型和异构资源建立排队模型,使作业选择最优的异构私有云资源。然后,当作业进入对应资源池的作业队列时,根据需要调度任务以满足用户的约束并申请最优的公有云资源。在混合云中,现有方法1能够提高私有云的利用率和吞吐量,还能够降低公有云的货币成本。
现有方法1的调度流程如下:
首先,作业被分派到私有云,通过逻辑回归的方法对作业进行分类并根据资源利用情况对异构私有云资源进行分类。这些作业被分派到私有云中相应的资源池中。根据私有云调度算法,将队列中的一些任务在私有云内执行,并将无法按时在私有云内完成的任务分配到公有云上。私有云作业调度算法中首先要估计作业需要执行的时长,当私有云能够在作业的规定时间内完成就将作业分配到私有云上执行,当超过规定时长则将作业分配到公有云上执行。运用了一种基于BP神经网络的MapReduce任务预测方法。首先提取历史作业执行信息中MapReduce任务的相关因素作为样本输入。然后利用BP神经网络算法进行迭代学习,不断调整参数权重,直至所有样本收敛。在确定了BP神经网络模型的参数后,根据BP神经网络模型预测了MapReduce任务的执行时间。最后,根据公有云调度算法选择最优的公有云资源。公有云调度算法中,在能在作业规定时间内完成的条件下选择花费最低的资源。
MapReduce:一种编程模型,用于海量数据集(如1TB,1PB)的并行运算。
现有方法1和本发明提出的算法都属于使用了神经网络的动态资源调度算法。而且,两个算法都是运用神经网络先对环境进行处理分析,并将作业相关因素作为参数。显著不同的是,现有方法1运用BP神经网络对作业的完成时间进行预测再根据预测结果调度作业,而本发明不仅是将作业的相关因素作为参数,还将系统状态作为参数,同时处理和分析两方的参数。除此之外,现有方法1是运用神经网络对作业进行直接调度,而本发明是通过Controller模块调整YARN(Yet Another Resource Negotiator,另一种资源协调者)调度器进行配置优化,从而间接的影响作业调度。
BP神经网络:BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。
YARN:Apache Hadoop YARN是一种新的Hadoop资源管理器,是一个通用资源管理系统,能为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享的方面带来了诸多便利。
现有方法2、基于强化学习的网格或IaaS云混合作业调度方案(A ReinforcementLearning-based Mixed Job Scheduler Scheme for Grid or IaaS Cloud);调度方案基于强化学习,在虚拟机资源和期限约束下的作业最大执行时间和平均等待时间最小化,并采用并行多阶段并行技术,平衡了学习过程中的探索和开发,最终实现了有效的任务调度。现有方法2侧重于计算密集型作业和数据密集型作业的混合操作。现有方法2中一个未考虑的方面是作业的执行顺序的问题,尽管在某些应用程序中这可能并不重要,但在某些全局系统状态(如银行账户)更新的其他应用程序中,执行操作的顺序就很重要了。假设一个虚拟机只能运行一个作业,并将作业集和虚拟机群用矩阵表示,通过两者相乘来估计作业是否能在规定时间内完成,当能完成则在对应虚拟机的位置上显示1,不能准时完成的虚拟机位置上显示0。现有方法2采取了多智能体并行计算的方法来加快作业调度,每个智能体根据用户数据,历史记录,Q值表的调度规则库来选择行动,计算预计值和实际值的差别来优化调度规则。在强化学习算法方面和传统强化学习基本一样,但在多智能体之间还没有建立很好的联系,在这一点上仍能够进行改进。
IaaS(Infrastructure as a Service):消费者通过Internet能够从完善的计算机基础设施获得服务,这类服务称为基础设施即服务。
现有方法2和本发明提出的方法都是基于强化学习的资源调度,并且目的都是减少任务等待时间,提高作业性能。但不同的是方法2是通过强化学习对作业直接进行资源的调度,本发明提出的方法是通过基于DRL的Controller模块对YARN资源调度器进行配置更新。由于是通过强化学习对作业直接进行调度,现有方法2没有考虑作业的执行顺序的问题。
DRL(Deep Reinforcement Learning):深度强化学习。深度强化学习将深度学习的感知能力和强化学习的决策能力相结合,能够直接根据输入的图像进行控制,是一种更接近人类思维方式的人工智能方法。
现有方法3、RALBA:云计算的计算感知负载平衡调度程序(RALBA:a computation-aware load balancing scheduler for cloud computing);由于云作业映射不平衡,导致资源利用效率低下、制造时间缩短和吞吐量降低。云计算启发式调度器RALBA以最小的占用时长和增加的吞吐量来确保提高资源利用率。RALBA目标是最大限度地利用资源,最小化执行时间或制造时间,最大限度地提高吞吐量。RALBA调度程序由两个子调度程序组成:填充和溢出(fill and spill)。这两个子程序分别执行算法的两个阶段:第一个阶段,根据虚拟机的计算能力和云作业的计算要求,对工作负载进行调度。第二阶段将剩余的作业(由RALBA的第一阶段调度留下)调度到产生最早完成时间的虚拟机。
RALBA调度流程如下:
a、首先计算每个虚拟机的计算能力占整个集群计算能力的比例
b、计算每个虚拟机应分配作业的规模大小
c、统计所有需要分配的作业
d、在fill程序中给需要分配的最大作业分配当前计算能力最强的虚拟机;在spill程序中分配队列中模拟最早完成时间,并分配最早完成的作业。
RALBA和本发明算法都是支持短时多变大数据作业的动态调度算法,且都以减少任务等待时间,提高作业性能为目的。RALBA作为未使用神经网络的动态调度算法,除了基于SLA(服务水平协议)的资源和期限限制的作业可能无法得到充分调度外,其他的云作业都以负载平衡的方式进行调度。
SLA:Service-Level Agreement的缩写,意思是服务等级协议,SLA是关于网络服务供应商和客户间的一份合同,其中定义了服务类型、服务质量和客户付款的术语。
在实际环境中云负载具有异构性和多变性,且大部分云作业只在短时间内运行。而随着作业的不同和集群状态不同,最佳的调度配置也会发生改变。但没有选用最佳的调度配置,作业延迟就会显著增加。集群的调度需要根据多变的作业做出及时的调整,因此需要集群的操作员手动调整调度器和没有适用于所有情况的统一最优调度就成为了短时多变的大数据作业调度面临的两大问题。当能实时的根据当前作业和集群环境自适应地改变调度配置,作业性能就能得到极大的提高。针对云平台负载的异构、动态的负载,本发明提出的了一种应用在云平台上面向短时多变大数据作业的集群调度自适应配置方法。
发明内容
本发明的目的在于提供一种能够克服上述技术问题的面向短时多变大数据作业集群调度自适应性配置方法,本发明所述方法包括以下步骤:
步骤1,初始化各模块:
Controller模块用于初始化Env模块、Agent模块并控制预训练阶段、正式运行阶段、评估阶段代码的执行;Controller模块按照系统运行时的需求不同分为两个子类;
Controller模块是在正常的使用系统优化集群调度器配置时使用的,Controller模块初始化一个Env模块,环境的交互、Controller模块是集群环境的被动观察者,对集群的修改仅限于代理动作对集群调度器配置项的修改;另一个Controller子类被称为EvaluationController模块(评估Controller模块),EvaluationController模块用于评估系统的性能时使用;EvaluationController模块初始化一个EvaluationEnv模块,控制初始化环境并在运行结束时对系统进行评估;
Controller模块包含预训练断点重启功能,在预训练阶段,每在一个预设动作下完成一个运行周期,把当前的经验回放内存保存为本地文件,调用经验回放内存的保存和加载功能,当从断点恢复时,只需加载最近的经验回放内存就能够继续训练;Agent模块(代理模块)位于Controller模块之中用于深度强化学习代理,任务是学习和决策,本发明使用的是Rainbow算法中设计的神经网络模型,在Agent的设计中包含神经网络模型并根据系统的具体设计编写训练代理的代码。
步骤2,使用样本生成器生成样本进行预训练:
步骤2.1,样本生成器生成样本:
样本生成器根据业务规则,调度器配置和集群工作负载日志信息生成模拟真实环境中的样本,样本生成器中的业务规则包括等待任务的资源分配规则、任务执行时间估计规则、事务动态规则和约束检查规则;
步骤2.2,将样本存入经验回放内存(ReplayMemory):
经验回放内存中存放训练样本,样本的来源有两处:一是设计了一个历史日志驱动的样本生成器;二是对集群的真实状态进行采样;样本生成器的历史日志选取的是谷歌和阿里的开源日志信息,根据业务规则和调度器配置参数生成用于神经网络训练的模拟真实环境的样本,从样本生成器中产生的样本用于Controller模块的预训练;业务规则包括等待任务的资源分配规则、任务执行时间估计规则、事务动态规则和约束检查规则;
经验回放内存提供存储经验,依照存储经验的优先级进行采样,更新存储经验的优先级,在预训练和正式运行以及评估阶段,经验回放内存都会被用到,在每个时间片内系统从Env模块和Agent获取或计算出一个经验,并将这个经验存入经验回放内存中,采样和更新经验的优先级将会在训练Agent模块时用到。
步骤2.3,对样本进行预训练:
初始化PreTrainEnv模块,使用数据集依次运行,在每个时间片内,使用PreTrainEnv模块提供的接口获取当前集群的状态并将状态与当前训练使用的决策、当前时间片决策的执行回报一起输入经验回放内存中;预训练期间Agent模块根据设定时间间隔记录下当时的集群状态并存入经验回放内存中:
步骤2.3.1,集群状态建模:
步骤2.3.1.1,状态:把状态st分为四个部分,如以下公式(1):
st=(Jt wait,Jt run,Ot wait,Ut).......(1),
其中:Jt wait为等待工作的集合,Jt run为运行工作的集合,Ut为可用资源,Ot为先前队列和目前等待工作的约束;通过分析谷歌和阿里巴巴真实的集群日志,定义状态成分的特征;
步骤2.3.1.2,工作(J):工作j∈J由三部分组成(tsubmit,prio,task):
(1)tsubmit是作业j的提交时间;
(2)prio为作业j的优先级,不同应用类型的工作有不同的优先级;
(3)task是作业j的任务集,每一个task都是由执行次序和CPU和内存资源的用法组成;
步骤2.3.1.3,资源(U):代指供给集群中最好效果工作的资源,在主流云平台谷歌和阿里巴巴中,Linux容器被用来隔离资源和统计使用资源,每一个容器u∈U有两部分(CPU,mem):CPU和mem分别指节点中授权的中央处理器和内存工作空间;
步骤2.3.1.4,调度约束(O),调度约束(O)由两部分组成(Oqueue,Ojob):oi queue∈Oqueue(1≤i≤k)表示队列中第k个约束,即每个队列资源的最大数量、最小数量;oi job∈Ojob表示工作j的约束,工作位置即j任务运行的设备。
步骤3,初始化集群状态:
读取初始化集群的状态并判断集群使用的调度器类型,以便于DRL优化器在之后根据不同的调度器类型,即capacity调度器及fair调度器选择不同的动作执行方法,在使用capacity调度器时,更新capacity-scheduler.xml文件并刷新集群队列配置项;使用fair调度器时,更新fair-scheduler.xml并刷新队列配置项,使用不同调度器时,获得的集群状态,并将集群状态转换为相同格式;集群环境交互模块;对负责和环境交互的Env模块进行更深层次的分析,Env模块有以下使用场景:在谷歌集群历史负载日志进行预训练时及在正式运行系统时和在测试评估系统性能时,能够得到Env模块的功能是以下4点:
1、获取集群的状态;
2、计算深度强化学习代理执行的回报;
3、执行深度强化学习代理的决策;
4、在使用SLS模拟进程结束时,重启SLS和YARN集群;
SLS(Yarn Scheduler Load Simulator)是apache官方提供的调度器模拟工具,能够模拟App资源请求与资源分配过程,分析调度器的负载与性能;
在本发明中,将Env模块分为了3个子模块,对应于3个场景:
1、PreTrainEnv模块:负责在预训练阶段使用不同的配置项和预训练数据集启动SLS,并提供接口,以便于其他模块获取集群的当前状态、使用集群当前状态计算获得的回报和当前执行的配置项的信息;
2、EvaluationEnv模块:EvaluationEnv模块负责在评估测试系统性能时与集群环境的交互工作,类似于PreTrainEnv模块,EvaluationEnv模块使用测试数据集启动集群,并提供接口,以便于其他模块获取集群的当前状态、使用集群当前状态计算获得的回报的信息,在测试结束时,提供作业的总运行时间,以便于其他模块对深度学习代理的优化性能做出评估;
3、Env模块:Env模块用于非评估阶段时的与集群环境的交换工作,Env模块只提供接口,以便于获取当前集群的状态和计算获得的回报。
步骤4,获取集群状态并进行预处理,然后转换为张量状态的DRL可处理的集群状态,并调用EvaluationEnv模块中的get_state_tensor方法:
步骤4.1,获取集群状态:
程序通过YARN提供的RESTFul API接口,在每个时间片内动态的获取集群状态,包括集群自身的可用资源、在集群中运行的作业以及队列的调度约束三种数据并将结构化为一个程序可读的状态结构;
步骤4.1.1,集群状态和集群配置项的建模:
模型的状态部分包括集群中m个等待作业,每个作业被描述为提交时间,优先级和任务集合;n个可用资源,每个资源被表示为其平台类型,和CPU和内存量;以及针对k个优先级队列和m个作业的调度约束;
步骤4.2,转换为集群状态的张量:
通过转换函数,将集群状态转换为一个200*200大小的张量,这个张量的组成结构为:1-75行每一行为一个在集群中运行的作业的状态信息;76-150行每一行为一个在集群中等待的作业的状态信息;151-199行为集群的可用资源情况;200行为队列的调度约束情况。
步骤5,使用贪婪算法进行决策,选取一个调度动作;将当前时刻集群的状态输入至代理的DQN(深度Q网络)中,DQN输出当前的决策结果,之后将决策结果执行,也就是对集群调度器进行配置调整;DQN:是将Q learning和卷积神经网络(CNN)结合在一起,由Mnih在2013年首次提出,即在默认情况下,DRL代理有0.1%的情况下会随机的在动作空间中选择一个动作执行;除此之外,DRL代理将会按照状态张量来进行决策,即使用贪婪算法进行决策:
步骤5.1,动作建模:
动作即在给定的k个之前队列约束中,at表示一个Agent设置的可能的配置,at如下式(2)所示:
上式中,队列配置ci queue到ck queue决定了k个队列资源分配,ci policy为队列i的调度方案,用了有限个离散的配置,能在集群队列中处理复杂资源的分配;
步骤5.2,动态过渡:
在MDP中,动态过渡R(st+1|st,at)反应了集群中多样的时间动态,在真实的调度场景中由三个因素决定:接受资源分配的工作Jt allocate,在t时间完成的动作Jt complete,和在t+1时间新接受的工作Jt+1 arrive,记录被调度配置影响的Jt allocate和Jt complete,调度配置有动作at建立,由四个状态参数决定的,四个状态参数分别表示等待的作业,运行的作业,t+1时刻的资源,t+1时刻的约束条件;
MDP(Markov Decision Process):指在马尔可夫过程的假设前提下,通过分析随机变量的现时变化情况来预测这些变量未来变化情况或作出决策的一种决策方法。
步骤6,执行步骤5的选择的动作并让调度器观察回报和执行后获得的下一个状态,调用EvaluationEnv的step方法;DRL将决策的结果传入环境模块中,环境模块将动作执行,之后再次使用环境模块观察动作执行的回报并获取执行结束后的集群状态,即下一个状态:
奖励函数:每一步时间t中,奖励估计动作a的执行表现,在集群调度中由完成的工作延迟表现;奖励由平均工作延迟表示,DRL代理的目标就是将奖励最大化即最小化工作延迟,如以下公式(4):
在奖励计算中,采用公式fallocate(st,a,j)估计在状态st和动作a条件下作业j的资源分配,作业j有一个或多个资源分配,每一个分配都是由分配时间tallocate和分配的容器u表示,表示等待的作业数量;
工作j的延迟包括在执行前的等待的时间和执行时间,一旦开始接受资源,工作就开始运行,当当前分配不能满足工作的资源要求,将在运行进程中获取很多资源,用函数fexcute(j,Tj allocate,Uj)来计算j在m(m≥1)分配方式下的j的运行时间并计算j的延迟,如下式(5):
步骤7,判断是否到达训练的时间片,当到达训练的时间片则进入步骤8,当未到达训练的时间片,则转到步骤9。
步骤8,使用经验回放内存中的数据对模型进行训练:
使用经验回放内存中的经验对代理Agent模块进行训练,待作业运行结束时,对每次获得的总运行时间做平均处理,获得每次作业的平均总等待时间,使用数据对模型的优化性能做出评估,代理从经验回放内存中随机的进行抽样,并将抽样获取的样本输入DQN中进行训练;训练首先根据集群状态和集群配置项的建模,状态st=(Jt wait,Jt run,Ot wait,Ut),其中,Jt wait为等待工作的集合,Jt run为运行工作的集合,Ut为可用资源,Ot为先前队列和目前等待工作的约束;经验的建模为e=(St,Rt,At,non-terminal),St为当前的集群状态,Rt为上一步的回报,At为本步骤的决策结果,non-terminal表示当前集群中的作业是否全部执行完毕;
强化学习代理训练:
Controller模块从D中随机采样,对模型进行训练;Controller模块是对集群中的YARN调度器进行配置,如改变capacity调度器中的capacity参数和fair调度器中的weight参数;Controller模块选用的强化学习算法是Rainbow算法,Rainbow算法通过将DDQN,Prioritized DDQN,Dueling DDQN,A3C(asynchronous advantage actor-critic),Distributional DQN,Noisy DQN的DQN算法相结合显著提高了训练的效率和最终效果,DDQN通过在当前Q网络中先找出最大Q值对应的动作,解决了Q-learning的高估偏差问题,优先化经验回放(Prioritized experience replay)通过更频繁地回放值得学习的转换来提高数据效率,竞争网络(dueling network)架构通过分别表示状态值和操作优势,去除多余的自由度以提高算法稳定性,A3C从多步bootstrap目标中学习,将改变“偏差—方差”的平衡并将新观察到的奖励更快地传播到早期的访问状态;分布式Q-learning学习了一种折扣回报的分类分布而不是对平均值进行评估;噪声DQN(Noisy DQN)则使用随机网络层进行探索;
Agent模块使用了Rainbow模型下的Integrated Agent,融合了DQN、Dueling DQN、Distributed RL、Noisy Nets、Multi-step learning这几项改进模型,Agent模块下具有两个结构相同,职责不同的改进DQN模型和一个用于生成噪声的Noisy Linear模型,Agent模块具有以下4点功能:
1、根据Env模块提供的张量状态的集群状态提供时间片的决策;
2、提供学习接口,学习接口能够使用经验回放内存中的经验训练Rainbow模型的参数;在学习过程中,系统将会按照经验的优先级从经验回放内存中采样,之后将采样获得样本输入至Agent模块的online-net和target-net中,使用Rainbow模型中的算法对online-net进行更新操作;
3、提供更新target-net的接口,接口能够在系统需要更新target-net模型参数的时间片对其进行更新;
4、提供重设online-net中线性层的神经网络节点的噪音的权重接口。
步骤9,判断是否到达更新Target Net的时间片,当到达更新Target Net的时间片,则进入步骤10,当未到达更新Target Net的时间片,则进入步骤11。
步骤10,使用Online Net的参数更新Target Net:
Agent模块是深度强化学习的代理,包含有两个参数相同的DQN模型,一个称之为Online Net,另一个为Target Net,Online Net为每次被训练的模型,仅在多次训练后由Online Net传值来进行更新;在更新Target Net时,由于Online Net与Target Net结构相同,参数相同,只需将当前训练得到的Online Net的参数直接赋值给Target Net即能够完成更新。
步骤11,判断集群是否完成了当前的所有任务即一次执行,是则进入步骤10,否则返回步骤4;当集群中的任务已经全部执行完成且不存在未加入集群中的任务,则判定集群完成了当前的所以任务,一次执行结束;否则判断集群还未完成执行,继续本次循环。
步骤12,判断迭代次数是否足够,当迭代次数足够,则停止程序,当迭代次数不足够,则返回步骤2。
需要说明的是:
本发明所述方法是将集群调度作为一个强化学习问题将其形式化,Agent在集群环境中学习如何工作使奖励指标最大;在每一个离散的时间t=0,1,2...中,环境给Agent一个观察目标st,代理根据挑选的动作at,观察奖励函数R(st,at)的反馈和下一个的环境状态s作出合理的应对;在MDP(Markov Decision Process)的框架中,这个相互作用被规范化,MDP是一个由状态集合S,动作集合A,动态传递0≤P(st+1|st,at)≤1和奖励函数R(s,a)定义的可控随机过程;本发明通过定义状态,动作,动态过渡和奖励函数来将集群调度器表示为离散的时间,状态和MDP。
本发明所述方法是基于DRL的集群调度器配置优化,包括步骤:在每个时刻代理Agent模块与环境交互得到一个高维度的观察,并利用DL(Deep learning)方法来感知观察,得到具体的状态特征;基于预期回报来评价各动作的价值函数通过相应的策略将当前状态映射为相应的动作;环境对此动作做出反应,并得到下一个观察.通过不断循环以上过程,最终能够得到实现目标的最优策略。
本发明所述方法是基于强化学习的Controller模块根据得到最优策略,对集群调度器配置进行更改,使其对于当前集群环境始终处于最优调度策略,DL是深度学习的概念源于人工神经网络的研究,深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
本发明所述方法是针对云平台异构、动态负载的集群调度器配置优化,针对云平台负载的异构性和短时多变的特点所提出的一个自适应的集群调度器配置优化的方法;云平台负载能够分为服务类应用和分析类应用,不同的分类在资源的消耗上,对时间的要求上都不相同。
本发明所述方法根据作业的状态信息和集群环境的信息来调整集群调度器的配置,使其始终处于最佳的调度配置,从而提高作业性能,利用DL方法来感知观察,得到具体的状态特征;基于预期回报来评价各动作的价值函数通过相应的策略将当前状态映射为相应的动作;环境对此动作做出反应,并得到下一个观察.通过不断循环以上过程,最终能够得到实现目标的最优策略。
本发明所述方法提出流程中使用的Controller模块和样本生成器,Controller模块的特征如下:
1、使用样本生成器生成的样本进行预训练,预训练期间Controller模块仅每隔设定时间记录下当时的集群状态并将其存入经验回放内存中,而不使用它进行训练。
2、使用经验回放内存中的经验对代理Agent进行训练,代理从经验回放内存中随机的进行抽样,并将抽样获取的样本输入DQN中进行训练,训练首先根据集群状态和集群配置项的建模,状态st=(Jt wait,Jt run,Ot wait,Ut),其中Jt wait为等待工作的集合,Jt run为运行工作的集合,Ut为可用资源,Ot为先前队列和目前等待工作的约束;经验的建模为e=(St,Rt,At,non-terminal),St为当前的集群状态,Rt为上一步的回报,At为决策结果,non-terminal代表当前步集群中的作业未全部执行完毕。
3、对集群调度器进行配置调整,获取当前时刻集群的状态,并将其输入至代理的DQN中,DQN输出当前的决策结果,之后将决策结果执行,也就是对集群调度器进行配置调整。
本发明所述方法的样本生成器的特征是根据业务规则、调度器配置和集群工作负载日志信息来生成模拟真实环境中的样本,并将样本生成器生成的样本对代理进行预训练,业务规则包括等待任务的资源分配规则、任务执行时间估计规则、事务动态规则和约束检查规则。
本发明所述方法的优越效果如下:
1、现有技术存在的缺点是未实现作业的并行运输且没有考虑公有云的状态,而本发明所述方法是基于DRL的Controller模块更新YARN资源调度器中的配置来改变作业的调度,因此作业的并行处理并没有受到影响,除此之外作业的调度算法获取的是整个集群环境的状态,调度时会考虑到集群的当前的状况,本发明所述方法能够克服在现有技术中存在的并行问题和未考虑公有云状态的问题。
本发明所述方法中,由于Controller模块改变的是YARN的调度参数,对作业未进行直接调度,因此作业的执行顺序并未受到影响,相比现有技术有更好的适应负载的异构性,除此之外,本发明使用的强化学习的模型结合了多个DQN算法,显著提高了训练效率和最终效果。
3、本发明所述方法通过基于DRL的Controller模块更改集群调度器,使其处于对于当前集群环境最佳的调度配置,本发明算法不仅能够解决现有技术中RALBA无法充分调度的SLA作业的问题,还能更好的应对异构负载,而且当负载平衡不是最优配置时也能够调整为最优调度,本发明所述方法通过使用基于DRL的Controller模块来对YARN进行配置优化,并在深度强化学习方面采用了多个DQN算法的结合,显著提高了神经网络训练的效率和最终效果,本发明所述方法能够更好适应云平台的异构负载并能更好的找到与当前集群状态相对应的优化配置项,使得集群作业等待时间接近最小化,提高了作业效率,有效调度了短时多变的大数据作业。
4、本发明所述方法使用了深度强化学习模型,通过监控集群资源使用调度状况来对资源使用进行弹性的分配,提高了YARN集群的调度效果,减少了作业等待的时间,在相同主机上进行测试,未使用本发明的集群比使用本发明的集群平均执行时间长28%。
附图说明
图1是本发明所述方法的是基于强化学习的Controller模块和集群环境原理示意图;
图2是本发明所述方法的自动调整配置流程图;
图3是本发明所述方法的流程图;
图4是本发明所述方法的配置优化具体过程示意图;
图5是本发明所述方法的集群状态及集群配置项的建模示意图。
具体实施方式
下面结合附图对本发明的实施方式进行详细描述。如图1所示,本发明所述方法能够分为四个部分,分别是历史日志驱动的样本生成器,经验回放内存,基于强化学习的Agent模块和负责与环境进行交互的Env模块。图3是本发明所述方法的流程图;如图1-5所示,本发明所述方法包括以下步骤:
步骤1,初始化各模块:
Controller模块用于初始化Env模块、Agent模块并控制预训练阶段、正式运行阶段、评估阶段代码的执行;Controller模块按照系统运行时的需求不同分为两个子类;
Controller模块是在正常的使用系统优化集群调度器配置时使用的,Controller模块初始化一个Env模块,环境的交互、Controller模块是集群环境的被动观察者,对集群的修改仅限于代理动作对集群调度器配置项的修改;另一个Controller子类被称为EvaluationController模块(评估Controller模块),EvaluationController模块用于评估系统的性能时使用;EvaluationController模块初始化一个EvaluationEnv模块,控制初始化环境并在运行结束时对系统进行评估;
Controller模块包含预训练断点重启功能,在预训练阶段,每在一个预设动作下完成一个运行周期,把当前的经验回放内存保存为本地文件,调用经验回放内存的保存和加载功能,当从断点恢复时,只需加载最近的经验回放内存就能够继续训练;Agent模块位于Controller模块之中用于深度强化学习代理,任务是学习和决策,由于本发明使用的是Rainbow算法中设计的神经网络模型,在Agent的设计中包含神经网络模型并根据系统的具体设计编写训练代理的代码。
步骤2,使用样本生成器生成样本进行预训练:
步骤2.1,样本生成器生成样本:
样本生成器根据业务规则,调度器配置和集群工作负载日志信息生成模拟真实环境中的样本,样本生成器中的业务规则包括等待任务的资源分配规则、任务执行时间估计规则、事务动态规则和约束检查规则;
步骤2.2,将样本存入经验回放内存(ReplayMemory):
经验回放内存中存放训练样本,样本的来源有两处:一是设计了一个历史日志驱动的样本生成器;二是对集群的真实状态进行采样;样本生成器的历史日志选取的是谷歌和阿里的开源日志信息,根据业务规则和调度器配置参数生成用于神经网络训练的模拟真实环境的样本,从样本生成器中产生的样本用于Controller模块的预训练;业务规则包括等待任务的资源分配规则、任务执行时间估计规则、事务动态规则和约束检查规则;
经验回放内存提供存储经验,依照存储经验的优先级进行采样,更新存储经验的优先级,在预训练和正式运行以及评估阶段,经验回放内存都会被用到,在每个时间片内系统从Env模块和Agent获取或计算出一个经验,并将这个经验存入经验回放内存中,采样和更新经验的优先级将会在训练Agent模块时用到。
步骤2.3,对样本进行预训练:
初始化PreTrainEnv模块,使用数据集依次运行,在每个时间片内,使用PreTrainEnv模块提供的接口获取当前集群的状态并将状态与当前训练使用的决策、当前时间片决策的执行回报一起输入经验回放内存中;预训练期间Agent模块根据设定时间间隔记录下当时的集群状态并存入经验回放内存中;
步骤2.3.1,集群状态建模:
步骤2.3.1.1,状态:把状态st分为四个部分,如以下公式(1):
st=(Jt wait,Jt run,Ot wait,Ut).......(1),
其中:Jt wait为等待工作的集合,Jt run为运行工作的集合,Ut为可用资源,Ot为先前队列和目前等待工作的约束;通过分析谷歌和阿里巴巴真实的集群日志,定义状态成分的特征;
步骤2.3.1.2,工作(J):工作j∈J由三部分组成(tsubmit,prio,task):
(1)tsubmit是作业j的提交时间;
(2)prio为作业j的优先级,不同应用类型的工作有不同的优先级;
(3)task是作业j的任务集,每一个task都是由执行次序和CPU和内存资源的用法组成;
步骤2.3.1.3,资源(U):代指能供给集群中最好效果工作的资源,在主流云平台谷歌和阿里巴巴中,Linux容器被用来隔离资源和统计使用资源,每一个容器u∈U有两部分(CPU,mem):CPU和mem分别指节点中授权的中央处理器和内存工作空间;
步骤2.3.1.4,调度约束(O),调度约束(O)由两部分组成(Oqueue,Ojob):oi queue∈Oqueue(1≤i≤k)表示队列中第k个约束,即每个队列资源的最大数量、最小数量;oi job∈Ojob表示工作j的约束,工作位置即j任务运行的设备。
步骤3,初始化集群状态:
读取初始化集群的状态并判断集群使用的调度器类型,以便于DRL优化器在之后根据不同的调度器类型,即capacity调度器及fair调度器选择不同的动作执行方法,在使用capacity调度器时,更新capacity-scheduler.xml文件并刷新集群队列配置项;使用fair调度器时,更新fair-scheduler.xml并刷新队列配置项,使用不同调度器时,获得的集群状态,并将集群状态转换为相同格式;集群环境交互模块;对负责和环境交互的Env模块进行更深层次的分析,Env模块有以下使用场景:在谷歌集群历史负载日志进行预训练时及在正式运行系统时和在测试评估系统性能时,能够得到Env模块的功能是以下4点:
1、获取集群的状态;
2、计算深度强化学习代理执行的回报;
3、执行深度强化学习代理的决策;
4、在使用SLS模拟进程结束时,重启SLS和YARN集群;
SLS(Yarn Scheduler Load Simulator)是apache官方提供的调度器模拟工具,能够模拟App资源请求与资源分配过程,分析调度器的负载与性能;
在本发明中,将Env模块分为了3个子模块,对应3个场景:
1、PreTrainEnv模块:负责在预训练阶段使用不同的配置项和预训练数据集启动SLS,并提供接口,以便于其他模块获取集群的当前状态、使用集群当前状态计算获得的回报和当前执行的配置项的信息;
2、EvaluationEnv模块;EvaluationEnv模块负责在评估测试系统性能时与集群环境的交互工作,类似于PreTrainEnv模块,EvaluationEnv模块使用测试数据集启动集群,并提供接口以便于其他模块获取集群的当前状态、使用集群当前状态计算获得的回报的信息,在测试结束时,提供作业的总运行时间,以便于其他模块对深度学习代理的优化性能做出评估;
3、Env模块;Env模块用于非评估阶段时的与集群环境的交换工作,Env模块只提供接口,以便于获取当前集群的状态和计算获得的回报。
步骤4,获取集群状态并进行预处理,然后转换为张量状态的DRL可处理的集群状态,并调用EvaluationEnv模块中的get_state_tensor方法:
步骤4.1,获取集群状态:
程序通过YARN提供的RESTFul API接口,在每个时间片内动态的获取集群状态,包括集群自身的可用资源、在集群中运行的作业以及队列的调度约束三种数据并将结构化为一个程序可读的状态结构;
步骤4.1.1,集群状态和集群配置项的建模:
模型的状态部分包括集群中m个等待作业,每个作业被描述为提交时间,优先级和任务集合;n个可用资源,每个资源被表示为其平台类型,和CPU和内存量;以及针对k个优先级队列和m个作业的调度约束;
步骤4.2,转换为集群状态的张量:
通过转换函数,将集群状态转换为一个200*200大小的张量,这个张量的组成结构为:1-75行每一行为一个在集群中运行的作业的状态信息;76-150行每一行为一个在集群中等待的作业的状态信息;151-199行为集群的可用资源情况;200行为队列的调度约束情况。
步骤5,使用贪婪算法进行决策,选取一个调度动作;将当前时刻集群的状态输入至代理的DQN中,DQN输出当前的决策结果,之后将决策结果执行,也就是对集群调度器进行配置调整;DQN(深度Q网络)是将Q learning和卷积神经网络(CNN)结合在一起,由Mnih在2013年首次提出,即在默认情况下,DRL代理有0.1%的情况下会随机的在动作空间中选择一个动作执行;除此之外,DRL代理将会按照状态张量来进行决策,即使用贪婪算法进行决策:
步骤5.1,动作建模;
动作:在给定的k个之前队列约束中,at表示一个Agent设置的可能的配置,at如下式(2);
上式中,队列配置ci queue到ck queue决定了k个队列资源分配,ci policy为队列i的调度方案,用了有限个离散的配置,能在集群队列中处理复杂资源的分配;
步骤5.2,动态过渡;
在MDP中,动态过渡R(st+1|st,at)反应了集群中多样的时间动态,在真实的调度场景中由三个因素决定:接受资源分配的工作Jt allocate,在t时间完成的动作Jt complete,和在t+1时间新接受的工作Jt+1 arrive,记录被调度配置影响的Jt allocate和Jt complete,调度配置有动作at建立,由四个状态参数决定的,四个状态参数分别表示等待的作业,运行的作业,t+1时刻的资源,t+1时刻的约束条件;
MDP(Markov Decision Process):指在马尔可夫过程的假设前提下,通过分析随机变量的现时变化情况来预测这些变量未来变化情况或作出决策的一种决策方法。
步骤6,执行步骤5的选择的动作并让调度器观察回报和执行后获得的下一个状态,调用EvaluationEnv的step方法;DRL将决策的结果传入环境模块中,环境模块将动作执行,之后再次使用环境模块观察动作执行的回报并获取执行结束后的集群状态,即下一个状态:
奖励函数;每一步时间t中,奖励估计动作a的执行表现,在集群调度中由完成的工作延迟表现;奖励由平均工作延迟表示,DRL代理的目标就是将奖励最大化即最小化工作延迟,如下式(4);
在奖励计算中,采用公式fallocate(st,a,j)估计在状态st和动作a条件下作业j的资源分配,作业j有一个或多个资源分配,每一个分配都是由分配时间tallocate和分配的容器u表示,表示等待的作业数量;
工作j的延迟包括在执行前的等待的时间和执行时间,一旦开始接受资源,工作就开始运行,当当前分配不能满足工作的资源要求,将在运行进程中获取很多资源,用函数fexcute(j,Tj allocate,Uj)来计算j在m(m≥1)分配方式下的j的运行时间并计算j的延迟,如下式(5);
步骤7,判断是否到达训练的时间片,当到达训练的时间片则进入步骤8,当未到达训练的时间片,则转到步骤9。
步骤8,使用经验回放内存中的数据对模型进行训练;
使用经验回放内存中的经验对代理Agent模块进行训练,待作业运行结束时,对每次获得的总运行时间做平均处理,获得每次作业的平均总等待时间,使用数据就能够对模型的优化性能做出评估,代理从经验回放内存中随机的进行抽样,并将抽样获取的样本输入DQN中进行训练;训练首先根据集群状态和集群配置项的建模,状态st=(Jt wait,Jt run,Ot wait,Ut)。其中Jt wait为等待工作的集合,Jt run为运行工作的集合,Ut为可用资源,Ot为先前队列和目前等待工作的约束;经验的建模为e=(St,Rt,At,non-terminal),St为当前的集群状态,Rt为上一步的回报,At为此步骤的决策结果,non-terminal代表当前集群中的作业是否全部执行完毕;
强化学习代理训练:
Controller模块从D中随机采样,对模型进行训练;Controller模块是对集群中的YARN调度器进行配置,如改变capacity调度器中的capacity参数和fair调度器中的weight参数;Controller模块选用的强化学习算法是Rainbow算法,Rainbow算法通过将DDQN,Prioritized DDQN,Dueling DDQN,A3C(asynchronous advantage actor-critic),Distributional DQN,Noisy DQN的DQN算法相结合显著提高了训练的效率和最终效果,DDQN通过在当前Q网络中先找出最大Q值对应的动作,解决了Q-learning的高估偏差问题,优先化经验回放(Prioritized experience replay)通过更频繁地回放值得学习的转换来提高数据效率,竞争网络(dueling network)架构通过分别表示状态值和操作优势,去除多余的自由度以提高算法稳定性,A3C从多步bootstrap目标中学习,将改变“偏差—方差”的平衡并将新观察到的奖励更快地传播到早期的访问状态;分布式Q-learning学习了一种折扣回报的分类分布而不是对平均值进行评估;噪声DQN(Noisy DQN)则使用随机网络层进行探索;
Agent模块使用了Rainbow模型下的Integrated Agent,融合了DQN、Dueling DQN、Distributed RL、Noisy Nets、Multi-step learning这几项改进模型,Agent模块下具有两个结构相同,职责不同的改进DQN模型和一个用于生成噪声的Noisy Linear模型,Agent模块具有以下4点功能:
1、根据Env模块提供的张量状态的集群状态提供时间片的决策;
2、提供学习接口,学习接口能够使用经验回放内存中的经验训练Rainbow模型的参数;在学习过程中,系统将会按照经验的优先级从经验回放内存中采样,之后将采样获得样本输入至Agent模块的online-net和target-net中,使用Rainbow模型中的算法对online-net进行更新操作;
3、提供更新target-net的接口,接口能够在系统需要更新target-net模型参数的时间片对其进行更新;
4、提供重设online-net中线性层的神经网络节点的噪音的权重接口;
步骤9,判断是否到达更新Target Net的时间片,当到达更新Target Net的时间片,则进入步骤10,当未到达更新Target Net的时间片,则进入步骤11。
步骤10,使用Online Net的参数更新Target Net:
Agent模块是深度强化学习的代理,包含有两个参数相同的DQN模型,一个称之为Online Net,另一个为Target Net,其中Online Net为每次被训练的模型,仅在多次训练后由Online Net传值来进行更新;在更新Target Net时,由于Online Net与Target Net结构相同,参数相同,只需将当前训练得到的Online Net的参数直接赋值给Target Net即能完成更新。
步骤11,判断集群是否完成了当前的所有任务即一次执行,是则进入步骤10,否则返回步骤4;
当集群中的任务已经全部执行完成且不存在未加入集群中的任务,则判定集群完成了当前的所以任务,一次执行结束;否则判断集群还未完成执行,继续本次循环。
步骤12,判断迭代次数是否足够,当迭代次数足够,则停止程序,当迭代次数不足够,则返回步骤2。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的范围内,能够轻易想到的变化或替换,都应涵盖在本发明权利要求的保护范围内。
Claims (4)
1.一种面向短时多变大数据作业集群调度自适应性配置方法,其特征在于,包括以下步骤:
步骤1,初始化各模块:
Controller模块用于初始化Env模块、Agent模块并控制预训练阶段、正式运行阶段、评估阶段代码的执行;Controller模块按照系统运行时的需求不同分为两个子类;
Controller模块是在正常的使用系统优化集群调度器配置时使用的,Controller模块初始化一个Env模块,环境的交互、Controller模块是集群环境的被动观察者,对集群的修改仅限于代理动作对集群调度器配置项的修改;另一个Controller子类被称为EvaluationController模块,EvaluationController模块用于评估系统的性能时使用;EvaluationController模块初始化一个EvaluationEnv模块,控制初始化环境并在运行结束时对系统进行评估;
Controller模块包含预训练断点重启功能,在预训练阶段,每在一个预设动作下完成一个运行周期,把当前的经验回放内存保存为本地文件,调用经验回放内存的保存和加载功能,当从断点恢复时,只需加载最近的经验回放内存就能够继续训练;Agent模块位于Controller模块之中用于深度强化学习代理,任务是学习和决策,由于本发明使用的是Rainbow算法中设计的神经网络模型,在Agent的设计中包含神经网络模型并根据系统的具体设计编写训练代理的代码;
步骤2,使用样本生成器生成样本进行预训练;
步骤3,初始化集群状态:
读取初始化集群的状态并判断集群使用的调度器类型,以便于DRL优化器在之后根据不同的调度器类型,即capacity调度器及fair调度器选择不同的动作执行方法,在使用capacity调度器时,更新capacity-scheduler.xml文件并刷新集群队列配置项;使用fair调度器时,更新fair-scheduler.xml并刷新队列配置项,使用不同调度器时,获得的集群状态,并将集群状态转换为相同格式;集群环境交互模块;对负责和环境交互的Env模块进行更深层次的分析,Env模块有以下使用场景:在谷歌集群历史负载日志进行预训练时及在正式运行系统时和在测试评估系统性能时,能够得到Env模块的功能是以下4点:
1、获取集群的状态;
2、计算深度强化学习代理执行的回报;
3、执行深度强化学习代理的决策;
4、在使用SLS模拟进程结束时,重启SLS和YARN集群;
SLS是apache官方提供的调度器模拟工具,能够模拟App资源请求与资源分配过程,分析调度器的负载与性能;
在本发明中,将Env模块分为了3个子模块,对应3个场景:
1、PreTrainEnv模块:负责在预训练阶段使用不同的配置项和预训练数据集启动SLS,并提供接口,以便于其他模块获取集群的当前状态、使用集群当前状态计算获得的回报和当前执行的配置项的信息;
2、EvaluationEnv模块;EvaluationEnv模块负责在评估测试系统性能时与集群环境的交互工作,类似于PreTrainEnv模块,EvaluationEnv模块使用测试数据集启动集群,并提供接口以便于其他模块获取集群的当前状态、使用集群当前状态计算获得的回报的信息,在测试结束时,提供作业的总运行时间,以便于其他模块对深度学习代理的优化性能做出评估;
3、Env模块;Env模块用于非评估阶段时的与集群环境的交换工作,Env模块只提供接口,以便于获取当前集群的状态和计算获得的回报;
步骤4,获取集群状态并进行预处理,然后转换为张量状态的DRL可处理的集群状态,并调用EvaluationEnv模块中的get_state_tensor方法;
步骤5,使用贪婪算法进行决策,选取一个调度动作;将当前时刻集群的状态输入至代理的DQN中,DQN输出当前的决策结果,之后将决策结果执行,也就是对集群调度器进行配置调整;DQN是将Q learning和卷积神经网络结合在一起,由Mnih在2013年首次提出;即在默认情况下,DRL代理有0.1%的情况下会随机的在动作空间中选择一个动作执行;除此之外,DRL代理将会按照状态张量来进行决策,即使用贪婪算法进行决策;
步骤6,执行步骤5的选择的动作并让调度器观察回报和执行后获得的下一个状态,调用EvaluationEnv的step方法;DRL将决策的结果传入环境模块中,环境模块将动作执行,之后再次使用环境模块观察动作执行的回报并获取执行结束后的集群状态,即下一个状态:
奖励函数;每一步时间t中,奖励估计动作a的执行表现,在集群调度中由完成的工作延迟表现;奖励由平均工作延迟表示,DRL代理的目标就是将奖励最大化即最小化工作延迟,如下式(4);
在奖励计算中,采用公式fallocate(st,a,j)估计在状态st和动作a条件下作业j的资源分配,作业j有一个或多个资源分配,每一个分配都是由分配时间tallocate和分配的容器u表示,表示等待的作业数量;
工作j的延迟包括在执行前的等待的时间和执行时间,一旦开始接受资源,工作就开始运行,当当前分配不能满足工作的资源要求,将在运行进程中获取很多资源,用函数fexcute(j,Tj allocate,Uj)来计算j在m(m≥1)分配方式下的j的运行时间并计算j的延迟,如下式(5);
步骤7,判断是否到达训练的时间片,当到达训练的时间片则进入步骤8,当未到达训练的时间片,则转到步骤9;
步骤8,使用经验回放内存中的数据对模型进行训练;
使用经验回放内存中的经验对代理Agent模块进行训练,待作业运行结束时,对每次获得的总运行时间做平均处理,获得每次作业的平均总等待时间,使用数据就能够对模型的优化性能做出评估,代理从经验回放内存中随机的进行抽样,并将抽样获取的样本输入DQN中进行训练;训练首先根据集群状态和集群配置项的建模,状态st=(Jt wait,Jt run,Ot wait,Ut);其中Jt wait为等待工作的集合,Jt run为运行工作的集合,Ut为可用资源,Ot为先前队列和目前等待工作的约束;经验的建模为e=(St,Rt,At,non-terminal),St为当前的集群状态,Rt为上一步的回报,At为此步骤的决策结果,non-terminal代表当前集群中的作业是否全部执行完毕;
强化学习代理训练:
Controller模块从D中随机采样,对模型进行训练;Controller模块是对集群中的YARN调度器进行配置,如改变capacity调度器中的capacity参数和fair调度器中的weight参数;Controller模块选用的强化学习算法是Rainbow算法,Rainbow算法通过将DDQN,Prioritized DDQN,Dueling DDQN,A3C(asynchronous advantage actor-critic),Distributional DQN,Noisy DQN的DQN算法相结合显著提高了训练的效率和最终效果,DDQN通过在当前Q网络中先找出最大Q值对应的动作,解决了Q-learning的高估偏差问题,优先化经验回放通过更频繁地回放值得学习的转换来提高数据效率,竞争网络架构通过分别表示状态值和操作优势,去除多余的自由度以提高算法稳定性,A3C从多步bootstrap目标中学习,将改变“偏差—方差”的平衡并将新观察到的奖励更快地传播到早期的访问状态;分布式Q-learning学习了一种折扣回报的分类分布而不是对平均值进行评估;噪声DQN则使用随机网络层进行探索;
Agent模块使用了Rainbow模型下的Integrated Agent,融合了DQN、Dueling DQN、Distributed RL、Noisy Nets、Multi-step learning这几项改进模型,Agent模块下具有两个结构相同,职责不同的改进DQN模型和一个用于生成噪声的Noisy Linear模型,Agent模块具有以下4点功能:
1、根据Env模块提供的张量状态的集群状态提供时间片的决策;
2、提供学习接口,学习接口能够使用经验回放内存中的经验训练Rainbow模型的参数;在学习过程中,系统将会按照经验的优先级从经验回放内存中采样,之后将采样获得样本输入至Agent模块的online-net和target-net中,使用Rainbow模型中的算法对online-net进行更新操作;
3、提供更新target-net的接口,接口能够在系统需要更新target-net模型参数的时间片对其进行更新;
4、提供重设online-net中线性层的神经网络节点的噪音的权重接口;
步骤9,判断是否到达更新Target Net的时间片,当到达更新Target Net的时间片,则进入步骤10,当未到达更新Target Net的时间片,则进入步骤11;
步骤10,使用Online Net的参数更新Target Net:
Agent模块是深度强化学习的代理,包含有两个参数相同的DQN模型,一个称之为Online Net,另一个为Target Net,其中Online Net为每次被训练的模型,仅在多次训练后由Online Net传值来进行更新;在更新Target Net时,由于Online Net与Target Net结构相同,参数相同,只需将当前训练得到的Online Net的参数直接赋值给Target Net即能完成更新;
步骤11,判断集群是否完成了当前的所有任务即一次执行,是则进入步骤10,否则返回步骤4;
当集群中的任务已经全部执行完成且不存在未加入集群中的任务,则判定集群完成了当前的所以任务,一次执行结束;否则判断集群还未完成执行,继续本次循环;
步骤12,判断迭代次数是否足够,当迭代次数足够,则停止程序,当迭代次数不足够,则返回步骤2。
2.根据权利要求1所述的一种面向短时多变大数据作业集群调度自适应性配置方法,其特征在于,所述步骤2包括以下步骤:
步骤2.1,样本生成器生成样本:
样本生成器根据业务规则,调度器配置和集群工作负载日志信息生成模拟真实环境中的样本,样本生成器中的业务规则包括等待任务的资源分配规则、任务执行时间估计规则、事务动态规则和约束检查规则;
步骤2.2,将样本存入经验回放内存:
经验回放内存中存放训练样本,样本的来源有两处:一是设计了一个历史日志驱动的样本生成器;二是对集群的真实状态进行采样;样本生成器的历史日志选取的是谷歌和阿里的开源日志信息,根据业务规则和调度器配置参数生成用于神经网络训练的模拟真实环境的样本,从样本生成器中产生的样本用于Controller模块的预训练;业务规则包括等待任务的资源分配规则、任务执行时间估计规则、事务动态规则和约束检查规则;
经验回放内存提供存储经验,依照存储经验的优先级进行采样,更新存储经验的优先级,在预训练和正式运行以及评估阶段,经验回放内存都会被用到,在每个时间片内系统从Env模块和Agent获取或计算出一个经验,并将这个经验存入经验回放内存中,采样和更新经验的优先级将会在训练Agent模块时用到;
步骤2.3,对样本进行预训练:
初始化PreTrainEnv模块,使用数据集依次运行,在每个时间片内,使用PreTrainEnv模块提供的接口获取当前集群的状态并将状态与当前训练使用的决策、当前时间片决策的执行回报一起输入经验回放内存中;预训练期间Agent模块根据设定时间间隔记录下当时的集群状态并存入经验回放内存中;
步骤2.3.1,集群状态建模:
步骤2.3.1.1,状态:把状态st分为四个部分,如以下公式(1):
st=(Jt wait,Jt run,Ot wait,Ut).......(1),
其中:Jt wait为等待工作的集合,Jt run为运行工作的集合,Ut为可用资源,Ot为先前队列和目前等待工作的约束;通过分析谷歌和阿里巴巴真实的集群日志,定义状态成分的特征;
步骤2.3.1.2,工作(J):工作j∈J由三部分组成(tsubmit,prio,task):
(1)tsubmit是作业j的提交时间;
(2)prio为作业j的优先级,不同应用类型的工作有不同的优先级;
(3)task是作业j的任务集,每一个task都是由执行次序和CPU和内存资源的用法组成;
步骤2.3.1.3,资源(U):代指能供给集群中最好效果工作的资源,在主流云平台谷歌和阿里巴巴中,Linux容器被用来隔离资源和统计使用资源,每一个容器u∈U有两部分(CPU,mem):CPU和mem分别指节点中授权的中央处理器和内存工作空间;
步骤2.3.1.4,调度约束(O),调度约束(O)由两部分组成(Oqueue,Ojob):oi queue∈Oqueue(1≤i≤k)表示队列中第k个约束,即每个队列资源的最大数量、最小数量;oi job∈Ojob表示工作j的约束,工作位置即j任务运行的设备。
3.根据权利要求1所述的一种面向短时多变大数据作业集群调度自适应性配置方法,其特征在于,所述步骤4包括以下步骤:
步骤4.1,获取集群状态:
程序通过YARN提供的RESTFul API接口,在每个时间片内动态的获取集群状态,包括集群自身的可用资源、在集群中运行的作业以及队列的调度约束三种数据并将结构化为一个程序可读的状态结构;
步骤4.1.1,集群状态和集群配置项的建模:
模型的状态部分包括集群中m个等待作业,每个作业被描述为提交时间,优先级和任务集合;n个可用资源,每个资源被表示为其平台类型,和CPU和内存量;以及针对k个优先级队列和m个作业的调度约束;
步骤4.2,转换为集群状态的张量:
通过转换函数,将集群状态转换为一个200*200大小的张量,这个张量的组成结构为:1-75行每一行为一个在集群中运行的作业的状态信息;76-150行每一行为一个在集群中等待的作业的状态信息;151-199行为集群的可用资源情况;200行为队列的调度约束情况。
4.根据权利要求1所述的一种面向短时多变大数据作业集群调度自适应性配置方法,其特征在于,所述步骤5包括以下步骤:
步骤5.1,动作建模;
动作:在给定的k个之前队列约束中,at表示一个Agent设置的可能的配置,at如如下式(2);
上式中,队列配置ci queue到ck queue决定了k个队列资源分配,ci policy为队列i的调度方案,用了有限个离散的配置,能在集群队列中处理复杂资源的分配;
步骤5.2,动态过渡;
在MDP中,动态过渡R(st+1|st,at)反应了集群中多样的时间动态,在真实的调度场景中由三个因素决定:接受资源分配的工作Jt allocate,在t时间完成的动作Jt complete,和在t+1时间新接受的工作Jt+1 arrive,记录被调度配置影响的Jt allocate和Jt complete,调度配置有动作at建立,由四个状态参数决定的,四个状态参数分别表示等待的作业,运行的作业,t+1时刻的资源,t+1时刻的约束条件;
MDP(Markov Decision Process):指在马尔可夫过程的假设前提下,通过分析随机变量的现时变化情况来预测这些变量未来变化情况或作出决策的一种决策方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910837799.2A CN110737529B (zh) | 2019-09-05 | 2019-09-05 | 一种面向短时多变大数据作业集群调度自适应性配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910837799.2A CN110737529B (zh) | 2019-09-05 | 2019-09-05 | 一种面向短时多变大数据作业集群调度自适应性配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737529A true CN110737529A (zh) | 2020-01-31 |
CN110737529B CN110737529B (zh) | 2022-02-08 |
Family
ID=69268076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910837799.2A Active CN110737529B (zh) | 2019-09-05 | 2019-09-05 | 一种面向短时多变大数据作业集群调度自适应性配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737529B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111445291A (zh) * | 2020-04-01 | 2020-07-24 | 电子科技大学 | 一种为社交网络影响力最大化问题提供动态决策的方法 |
CN111694656A (zh) * | 2020-04-22 | 2020-09-22 | 北京大学 | 基于多智能体深度强化学习的集群资源调度方法及系统 |
CN111831415A (zh) * | 2020-07-10 | 2020-10-27 | 广东石油化工学院 | 一种多队列多集群的任务调度方法及系统 |
CN111930485A (zh) * | 2020-07-28 | 2020-11-13 | 中国电子科技集团公司第二十八研究所 | 一种基于性能表现的作业调度方法 |
CN111966484A (zh) * | 2020-06-23 | 2020-11-20 | 北京大学 | 一种基于深度强化学习的集群资源管理和任务调度方法及系统 |
CN112034887A (zh) * | 2020-09-10 | 2020-12-04 | 南京大学 | 无人机躲避柱状障碍物到达目标点的最优路径训练方法 |
CN113312172A (zh) * | 2021-02-23 | 2021-08-27 | 中国人民解放军国防科技大学 | 基于适变网络的多无人机集群动态任务调度模型 |
CN113391888A (zh) * | 2020-03-12 | 2021-09-14 | 北京京东振世信息技术有限公司 | 业务资源的调度方法、装置、设备及存储介质 |
CN113448705A (zh) * | 2021-06-25 | 2021-09-28 | 皖西学院 | 一种不平衡作业调度算法 |
WO2022006830A1 (zh) * | 2020-07-10 | 2022-01-13 | 广东石油化工学院 | 一种多队列多集群的任务调度方法及系统 |
CN114138416A (zh) * | 2021-12-03 | 2022-03-04 | 福州大学 | 面向负载-时间窗口的基于dqn云软件资源自适应分配方法 |
CN114281528A (zh) * | 2021-12-10 | 2022-04-05 | 重庆邮电大学 | 一种基于深度强化学习和异构Spark集群的节能调度方法及系统 |
CN114282645A (zh) * | 2021-11-24 | 2022-04-05 | 杭州电子科技大学 | 一种基于dqn的时空众包任务分配方法 |
WO2022099596A1 (zh) * | 2020-11-13 | 2022-05-19 | 浙江大学 | 一种面向工业个性化定制生产的自适应学习智能调度统一计算框架及系统 |
CN114610474A (zh) * | 2022-05-12 | 2022-06-10 | 之江实验室 | 一种异构超算环境下多策略的作业调度方法及系统 |
CN115237581A (zh) * | 2022-09-21 | 2022-10-25 | 之江实验室 | 一种面向异构算力的多策略智能调度方法和装置 |
CN115242786A (zh) * | 2022-05-07 | 2022-10-25 | 东云睿连(武汉)计算技术有限公司 | 基于容器集群的多模式大数据作业调度系统及方法 |
CN115269203A (zh) * | 2022-09-26 | 2022-11-01 | 环球数科集团有限公司 | 一种基于MapReduce模型的分布式并行计算编程系统 |
TWI805257B (zh) * | 2022-03-24 | 2023-06-11 | 先智雲端數據股份有限公司 | 根據強化學習的預測來優化資源配置的方法 |
CN116842994A (zh) * | 2023-07-03 | 2023-10-03 | 上海交通大学 | 多神经网络执行效率动态优化方法及系统 |
CN117311992A (zh) * | 2023-11-28 | 2023-12-29 | 南京亚信软件有限公司 | 基于既定资源预测并自动动态平衡集群内部资源的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647671A (zh) * | 2013-12-20 | 2014-03-19 | 北京理工大学 | 一种基于Gur Game的群智感知网络管理方法及其系统 |
CN105260230A (zh) * | 2015-10-30 | 2016-01-20 | 广东石油化工学院 | 基于分段服务等级协议的数据中心虚拟机资源调度方法 |
US20170140270A1 (en) * | 2015-11-12 | 2017-05-18 | Google Inc. | Asynchronous deep reinforcement learning |
CN109376012A (zh) * | 2018-10-10 | 2019-02-22 | 电子科技大学 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
-
2019
- 2019-09-05 CN CN201910837799.2A patent/CN110737529B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647671A (zh) * | 2013-12-20 | 2014-03-19 | 北京理工大学 | 一种基于Gur Game的群智感知网络管理方法及其系统 |
CN105260230A (zh) * | 2015-10-30 | 2016-01-20 | 广东石油化工学院 | 基于分段服务等级协议的数据中心虚拟机资源调度方法 |
US20170140270A1 (en) * | 2015-11-12 | 2017-05-18 | Google Inc. | Asynchronous deep reinforcement learning |
CN109376012A (zh) * | 2018-10-10 | 2019-02-22 | 电子科技大学 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
Non-Patent Citations (2)
Title |
---|
RUI HAN,CHI HAROLD LIU等: "Workload-Adaptive Configuration Tuning for", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
ZHIYUAN XU,JIAN TANG等: "Experience-driven Networking: A Deep Reinforcement", 《REINFORCEMENT LEARNING FOR WORKFLOW OPTIMIZATION USING PROVENANCE-BASED SIMULATION》 * |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391888A (zh) * | 2020-03-12 | 2021-09-14 | 北京京东振世信息技术有限公司 | 业务资源的调度方法、装置、设备及存储介质 |
CN113391888B (zh) * | 2020-03-12 | 2024-05-17 | 北京京东振世信息技术有限公司 | 业务资源的调度方法、装置、设备及存储介质 |
CN111445291B (zh) * | 2020-04-01 | 2022-05-13 | 电子科技大学 | 一种为社交网络影响力最大化问题提供动态决策的方法 |
CN111445291A (zh) * | 2020-04-01 | 2020-07-24 | 电子科技大学 | 一种为社交网络影响力最大化问题提供动态决策的方法 |
CN111694656A (zh) * | 2020-04-22 | 2020-09-22 | 北京大学 | 基于多智能体深度强化学习的集群资源调度方法及系统 |
CN111966484A (zh) * | 2020-06-23 | 2020-11-20 | 北京大学 | 一种基于深度强化学习的集群资源管理和任务调度方法及系统 |
CN111831415A (zh) * | 2020-07-10 | 2020-10-27 | 广东石油化工学院 | 一种多队列多集群的任务调度方法及系统 |
CN111831415B (zh) * | 2020-07-10 | 2024-01-26 | 广东石油化工学院 | 一种多队列多集群的任务调度方法及系统 |
WO2022006830A1 (zh) * | 2020-07-10 | 2022-01-13 | 广东石油化工学院 | 一种多队列多集群的任务调度方法及系统 |
US11954526B2 (en) | 2020-07-10 | 2024-04-09 | Guangdong University Of Petrochemical Technology | Multi-queue multi-cluster task scheduling method and system |
CN111930485A (zh) * | 2020-07-28 | 2020-11-13 | 中国电子科技集团公司第二十八研究所 | 一种基于性能表现的作业调度方法 |
CN111930485B (zh) * | 2020-07-28 | 2022-09-13 | 中国电子科技集团公司第二十八研究所 | 一种基于性能表现的作业调度方法 |
CN112034887A (zh) * | 2020-09-10 | 2020-12-04 | 南京大学 | 无人机躲避柱状障碍物到达目标点的最优路径训练方法 |
WO2022099596A1 (zh) * | 2020-11-13 | 2022-05-19 | 浙江大学 | 一种面向工业个性化定制生产的自适应学习智能调度统一计算框架及系统 |
CN113312172A (zh) * | 2021-02-23 | 2021-08-27 | 中国人民解放军国防科技大学 | 基于适变网络的多无人机集群动态任务调度模型 |
CN113312172B (zh) * | 2021-02-23 | 2023-08-22 | 中国人民解放军国防科技大学 | 基于适变网络的多无人机集群动态任务调度模型 |
CN113448705A (zh) * | 2021-06-25 | 2021-09-28 | 皖西学院 | 一种不平衡作业调度算法 |
CN113448705B (zh) * | 2021-06-25 | 2023-03-28 | 皖西学院 | 一种不平衡作业调度算法 |
CN114282645A (zh) * | 2021-11-24 | 2022-04-05 | 杭州电子科技大学 | 一种基于dqn的时空众包任务分配方法 |
CN114282645B (zh) * | 2021-11-24 | 2023-04-21 | 杭州电子科技大学 | 一种基于dqn的时空众包任务分配方法 |
CN114138416A (zh) * | 2021-12-03 | 2022-03-04 | 福州大学 | 面向负载-时间窗口的基于dqn云软件资源自适应分配方法 |
CN114281528A (zh) * | 2021-12-10 | 2022-04-05 | 重庆邮电大学 | 一种基于深度强化学习和异构Spark集群的节能调度方法及系统 |
TWI805257B (zh) * | 2022-03-24 | 2023-06-11 | 先智雲端數據股份有限公司 | 根據強化學習的預測來優化資源配置的方法 |
CN115242786A (zh) * | 2022-05-07 | 2022-10-25 | 东云睿连(武汉)计算技术有限公司 | 基于容器集群的多模式大数据作业调度系统及方法 |
CN115242786B (zh) * | 2022-05-07 | 2024-01-12 | 东云睿连(武汉)计算技术有限公司 | 一种基于容器集群的多模式大数据作业调度系统及方法 |
CN114610474B (zh) * | 2022-05-12 | 2022-09-02 | 之江实验室 | 一种异构超算环境下多策略的作业调度方法及系统 |
CN114610474A (zh) * | 2022-05-12 | 2022-06-10 | 之江实验室 | 一种异构超算环境下多策略的作业调度方法及系统 |
CN115237581B (zh) * | 2022-09-21 | 2022-12-27 | 之江实验室 | 一种面向异构算力的多策略智能调度方法和装置 |
CN115237581A (zh) * | 2022-09-21 | 2022-10-25 | 之江实验室 | 一种面向异构算力的多策略智能调度方法和装置 |
CN115269203A (zh) * | 2022-09-26 | 2022-11-01 | 环球数科集团有限公司 | 一种基于MapReduce模型的分布式并行计算编程系统 |
CN116842994A (zh) * | 2023-07-03 | 2023-10-03 | 上海交通大学 | 多神经网络执行效率动态优化方法及系统 |
CN116842994B (zh) * | 2023-07-03 | 2024-03-01 | 上海交通大学 | 多神经网络执行效率动态优化方法及系统 |
CN117311992A (zh) * | 2023-11-28 | 2023-12-29 | 南京亚信软件有限公司 | 基于既定资源预测并自动动态平衡集群内部资源的方法 |
CN117311992B (zh) * | 2023-11-28 | 2024-02-13 | 南京亚信软件有限公司 | 基于既定资源预测并自动动态平衡集群内部资源的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110737529B (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737529B (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
US11989647B2 (en) | Self-learning scheduler for application orchestration on shared compute cluster | |
Tong et al. | QL-HEFT: a novel machine learning scheduling scheme base on cloud computing environment | |
Ben Alla et al. | A novel task scheduling approach based on dynamic queues and hybrid meta-heuristic algorithms for cloud computing environment | |
Chen et al. | A set-based discrete PSO for cloud workflow scheduling with user-defined QoS constraints | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
Zuo et al. | A multi-objective hybrid cloud resource scheduling method based on deadline and cost constraints | |
Zhu et al. | A cost-effective scheduling algorithm for scientific workflows in clouds | |
Alaei et al. | RePro-Active: a reactive–proactive scheduling method based on simulation in cloud computing | |
Bi et al. | SLA-based optimisation of virtualised resource for multi-tier web applications in cloud data centres | |
Chakravarthi et al. | TOPSIS inspired budget and deadline aware multi-workflow scheduling for cloud computing | |
Tong et al. | DDQN-TS: A novel bi-objective intelligent scheduling algorithm in the cloud environment | |
CN111722910A (zh) | 一种云作业调度及资源配置的方法 | |
Thonglek et al. | Improving resource utilization in data centers using an LSTM-based prediction model | |
CN109710372A (zh) | 一种基于猫头鹰搜索算法的计算密集型云工作流调度方法 | |
Lu et al. | A review of cost and makespan-aware workflow scheduling in clouds | |
Ye et al. | SHWS: Stochastic hybrid workflows dynamic scheduling in cloud container services | |
Mohammadzadeh et al. | Energy-aware workflow scheduling in fog computing using a hybrid chaotic algorithm | |
Raman et al. | Computation of workflow scheduling using backpropagation neural network in cloud computing: a virtual machine placement approach | |
Venkataswamy et al. | Rare: Renewable energy aware resource management in datacenters | |
Ghazali et al. | A classification of Hadoop job schedulers based on performance optimization approaches | |
Davami et al. | Distributed scheduling method for multiple workflows with parallelism prediction and DAG prioritizing for time constrained cloud applications | |
CN113641445B (zh) | 基于深度确定性策略的云资源自适应配置方法及系统 | |
Chalack et al. | Resource allocation in cloud environment using approaches based particle swarm optimization | |
Shojafar et al. | ALATO: an efficient intelligent algorithm for time optimization in an economic grid based on adaptive stochastic Petri net |
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 |