CN112052081B - 一种任务调度方法、装置及电子设备 - Google Patents
一种任务调度方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112052081B CN112052081B CN202010811680.0A CN202010811680A CN112052081B CN 112052081 B CN112052081 B CN 112052081B CN 202010811680 A CN202010811680 A CN 202010811680A CN 112052081 B CN112052081 B CN 112052081B
- Authority
- CN
- China
- Prior art keywords
- task
- actuator
- data
- cpu
- scheduling
- 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/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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种任务调度方法、装置及电子设备。该方法包括:获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;根据所述任务数据计算所述当前任务在各个执行器的运行时长;根据所述运行时长,将所述当前任务调度到匹配的执行器。本发明实施例提供的任务调度方法、装置及电子设备能够根据任务运行时长直接反映出任务执行状况,从而更准确的完成任务调度,提高了任务调度效率,提升了微服务应用的性能。
Description
技术领域
本发明属于信息技术处理领域,更具体地涉及一种任务调度方法、装置及电子设备。
背景技术
随着信息化建设的不断发展,政府和企业的信息化应用系统架构逐步由传统的单体架构向微服务架构转变。微服务架构由一系列的微服务共同构建整个系统,每个微服务都独立运行于自己的进程里,每个服务为独立业务开发,只关注特定的某个功能,比如用户管理、资源管理等。
当使用微服务架构的大型应用运行时,其包含多个微服务,每个微服务在工作时需要创建大量任务,同时每个微服务还会运行多个实例来执行任务。相关技术通过各个执行实例将任务统一注册到数据库中,以“抢占式”获取数据库锁并由抢占成功节点负责运行任务;相关技术还针对Quartz等任务框架加入轮询、一致性哈希等调度算法来进行负载均衡;相关技术还通过算法预测节点负载,根据负载优化调度任务。
发明人在实现本发明实施例的过程中,发现相关技术至少存在以下技术问题:“抢占式”的方式会导致节点负载悬殊,虽然通过调度算法进行了优化,但是通过节点负载并不能准确的反映任务在该节点的执行情况,从而不能准确的进行任务调度。
发明内容
本发明提供了一种任务调度方法、装置及电子设备,以解决现有技术在进行任务调度时存在准确性低的技术问题。
实现上述目的,按照本发明的一个方面,提供了一种任务调度方法,应用于电子设备,所述方法包括:
获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;
根据所述任务数据计算所述当前任务在各个执行器的运行时长;
根据所述运行时长,将所述当前任务调度到匹配的执行器。
可选地,所述根据所述任务数据计算所述当前任务在各个执行器的运行时长的步骤由预设的算法模型执行,所述方法还包括:
采集样本数据,所述样本数据包括任务开始时间、任务结束时间、任务开始时所述已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数;
基于式子,通过神经网络模型对所述样本数据进行训练和测试,以获得所述预设的算法模型;
其中,所述式子为:
可选地,所述基于式子,通过神经网络模型对所述样本数据进行训练和测试,以获得所述预设的算法模型,包括:
根据预设比例将所述样本数据分为训练集和测试集,并进行数据预处理;
将所述训练集和所述测试集分别进行标准化处理,以得到标准处理后的第一训练集和第一测试集;
将所述第一训练集分为无标签数据集合和有标签数据集合;
利用门控循环单元网络对所述无标签数据集合进行半监督深度预训练,以获得初始参数集合;
根据所述初始参数集合,利用门控循环单元网络对所述有标签数据集合进行有监督训练,获得所述式子中的系数α、β、γ、θ、δ,以确定所述式子;
根据所述第一测试集验证所述确定的式子,以获得所述预设的算法模型。
可选地,所述利用门控循环单元网络对所述无标签数据集合进行半监督深度预训练,以获得初始参数集合,包括:
步骤a:将第j层的门控循环单元网络作为自编码器的编码器,以及接入的一与所述门控循环单元网络结构和均参数相同的门控循环单元网络作为所述自编码器的解码器,并根据所述自编码器对所述无标签数据集合进行训练,以最小原始输入重建误差为目标对所述无标签数据集进行学习,以获得参数结果Pj;
步骤b:将所述第j层对应的所述自编码器的输出作为第j+1层门控循环单元网络的输入,固定所述第j层的所述参数结果Pj,同时对所述第j+1层执行所述步骤a;
步骤c:判断所述门控循环单元网络的n层结构是否全部完成初始化;
步骤d:若否,执行所述步骤b,直至所述门控循环单元网络的n层结构全部完成初始化,以获得所述初始参数集合P={P1,P2,P3……Pn}。
可选地,所述根据所述第一测试集验证所述确定的式子,以获得所述预设的算法模型,包括:
根据所述第一测试集和所述确定的式子计算ROC曲线参数;
当所述ROC曲线参数满足预设条件时,确定所述式子的系数匹配,将包含所述系数的式子确定为所述预设的算法模型。
可选地,所述方法还包括:
获取任务执行过程中监控到的所述任务数据,根据监控到的所述任务数据周期性的优化所述预设的算法模型。
可选地,所述根据所述运行时长,将所述当前任务调度到匹配的执行器具体包括:
获取所述运行时长最短的执行器,并将所述当前任务调度到所述运行时长最短的所述执行器。
可选地,在执行所述获取当前任务对应的任务数据的步骤之前,所述方法还包括:
创建任务中心微服务,其中,所述任务中心微服务提供创建、修改、删除、暂停、开始以及选择超时策略的任务接口;
所述采集样本数据包括:
通过预设调度算法调度任务进行预实验,并通过所述任务中心微服务监控任务的执行情况,记录所述任务开始时间、所述任务结束时间、所述任务开始时已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数。
按照本发明的另一方面,提供了一种任务调度装置,应用于电子设备,所述装置包括:
数据获取模块,用于获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;
时长计算模块,用于根据所述任务数据计算所述当前任务在各个执行器的运行时长;
任务调度模块,用于根据所述运行时长,将所述当前任务调度到匹配的执行器。
按照本发明的又一方面,提供了一种电子设备,所述电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的任务调度方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明实施例提供了一种任务调度方法、装置及电子设备,其通过获取当前任务对应的任务数据,根据所述任务数据计算所述当前任务在各个执行器的运行时长,最后根据所述运行时长,将所述当前任务调度至匹配的执行器。其中,任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长。由此,本发明实施例提供的任务调度方法、装置及电子设备能够根据任务运行时长直接反映出任务执行状况,从而更准确的完成任务调度,提高了任务调度效率,提升了微服务应用的性能。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种分布式存储系统的结构示意图;
图2是本发明实施例提供的所述电子设备10的硬件结构示意图;
图3是本发明实施例提供的一种任务调度方法的流程图;
图4是本发明实施例提供的任务调度方法中获取所述预设的算法模型的方法的流程图;
图5是本发明另一实施例提供的一种任务调度方法的流程图;
图6是本发明又一实施例提供的一种任务调度方法的流程图;
图7是本发明实施例提供的一种任务调度装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
请参阅图1,图1是本发明实施例提供的一种分布式存储系统的结构示意图。所述分布式存储系统100包括电子设备10和至少一台应用主机20。所述电子设备10包括任务中心微服务,所述应用主机20上运行有执行器,所述任务中心微服务用于管理所述执行器。
其中,所述任务中心微服务是将任务中心开发为独立的微服务,使用自己独立的数据库,各个微服务将任务注册到任务中心的数据库中,任务中心自动发现任务并触发执行并统一管理这些任务的生命周期,包括任务的暂停、启动、删除等操作,还能监控任务的执行情况,进行超时处理和任务调度。所述执行器具体是代码程序,其用于执行任务,比如登录任务、支付任务等。所述任务中心微服务提供创建、修改、删除、暂停、开始以及选择超时策略等的任务接口,根据所述任务接口管理所述执行器。例如,所述任务中心微服务对所述执行器执行任务调度方法,以将当前任务调度到最匹配的执行器,该方法包括:获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;根据所述任务数据计算所述当前任务在各个执行器的运行时长;根据所述运行时长,将所述当前任务调度到匹配的执行器。
在本实施例中,所述电子设备10和所述应用主机20具体可以是服务器。所述电子设备10可以由一台服务器,或服务器集群构成。所述服务器是提供计算服务的设备,其构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
本实施例提供的分布式存储系统,通过构建一个任务中心来统一管理、调度和监控各个微服务创建的任务,并且将所述任务中心开发为独立的微服务,而不是在每个微服务中耦合,使用自己独立的数据库,各个微服务将任务注册到任务中心的数据库中,根据数据库中保存的数据,所述任务中心微服务基于任务在执行器的运行时长这一指标来指导任务调度,从而能够更准确的完成任务调度,提高了任务调度效率,提升了微服务应用的性能。
请参阅图2,图2是本发明实施例提供的所述电子设备10的硬件结构示意图。所述电子设备10包括一个或多个处理器11,以及存储器12,图2中以一个处理器11为例。处理器11和存储器12可以通过总线或其他方式连接,图2中以通过总线连接为例。
所述电子设备10上运行有任务中心微服务,所述任务中心微服务对应的代码存储于所述存储器12中,所述处理器11通过调用所述代码从而执行所述任务中心微服务对应的功能。
存储器12作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的任务调度方法对应的程序指令/模块(例如,图7中的各个模块)。处理器11通过运行存储在存储器12中的非易失性软件程序、非易失性计算机可执行程序以及模块,从而执行所述电子设备10的各种功能应用以及数据处理,即实现下述方法实施例任务调度方法。
存储器12可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据任务调度装置的使用所创建的数据等。此外,存储器12可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器12可选包括相对于处理器11远程设置的存储器,这些远程设置的存储器可以通过网络连接至任务调度装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或多个模块存储在所述存储器12中,当被所述一个或多个处理器11执行时,执行下述方法实施例中的任务调度方法,例如,图3、图4、图5以及图6所示的方法。
上述产品可执行本发明实施例所提供的任务调度方法,具备执行任务调度方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的任务调度方法。
本发明实施例的电子设备10可以以多种形式存在,包括但不限于服务器等其他具有数据交互功能的电子装置。
请参阅图3,图3是本发明实施例提供的一种任务调度方法的流程图。所述方法可以由上述电子设备10执行,所述方法包括:
S102、获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;
S103、根据所述任务数据计算所述当前任务在各个执行器的运行时长;
S104、根据所述运行时长,将所述当前任务调度到匹配的执行器。
其中,所述执行器包括多个,执行本方法的电子设备可以监控获得所述任务数据。获得所述任务数据的方式包括:在任务执行时根据轮询等算法进行任务调度,同时对任务调度进行监控,从而监控获得所述任务数据。在获得所述任务数据后,可以进一步对任务调度进行优化,即根据获得的任务数据计算所述运行时长,再基于所述运行时长优化任务的调度。
所述已占用的执行器CPU的总线程数是全部执行器中已占用的CPU总线程数。所述执行器CPU的空闲线程数也是全部执行器中空闲的CPU线程数。可以获取执行器的总线程数和空闲线程数,再将所述总线程数与所述空闲线程数进行求差运算,从而得到所述已占用的执行器CPU的总线程数。
所述当前任务在每一执行器运行的平均时长是当前任务在各执行器执行时所需要花费的平均时间。可以通过多次重复试验分别获得所述当前任务在每一执行器运行的时长,然后对所述运行的时长求均值,从而得到所述当前任务在每一执行器的平均时长。其中,所述当前任务在每一执行器运行的时长的获得包括:记录所述当前任务的开始时间和结束时间,再进行求差运算,以获得所述运行的时长。
所述每一执行器分别执行其对应的任务的平均时长,其中,所述每一执行器对应的任务指的是所述执行器历史执行的任务,比如任务i,i=0,1,2,3,…,n。计算所述历史执行的任务的平均时长的具体方式可以参考上述计算所述当前任务在每一执行器运行的平均时长的过程。
其中,所述当前任务在各个执行器的运行时长是当前任务在各执行器执行时所需要花费的时间,该时间是一预测的时间。具体地,可以通过预设的算法模型计算所述当前任务在各个执行器的运行时长。因此,所述方法还包括:获取所述预设的算法模型。
在本实施例中,任务调度是利用任务中心监控采集到的执行器总线程数,空闲线程数,执行时间等数据训练自研的预设算法模型,利用该预设算法模型预测当前任务在各个执行器的运行时长,根据所述运行时长,进一步优化任务调度。
其中,所述获取所述预设的算法模型包括:
采集样本数据,所述样本数据包括任务开始时间、任务结束时间、任务开始时所述已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数;
基于式子,通过神经网络模型对所述样本数据进行训练和测试,以获得所述预设的算法模型;
其中,所述式子为:
其中,可以使用GRU(Gated Recurrent Unit,门控循环单元网络)训练所述预设的算法模型,具体地,请参阅图4,所述基于式子,通过神经网络模型对所述样本数据进行训练和测试,以获得所述预设的算法模型,包括:
S201、根据预设比例将所述样本数据分为训练集和测试集,并进行数据预处理;
其中,数据预处理是对所述训练集和所述测试集的数据进行审核、筛选、排序等必要的处理,具体可以包括数据清洗、数据集成、数据归约、数据变换等操作。
S202、将所述训练集和所述测试集分别进行标准化处理,以得到标准处理后的第一训练集和第一测试集;
其中,所述标准化处理具体可以是Min-Max标准化处理,Min-Max标准化处理方法是对原始数据进行线性变换。比如,假设MinA和MaxA分别为属性A的最小值和最大值,将属性A的一个原始值x通过Min-Max标准化处理,映射成在区间[0,1]中的值x、,其对应的公式可以是:新数据x、=(原数据x-最小值MinA)/(最大值MaxA-最小值MinA)。
需要说明的是,标准化处理还可以采用其他方式,而不仅限于上述Min-Max标准化处理。
S203、将所述第一训练集分为无标签数据集合和有标签数据集合;
其中,所述无标签数据集合指的是该集合中的数据未加上预设的标签,需要机器去识别数据对应的结果。所述有标签数据集合指的是该集合中的数据加上了预设的标签,比如一张图片中有一个苹果,需要人为的标注出这是苹果,该标注为苹果即是给该图片加上的标签。
S204、利用门控循环单元网络对所述无标签数据集合进行半监督深度预训练,以获得初始参数集合;
其中,所述利用门控循环单元网络对所述无标签数据集合进行半监督深度预训练,以获得初始参数集合,包括:
步骤a:将第j层的门控循环单元网络作为自编码器的编码器,以及接入的一与所述门控循环单元网络结构和均参数相同的门控循环单元网络作为所述自编码器的解码器,并根据所述自编码器对所述无标签数据集合进行训练,以最小原始输入重建误差为目标对所述无标签数据集进行学习,以获得参数结果Pj;
步骤b:将所述第j层对应的所述自编码器的输出作为第j+1层门控循环单元网络的输入,固定所述第j层的所述参数结果Pj,同时对所述第j+1层执行所述步骤a;
步骤c:判断所述门控循环单元网络的n层结构是否全部完成初始化;
步骤d:若否,执行所述步骤b,直至所述门控循环单元网络的n层结构全部完成初始化,以获得所述初始参数集合P={P1,P2,P3……Pn}。
例如,将第1层的GRU单元作为GRU自编码器(AutoEncoder)的编码器部分,接入一个与其结构和均参数相同的GRU解码器,即该解码器的隐藏节点数与所述编码器的隐藏节点数相同。将该GRU自编码器以最小化原始输入重建误差为目标对无标签数据集合A进行学习。该学习过程的迭代次数为T1,批处理样本数为K1。然后保存GRU自编码器参数P1。将第1层自编码器的输出作为第2层GRU单元的输入,固定第1层GRU自编码器参数P1,然后对第2层GRU进行学习。第2层GRU编码器、解码器的隐藏节点为H2,该学习过程的迭代次数同样为T1,批处理样本数为K1,并保存GRU自编码器参数P2,以此类推,直至GRU的n层结构全部初始化完成,最后获得的初始参数集合为P={P1,P2,P3……Pn}。
其中,所述GRU自编码器参数Pi(i=1,2,3,……n)指的是GRU模型的参数。通过上述步骤得到P初始化深度GRU模型的n层GRU单元,各层GRU的隐藏节点数分别为H1,H2,H3,……,Hn。
上述过程是预训练获得的参数初始化结果,该半监督训练最后得到的是GRU模型,进一步地,利用该GRU模型对有标签数据集合进行二次训练,经过监督学习微调后获得最终的基于半监督深度GRU模型。具体地,所述方法还包括:
S205、根据所述初始参数集合,利用门控循环单元网络对所述有标签数据集合进行有监督训练,获得所述式子中的系数α、β、γ、θ、δ,以确定所述式子;
其中,根据所述初始参数集合,利用门控循环单元网络对所述有标签数据集合进行有监督训练,获得所述式子中的系数的过程具体包括:将所述有标签数据集合作为训练集,将训练集中的已知向量作为所述GRU模型的输入向量,根据得到的结果采用正向反向迭代传递,最后得到GRU模型中所需要的参数,所述参数即所述式子中的系数α、β、γ、θ、δ。
S206、根据所述第一测试集验证所述确定的式子,以获得所述预设的算法模型。
其中,所述根据所述第一测试集验证所述确定的式子,以获得所述预设的算法模型,包括:
根据所述第一测试集和所述确定的式子计算ROC(Receiver OperatingCharacteristic,接收器工作特性)曲线参数;
当所述ROC曲线参数满足预设条件时,确定所述式子的系数匹配,将包含所述系数的式子确定为所述预设的算法模型。
其中,可以设定一个阈值,大于这个阈值的实例被划分为正实例,小于这个值的实例则被划分为负实例,运行模型,得出结果,计算FPR(False Positive Recall,误报率)和TPR(True Positive Recall,真实阳性率)值;然后更换阈值,重复上述过程循环操作,就可以得到不同阈值下的(FPR,TPR)对,即能绘制成ROC曲线。其中,所述阈值可以根据模型的运行情况、测试集中的数据量大小等情况进行确定,并可以灵活调整。
AUC(Area Under Curve,曲线下面积)是ROC曲线下的面积值,AUC值能够能量化模型的性能效果,可以根据AUC值确定模型的好坏,通常所述AUC在0.5到1.0区间内。因此,使用AUC值作为所述ROC曲线的评价标准。当所述AUC值满足所述预设条件时,则确定所述式子的系数匹配,将包含所述系统的式子确定为所述预设的算法模型。其中,所述预设条件可以系统设置,也可以用户根据经验自定义。
其中,上述步骤S104、根据所述运行时长,将所述当前任务调度到匹配的执行器,具体包括:获取所述运行时长最短的执行器,并将所述当前任务调度到所述运行时长最短的所述执行器。当然,在实际应用过程中,除了选择运行时长最短的执行器之外,还可以根据其他方式确定执行器。
本发明实施例提供了一种任务调度方法,所述方法通过获取当前任务对应的任务数据,根据所述任务数据计算所述当前任务在各个执行器的运行时长,最后根据所述运行时长,将所述当前任务调度至匹配的执行器。其中,任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长。本发明实施例提供的任务调度方法能够根据任务运行时长直接反映出任务执行状况,从而更准确的完成任务调度,提高了任务调度效率,提升了微服务应用的性能。
请参阅图5,图5是本发明另一实施例提供的一种任务调度方法的流程图。所述方法可以由上述电子设备10执行,所述方法包括:
S101、创建任务中心微服务,其中,所述任务中心微服务提供创建、修改、删除、暂停、开始以及选择超时策略的任务接口;
在本实施例中,通过任务中心来统一管理、调度和监控各个微服务创建的任务,并且将所述任务中心开发成独立的微服务。各个微服务可以将任务注册到所述任务中心微服务的数据库中。
其中,可以使用SpringBoot框架开发任务中心微服务。任务中心提供创建、修改、删除、暂停、开始、选择超时策略等Restful接口,方便其他业务模块调用。然后将任务中心注册到SpringCloud提供的注册中心eureka里,方便其他业务微服务发现任务中心。然后将任务中心的相关配置添加到SpringCloud提供的配置中心config。
在业务微服务中,通过RestTemplate调用任务中心的Restful接口,创建任务并控制任务的生命周期。在创建时,需要指定负责任务业务的类名和任务周期,超时策略等。
任务中心独立使用一个数据库job,其中jobinfo表用于记录任务详情,joblog表用于记录任务执行日志,job_executor表用于记录任务执行器详情,包含所述执行器上的任务记录等数据。
在本实施例中,还可以通过所述任务中心采集样本数据,具体包括:通过预设调度算法调度任务进行预实验,并通过所述任务中心微服务监控任务的执行情况,记录所述任务开始时间、所述任务结束时间、所述任务开始时已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数。
S102、获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;
S103、根据所述任务数据计算所述当前任务在各个执行器的运行时长;
S104、根据所述运行时长,将所述当前任务调度到匹配的执行器。
上述步骤S102至步骤S104具体可以参考上述方法实施例,在此不再赘述。
本发明实施例提供的任务调度方法,通过创建任务中心,并且将任务中心微服务化,从而提供了方便任务接入的能力,使得其他微服务可以很快的集成并快速创建任务,进行准确合理的任务调度。
请参阅图6,图6是本发明又一实施例提供的一种任务调度方法的流程图。所述方法可以由上述电子设备10执行,所述方法包括:
S101、创建任务中心微服务,其中,所述任务中心微服务提供创建、修改、删除、暂停、开始以及选择超时策略的任务接口;
S102、获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;
S103、根据所述任务数据计算所述当前任务在各个执行器的运行时长;
S104、根据所述运行时长,将所述当前任务调度到匹配的执行器。
上述步骤S101至步骤S104具体可以参考上述方法实施例,在此不再赘述。
S105、获取任务执行过程中监控到的所述任务数据,根据监控到的所述任务数据周期性的优化所述预设的算法模型。
在本实施例中,根据任务中心监控到的数据训练自研的预设算法模型。当所述任务中心运行起来后,可以每间隔一段时间。利用新记录的数据对所述预设算法模型进行再次训练,以优化所述预设算法模型,从而进一步优化任务调度,做到循环优化的效果。其中,根据新记录的数据训练所述预设算法模型的详细过程可以参考上述方法实施例。
本发明实施例提供的任务调度方法,不仅能够准确的完成任务调度,提高任务调度的效率,提升微服务应用的性能;而且还能做到循环优化,整体上提升了系统性能。
请参阅图7,图7是本发明实施例提供的一种任务调度装置的结构框图,所述装置可以应用于上述电子设备10。所述装置30包括:数据获取模块31、时长计算模块32和任务调度模块33。
所述数据获取模块31用于获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长。所述时长计算模块32用于根据所述任务数据计算所述当前任务在各个执行器的运行时长。所述任务调度模块33用于根据所述运行时长,将所述当前任务调度到匹配的执行器。
同样请参阅图7,所述装置30还包括算法模型获取模块34,所述算法模型获取模块34用于获取预设的算法模型。所述时长计算模块32获得的运行时长是由所述预设的算法模型计算得到的。其中,所述算法模型获取模块34具体用于:
采集样本数据,所述样本数据包括任务开始时间、任务结束时间、任务开始时所述已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数;
基于式子,通过神经网络模型对所述样本数据进行训练和测试,以获得所述预设的算法模型;
其中,所述式子为:
其中,所述通过神经网络模型对所述样本数据进行训练和测试,以获得所述预设的算法模型,包括:根据预设比例将所述样本数据分为训练集和测试集,并进行数据预处理;将所述训练集和所述测试集分别进行标准化处理,以得到标准处理后的第一训练集和第一测试集;将所述第一训练集分为无标签数据集合和有标签数据集合;利用门控循环单元网络对所述无标签数据集合进行半监督深度预训练,以获得初始参数集合;根据所述初始参数集合,利用门控循环单元网络对所述有标签数据集合进行有监督训练,获得所述式子中的系数α、β、γ、θ、δ,以确定所述式子;根据所述第一测试集验证所述确定的式子,以获得所述预设的算法模型。
其中,所述利用门控循环单元网络对所述无标签数据集合进行半监督深度预训练,以获得初始参数集合,包括:
步骤a:将第j层的门控循环单元网络作为自编码器的编码器,以及接入的一与所述门控循环单元网络结构和均参数相同的门控循环单元网络作为所述自编码器的解码器,并根据所述自编码器对所述无标签数据集合进行训练,以最小原始输入重建误差为目标对所述无标签数据集进行学习,以获得参数结果Pj;
步骤b:将所述第j层对应的所述自编码器的输出作为第j+1层门控循环单元网络的输入,固定所述第j层的所述参数结果Pj,同时对所述第j+1层执行所述步骤a;
步骤c:判断所述门控循环单元网络的n层结构是否全部完成初始化;
步骤d:若否,执行所述步骤b,直至所述门控循环单元网络的n层结构全部完成初始化,以获得所述初始参数集合P={P1,P2,P3……Pn}。
其中,所述根据所述第一测试集验证所述确定的式子,以获得所述预设的算法模型,包括:
根据所述第一测试集和所述确定的式子计算ROC曲线参数;
当所述ROC曲线参数满足预设条件时,确定所述式子的系数匹配,将包含所述系数的式子确定为所述预设的算法模型。
其中,所述任务调度模块33具体用于获取所述运行时长最短的执行器,并将所述当前任务调度到所述运行时长最短的所述执行器。
在一些实施例中,同样请参阅图7,所述装置30还包括任务中心创建模块35。所述任务中心创建模块35用于创建任务中心微服务,其中,所述任务中心微服务提供创建、修改、删除、暂停、开始以及选择超时策略的任务接口。其中,所述采集样本数据包括:通过预设调度算法调度任务进行预实验,并通过所述任务中心微服务监控任务的执行情况,记录所述任务开始时间、所述任务结束时间、所述任务开始时已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数。其中,所述当前任务对应的任务数据也可以由所述任务中心创建模块35获得。
在一些实施例中,同样请参阅图7,所述装置30还包括算法模型优化模块36。所述算法模型优化模块36用于获取任务执行过程中监控到的所述任务数据,根据监控到的所述任务数据周期性的优化所述预设的算法模型。
需要说明的是,上述任务调度装置可执行本发明实施例所提供的任务调度方法,具备执行方法相应的功能模块和有益效果。未在任务调度装置实施例中详尽描述的技术细节,可参见本发明实施例所提供的任务调度方法。
本发明实施例还提供了一种非易失性计算机存储介质,所述非易失性计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图2中的一个处理器31,可使得上述一个或多个处理器可执行上述任意方法实施例中的任务调度方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被所述应用主机执行时,使所述应用主机执行上述实施例中的任务调度方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (9)
1.一种任务调度方法,应用于电子设备,其特征在于,所述方法包括:
获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;
根据所述任务数据计算所述当前任务在各个执行器的运行时长;
根据所述运行时长,将所述当前任务调度到匹配的执行器;
其中,所述根据所述任务数据计算所述当前任务在各个执行器的运行时长的步骤由预设的算法模型执行,所述方法还包括:
采集样本数据,所述样本数据包括任务开始时间、任务结束时间、任务开始时所述已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数;
基于式子,通过神经网络模型对所述样本数据进行训练和测试,以获得所述预设的算法模型;
其中,所述式子为:
其中,α、β、γ、θ、δ为所述式子中待计算的系数。
2.根据权利要求1所述的方法,其特征在于,所述基于式子,通过神经网络模型对所述样本数据进行训练和测试,以获得所述预设的算法模型,包括:
根据预设比例将所述样本数据分为训练集和测试集,并进行数据预处理;
将所述训练集和所述测试集分别进行标准化处理,以得到标准处理后的第一训练集和第一测试集;
将所述第一训练集分为无标签数据集合和有标签数据集合;
利用门控循环单元网络对所述无标签数据集合进行半监督深度预训练,以获得初始参数集合;
根据所述初始参数集合,利用门控循环单元网络对所述有标签数据集合进行有监督训练,获得所述式子中的系数α、β、γ、θ、δ,以确定所述式子;
根据所述第一测试集验证所述确定的式子,以获得所述预设的算法模型。
3.根据权利要求2所述的方法,其特征在于,所述利用门控循环单元网络对所述无标签数据集合进行半监督深度预训练,以获得初始参数集合,包括:
步骤a:将第j层的门控循环单元网络作为自编码器的编码器,以及接入的一与所述门控循环单元网络结构和均参数相同的门控循环单元网络作为所述自编码器的解码器,并根据所述自编码器对所述无标签数据集合进行训练,以最小原始输入重建误差为目标对所述无标签数据集进行学习,以获得参数结果Pj;
步骤b:将所述第j层对应的所述自编码器的输出作为第j+1层门控循环单元网络的输入,固定所述第j层的所述参数结果Pj,同时对所述第j+1层执行所述步骤a;
步骤c:判断所述门控循环单元网络的n层结构是否全部完成初始化;
步骤d:若否,执行所述步骤b,直至所述门控循环单元网络的n层结构全部完成初始化,以获得所述初始参数集合P={P1,P2,P3……Pn}。
4.根据权利要求2所述的方法,其特征在于,所述根据所述第一测试集验证所述确定的式子,以获得所述预设的算法模型,包括:
根据所述第一测试集和所述确定的式子计算ROC曲线参数;
当所述ROC曲线参数满足预设条件时,确定所述式子的系数匹配,将包含所述系数的式子确定为所述预设的算法模型。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
获取任务执行过程中监控到的所述任务数据,根据监控到的所述任务数据周期性的优化所述预设的算法模型。
6.根据权利要求5所述的方法,其特征在于,所述根据所述运行时长,将所述当前任务调度到匹配的执行器具体包括:
获取所述运行时长最短的执行器,并将所述当前任务调度到所述运行时长最短的所述执行器。
7.根据权利要求5所述的方法,其特征在于,在执行所述获取当前任务对应的任务数据的步骤之前,所述方法还包括:
创建任务中心微服务,其中,所述任务中心微服务提供创建、修改、删除、暂停、开始以及选择超时策略的任务接口;
所述采集样本数据包括:
通过预设调度算法调度任务进行预实验,并通过所述任务中心微服务监控任务的执行情况,记录所述任务开始时间、所述任务结束时间、所述任务开始时已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数。
8.一种任务调度装置,应用于电子设备,其特征在于,所述装置包括:
数据获取模块,用于获取当前任务对应的任务数据;其中,所述任务数据包括已占用的执行器CPU的总线程数,执行器CPU的空闲线程数,所述当前任务在每一执行器运行的平均时长,以及每一执行器分别执行其对应的任务的平均时长;
时长计算模块,用于根据所述任务数据计算所述当前任务在各个执行器的运行时长;
任务调度模块,用于根据所述运行时长,将所述当前任务调度到匹配的执行器;
所述装置还包括算法模型获取模块,所述算法模型获取模块具体用于:
采集样本数据,所述样本数据包括任务开始时间、任务结束时间、任务开始时所述已占用的执行器CPU的总线程数和所述执行器CPU的空闲线程数;
基于式子,通过神经网络模型对所述样本数据进行训练和测试,以获得所述算法模型;
其中,所述式子为:
其中,α、β、γ、θ、δ为所述式子中待计算的系数。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;
以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010811680.0A CN112052081B (zh) | 2020-08-13 | 2020-08-13 | 一种任务调度方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010811680.0A CN112052081B (zh) | 2020-08-13 | 2020-08-13 | 一种任务调度方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052081A CN112052081A (zh) | 2020-12-08 |
CN112052081B true CN112052081B (zh) | 2022-06-03 |
Family
ID=73602158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010811680.0A Active CN112052081B (zh) | 2020-08-13 | 2020-08-13 | 一种任务调度方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052081B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732540B (zh) * | 2020-12-11 | 2023-02-21 | 地平线征程(杭州)人工智能科技有限公司 | 确定硬件使用率的方法和装置、存储介质、电子设备 |
CN113965476B (zh) * | 2021-10-22 | 2024-03-01 | 中国联合网络通信集团有限公司 | 基于应用的巡检方法、装置和设备 |
CN115022409A (zh) * | 2022-07-15 | 2022-09-06 | 中国工商银行股份有限公司 | 微服务调度方法、装置、计算机设备及其存储介质 |
CN115357403A (zh) * | 2022-10-20 | 2022-11-18 | 智己汽车科技有限公司 | 一种用于任务调度的微服务系统及任务调度方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591721A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 一种分配线程执行任务的方法和系统 |
CN102831011A (zh) * | 2012-08-10 | 2012-12-19 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN109376012A (zh) * | 2018-10-10 | 2019-02-22 | 电子科技大学 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
CN111506398A (zh) * | 2020-03-03 | 2020-08-07 | 平安科技(深圳)有限公司 | 任务调度方法和装置、存储介质、电子装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8453146B2 (en) * | 2009-12-23 | 2013-05-28 | Intel Corporation | Apportioning a counted value to a task executed on a multi-core processor |
CN104133724B (zh) * | 2014-04-03 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 并发任务调度方法及装置 |
-
2020
- 2020-08-13 CN CN202010811680.0A patent/CN112052081B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591721A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 一种分配线程执行任务的方法和系统 |
CN102831011A (zh) * | 2012-08-10 | 2012-12-19 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN109376012A (zh) * | 2018-10-10 | 2019-02-22 | 电子科技大学 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
CN111506398A (zh) * | 2020-03-03 | 2020-08-07 | 平安科技(深圳)有限公司 | 任务调度方法和装置、存储介质、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112052081A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112052081B (zh) | 一种任务调度方法、装置及电子设备 | |
US11120368B2 (en) | Scalable and efficient distributed auto-tuning of machine learning and deep learning models | |
Alipourfard et al. | {CherryPick}: Adaptively unearthing the best cloud configurations for big data analytics | |
US20220138199A1 (en) | Automated provisioning for database performance | |
CN110389820B (zh) | 一种基于v-TGRU模型进行资源预测的私有云任务调度方法 | |
CN105956021B (zh) | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 | |
Yang et al. | Multi-step-ahead host load prediction using autoencoder and echo state networks in cloud computing | |
Yang et al. | Intelligent resource scheduling at scale: a machine learning perspective | |
CN109710404B (zh) | 分布式系统中的任务调度方法 | |
Liu et al. | Predicting of job failure in compute cloud based on online extreme learning machine: a comparative study | |
CN112764893B (zh) | 数据处理方法和数据处理系统 | |
WO2019153188A1 (en) | Gpu power modeling using system performance data | |
Fekry et al. | Tuneful: An online significance-aware configuration tuner for big data analytics | |
CN114895773A (zh) | 异构多核处理器的能耗优化方法、系统、装置及存储介质 | |
Kinnison et al. | Shadho: Massively scalable hardware-aware distributed hyperparameter optimization | |
CN112434785A (zh) | 一种面向超级计算机的分布式并行深度神经网络性能评测方法 | |
CN113220466A (zh) | 一种基于长短期记忆模型的云服务负载通用预测方法 | |
Tariq et al. | Execution time prediction model that considers dynamic allocation of spark executors | |
Feng et al. | Heterogeneity-aware proactive elastic resource allocation for serverless applications | |
CN111625352A (zh) | 调度方法、装置及存储介质 | |
CN116360921A (zh) | 一种面向电力物联网的云平台资源优化调度方法及系统 | |
CN112906971B (zh) | 批处理作业中运行时间的预测方法、装置和电子设备 | |
Fekry et al. | Towards seamless configuration tuning of big data analytics | |
Du et al. | OctopusKing: A TCT-aware task scheduling on spark platform | |
Wu et al. | HW3C: a heuristic based workload classification and cloud configuration approach for big data analytics |
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 |