CN113918306A - 运行资源调度方法及其装置、设备、介质、产品 - Google Patents
运行资源调度方法及其装置、设备、介质、产品 Download PDFInfo
- Publication number
- CN113918306A CN113918306A CN202111280122.7A CN202111280122A CN113918306A CN 113918306 A CN113918306 A CN 113918306A CN 202111280122 A CN202111280122 A CN 202111280122A CN 113918306 A CN113918306 A CN 113918306A
- Authority
- CN
- China
- Prior art keywords
- running
- service process
- fitting
- task
- new
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 367
- 230000008569 process Effects 0.000 claims abstract description 304
- 239000013598 vector Substances 0.000 claims abstract description 116
- 230000000875 corresponding effect Effects 0.000 claims description 211
- 238000012360 testing method Methods 0.000 claims description 33
- 238000012549 training Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 23
- 239000002131 composite material Substances 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 10
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000004132 cross linking Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
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
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开一种运行资源调度方法及其装置、设备、介质、产品,所述方法包括:获取服务集群各服务进程分别包含新运行任务及其当前运行任务在内的运行特征数据及该服务进程所在计算机设备的设备标识;针对各个设备标识所指向的计算机设备,采用拟合模型为所述运行特征数据匹配所述设备标识相对应的权重向量,计算出每个服务进程加载新运行任务之后对运行资源的拟合占用量;针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行。本申请能够实现对新运行任务的自适应调度。
Description
技术领域
本申请涉及服务集群资源调度技术,尤其涉及一种运行资源调度方法及其相应的装置、计算机设备、计算机可读存储介质,以及计算机程序产品。
背景技术
以服务端混流转码为例,服务集群中,常存在计算机运行资源密集型的任务,此类任务对CPU和内存的占用较密集,特别是针对CPU的占用更为明显。
针对此类任务,为充分利用计算机运行资源,一台服务器一般需要同时运行多个例如所述的混流转码任务(以下简称任务),大量的任务的存在,便对服务集群内的任务调度提出了更高的要求。为合理地对任务进行分配调度,首先需要知道一台机器究竟能运行多少个任务,再根据机器的负载能力匹配后续的任务。
目前为止,这一问题没有标准解决方案,因为要了解各个机器的处理能力,需要依赖机器的型号性能、任务的具体参数和输入流的当前状态等,通常只能针对给定的机器型号和任务参数进行CPU消耗预估,从而指导任务分配逻辑。
一般的做法是针对一些常用的任务参数,在各个机器型号上做一个线下测试,观察对应的CPU消耗,根据观察经验数据对线上的任务参数预估出大概的CPU消耗。这个方案需要提前在线下测试并计算关联数据,跟线上真实运行环境或多或少会存在一些差异,而且由于任务参数组合和机器型号的多样性,很难覆盖测试到各种任务参数和机器型号的组合,因此预估出来的CPU消耗准确性比较差。
因此,现有技术中,服务集群在调度运行任务时,缺乏实现服务集群内不同计算机设备之间的运行资源的自适应调度的解决方案,特别是对于运行资源密集型的运行任务而言,更亟需此类方案的及早提出。
发明内容
本申请的首要目的在于解决上述问题至少之一而提供一种运行资源调度方法及其相应的装置、计算机设备、计算机可读存储介质、计算机程序产品。
为满足本申请的各个目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种运行资源调度方法,包括如下步骤:
响应服务集群内新运行任务的创建事件,获取各服务进程分别包含该新运行任务及其当前运行任务在内的运行特征数据及该服务进程所在计算机设备的设备标识;针对各个设备标识所指向的计算机设备,采用预训练至收敛的拟合模型为所述运行特征数据匹配所述设备标识相对应的权重向量,计算出每个服务进程加载新运行任务之后对运行资源的拟合占用量;针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行。
深化的实施例中,本方法还包括训练所述拟合模型的步骤:获取服务集群中各服务进程相对应的测试集,该测试集包括服务进程的所有当前运行任务相对应的运行特征数据、服务进程对运行资源的实际占用量及服务进程所在计算机设备的设备标识;利用拟合模型对一个测试集中的运行特征数据匹配权重向量进行数据拟合,获得相应的服务进程占用所述设备标识所指向的计算机设备的运行资源的拟合占用量;根据所述实际占用量与所述拟合占用量的差值梯度更新所述的权重向量以促进拟合模型收敛,在拟合模型未收敛时对拟合模型继续迭代训练。
具体化的实施例中,获取服务集群中各服务进程相对应的测试集,包括如下步骤:定时采集服务集群中各个服务进程相对应的运行特征数据,所述运行特征数据包括该服务进程中当前所有运行任务的关联于预选运行参数的综合特征值;关联采集所述各个服务进程所在的计算机设备的设备标识及各个服务进程在相应的计算机设备所占用的运行资源的实际占用量;将每个服务进程相对应的所述运行特征数据、所述实际占用量,以及所述设备标识构造为相应的测试集。
进一步的实施例中,定时采集服务集群中各个服务进程相对应的运行特征数据,包括如下步骤:获取每个服务进程中当前所有运行任务的预选运行参数;从所述预选运行参数中提取出各个预选运行参数相对应的基础特征值;对其中预定的部分基础特征值分别做平方运算获得相应的二阶复合特征值;适应所有基础特征值与所有二阶复合特征值逐项进行所有运行任务的加和获得服务进程相对应的综合特征值,由所有综合特征值构成所述的运行特征数据。
较佳的实施例中,所述运行任务为用于对多个视频流进行混流转码的计算机任务;所述基础特征值包括如下任意多项构成的集合:输出音频码率、输入视频分辨率、输入视频帧率、输入视频码率、输入视频编码类型、输出视频分辨率、输出视频帧率、输出视频码率、输出视频编码类型;用于计算二阶复合特征值的所述部分基础特征值包括当所述集合相应将其包括时的如下至少一项:输出视频分辨率、输出视频帧率、输出视频码率、输出视频编码类型。
深化的实施例中,所述拟合模型执行如下步骤:获取服务进程相对应的运行特征数据及其相对应的设备标识,所述运行特征数据包含多个综合特征值;将所述运行特征数据所包含的综合特征值归一化为特定空间的向量表示,构成综合特征向量;根据与设备标识相对应的权重向量计算所述综合特征向量中各个综合特征值的加权和值作为所述服务进程的拟合占用量,所述权重向量包括与所述综合特征向量中的各个综合特征值相对应的多个相应权重;根据所述服务进程的拟合占用量与实际占用量之间的估计误差更新所述的权重向量。
具体化的实施例中,根据所述服务进程的拟合占用量与实际占用量之间的估计误差更新所述的权重向量,包括如下步骤:求取服务进程的拟合占用量与其实际占用量之间估计误差;根据预设步长与所述估计误差的乘积确定权重调整系数;更新所述权重向量,更新后的权重向量的各个权重为其原权重和其相对应的综合特征值与所述权重调整系数的乘积之间的差值;根据更新后的所述权重向量调整所述的预设步长。
进一步的实施例中,根据更新后的所述权重向量调整所述的预设步长,包括如下步骤:根据更新后的权重向量与所述综合特征向量重新计算新的拟合占用量;根据新的拟合占用量与相应的所述实际占用量重新计算新的估计误差;判断新的估计误差与原先获得的估计误差之间的方差是否大于0,当判断成立时,缩小所述的预设步长的数值。
深化的实施例中,针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行,包括如下步骤:针对每个设备标识所指向的计算机设备中在运行的各个服务进程,将其相应的拟合占用量叠加该计算机设备中其他服务进程的当前实际占用量,作为每个服务进程加载所述新运行任务后,其所在的计算机设备的运行资源的预估使用总量;根据所述预估使用总量计算相应的计算机设备的运行资源的余量;比较各个服务进程相对应的所述余量,将其中余量最高相对应的服务进程确定为目标服务进程,将所述新运行任务分配至该目标服务进程中运行。
适应本申请的目的之一而提供的一种运行资源调度装置,包括:特征获取模块、用量拟合模块,以及预估分配模块,其中,所述特征获取模块,用于响应服务集群内新运行任务的创建事件,获取各服务进程分别包含该新运行任务及其当前运行任务在内的运行特征数据及该服务进程所在计算机设备的设备标识;所述用量拟合模块,用于针对各个设备标识所指向的计算机设备,采用预训练至收敛的拟合模型为所述运行特征数据匹配所述设备标识相对应的权重向量,计算出每个服务进程加载新运行任务之后对运行资源的拟合占用量;所述预估分配模块,用于针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行。
适应本申请的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的运行资源调度方法的步骤。
适应本申请的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的运行资源调度方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
适应本申请的另一目的而提供的一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本申请任意一种实施例中所述方法的步骤。
相对于现有技术,本申请的优势如下:
首先,本申请在服务集群内需要为新运行任务分配执行该新运行任务的服务进程时,假设将该新运行任务分别分配到服务集群内的各个相应服务进程,然后分别获取这些服务进程包含这一新运行任务后的运行特征数据,该运行特征数据除了既包含该新运行任务的运行特征数据,也包含该服务进程的当前运行任务的运行特征数据,同时还获取该服务进程所在的计算机设备的设备标识,建立起计算机设备的设备标识到服务进程再到相应的运行特征数据之间的映射关系;继而,针对各个设备标识所指向的计算机设备,利用拟合模型为所述运行特征数据匹配所述设备标识相对应的权重向量,可以计算出每个服务进程加载新运行任务之后对运行资源的拟合占用量;最后,再针对服务集群内的每台计算机设备计算该新运行任务添加至其中每个服务进程之后,相应的计算机设备运行所有服务进程相对应的运行资源的预估使用总量,然后根据各个服务进程的预估使用总量寻求最优方案,将新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行,实现对新运行任务的调度分配。据此可知,由于每个新运行任务是经过对其分配后的运行资源使用情形进行评估的,由此可以确保自动针对每个新运行任务都进行最优调度,使服务集群的整体运行资源得到最高效的利用。
其次,本申请利用预训练的拟合模型实现对每个服务进程加载新运行任务之后相对应的拟合占用量的有效评估,而不是简单地利用固定配额进行机械运算,实现对机器学习优势的利用,可以得到更为科学的拟合占用量,用于指导后续对新运行任务的分配,可以自动化在后台对新运行任务实施自适应调度,将服务集群、服务集群中的计算机设备、计算机设备中的服务进程、服务进程中的运行任务均统一到运行资源的拟合占用量的比较上来进行调度,避免人工制定相关调度策略,大大提升了服务集群的部署效率并降低部署成本。
此外,本申请所取得的优势使得本申请的技术方案特别适用于运行资源密集型,尤其是CPU密集型的运行任务中,例如网络直播服务中常需要对多路音视频流进行混流转码,而混流转码即是CPU密集型任务,此类场景下,应用本申请的技术方案能获得更为明显的优势,对于确保网络直播服务的稳健和流畅均有明显助益。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为应用本申请的运行资源调度方法的服务集群的逻辑架构示意图;
图2为本申请的运行资源调度方法的典型实施例的流程示意图;
图3为本申请实施例中拟合模型训练过程的流程示意图;
图4为本申请实施例中采集拟合模型的测试集的过程的流程示意图;
图5为本申请实施例中制备运行特征数据的过程的流程示意图;
图6为本申请实施例中拟合模型的工作过程的流程示意图;
图7为本申请实施例中拟合模型更新其权重向量及预设步长的过程的流程示意图;
图8为本申请实施例中拟合模型更新预设步长的具体过程的流程示意图;
图9为本申请实施例中根据各个服务进程相应的拟合占用量进行新运行任务的调度的过程的流程示意图;
图10为本申请的运行资源调度装置的原理框图;
图11为本申请所采用的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
本申请的一个或数个技术特征,除非明文指定,既可部署于服务器实施而由客户端远程调用获取服务器提供的在线服务接口来实施访问,也可直接部署并运行于客户端来实施访问。
本申请中所引用或可能引用到的神经网络模型,除非明文指定,既可部署于远程服务器且在客户端实施远程调用,也可部署于设备能力胜任的客户端直接调用,某些实施例中,当其运行于客户端时,其相应的智能可通过迁移学习来获得,以便降低对客户端硬件运行资源的要求,避免过度占用客户端硬件运行资源。
本申请所涉及的各种数据,除非明文指定,既可远程存储于服务器,也可存储于本地终端设备,只要其适于被本申请的技术方案所调用即可。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
本申请即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本申请的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
本申请的一种运行资源调度方法,可被编程为计算机程序产品,部署于服务集群中运行而实现,以便藉此通过访问该计算机程序产品运行后开放的接口,通过图形用户界面与该计算机程序产品进行人机交互而执行该方法。
请参阅图1,所述服务集群中,包括多台充当服务器的计算机设备,服务集群可以利用微服务架构进行容器化管理,从而获得多个服务容器,每个服务容器本质上是一个用于执行一个或多个运行任务的服务进程,因此,每个服务进程可能同时并发处理多个运行任务。每个所述的服务进程一般运行于一台计算机设备中,通常不同服务进程所处理的均为相同功能的运行任务,例如本申请中示例性的网络直播场景中对多路音视频流进行混流和转码的计算机任务。所述运行任务在计算机程序层面,可以视为计算机程序中的方法函数,当为其提供相应的任务参数时,运行任务便可根据任务参数进行任务处理,例如对于混流转码任务而言,为其提供相应的分辨率、码率、帧率等参数时,运行任务便可据些进行混流和转码。对于其他未示例的应用场景,也是同理,因此,本领域技术人员应当理解,所述运行任务均具有相应的任务参数,或称运行参数,不同的运行任务,相应的运行参数可以不同,但各运行任务所执行的功能基本相同。据此,本申请的服务集群便基于运行任务进行任务调度。
请参阅图2,本申请的运行资源调度方法在其典型实施例中,包括如下步骤:
步骤S1100、响应服务集群内新运行任务的创建事件,获取各服务进程分别包含该新运行任务及其当前运行任务在内的运行特征数据及该服务进程所在计算机设备的设备标识:
当一个新运行任务被提交给服务集群,从而触发一个新运行任务创建事件时,为了实现对新运行任务的调度分配,需要采集与其相关联的运行特征数据。
所述运行特征数据需要针对服务集群中的每个服务进程进行获取,从而获取到每个服务进程相对应的运行特征数据。为了获得每个服务进程相对应的运行特征数据,以将该新运行任务添加到该服务进程中运行为假设前提,而获取满足该假设的情况下,该服务进程相对应的运行特征数据。因此,每份运行特征数据既包括其相应的服务进程内当前正在运行的当前运行任务的运行特征数据,也包括该新运行任务相对应的运行特征数据。所述的运行特征数据表示了其相应的服务进程内的各个运行任务的数据特征,这些数据特征高度盖然性地使不同运行任务之间体现出差别信息,通常可以从各个运行任务的任务参数中进行提取生成。
为了建立每个服务进程的所述运行特征数据与该服务进程所在的计算机设备之间的关联,除了获取该服务进程的所述运行特征数据之外,进一步还获取该计算机设备相对应的设备标识,由此可使服务进程、运行特征数据以及设备标识之间建立关联对应关系。
据此,不难理解,对于一个新运行任务而言,便获得了假设将该新运行任务分配至各个服务进程运行时,各个服务进程相对应的运行特征数据,并且这些运行特征数据与服务进程所在的计算机设备之间也存在对应关系。
步骤S1200、针对各个设备标识所指向的计算机设备,采用预训练至收敛的拟合模型为所述运行特征数据匹配所述设备标识相对应的权重向量,计算出每个服务进程加载新运行任务之后对运行资源的拟合占用量:
由于每个服务进程的运行特征数据均已被获取,而每个服务进程又是运行在不同计算机设备中,因此,本步骤针对关联于运行特征数据的所述设备标识,进行每个服务进程的拟合占用量的计算。
所述拟合占用量,表示一个服务进程根据其给定的运行特征数据进行数据拟合,所获得的对其所在的计算机设备的运行资源的预估占用量。所述的运行资源包括但不限于CPU、内存空间、硬盘空间等资源,本申请中,为简化说明,后续仅以CPU资源为例进行说明。当存在多种资源参与计算时,理论上可将多种具体资源的数据进行线性融合来实现相关数值运算,对此,本领域技术人员可灵活实施。
所述拟合占用量的计算,借助预训练至收敛状态的拟合模型来进行,所述的拟合模型,可以基于传统机器学习原理或者深度学习原理构造实现,后续的实施例将揭示其算法原理及训练过程,本实施例中从略。
概而言之,所述拟合模型被训练为适于根据一个服务进程相应的运行特征数据而预估计算出该服务进程在其所在计算机设备中对运行资源的占用量,作为相应的拟合占用量。由于每台计算机设备的运行资源、操作系统等软硬件资源可能不能,因此,拟合模型能够通过与运行特征数据相对应的设备标识以区别依据,来为不同的计算机设备适配不同的预训练生成的权重向量,利用该权重向量与该运行特征数据进行关联运算,而针对该设备标识所指向的计算机设备相对应的拟合占用量。
由此可知,对于一个新运行任务而言,其被假设添加至服务集群的各个服务进程中,从而获得各个服务进程相对应的运行特征数据,这些运行特征数据均被关联了相应的服务进程所在的计算机设备的设备标识,然后,通过所述的拟合模型,针对这些运行特征数据分别采用关联于其相应的设备标识相对应的权重向量进行运算,获得了各个服务进程相对应的拟合占用量,借此表示当该新运行任务添加至各个服务进程之后,相应的服务进程对其所在的计算机设备的运行资源的可能的利用量。
步骤S1300、针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行:
为了横向比较所述新运行任务添加至各个服务进程后的拟合占用量是否为最优,进一步针对各个服务进行相对应的拟合占用量进行评估,先根据该拟合占用量计算出各个服务进程加载所述新运行任务之后导致其所在的计算机设备所形成的运行资源的预估使用总量,然后再根据一定的策略对所述的预估使用总量进行择优,以将新运行任务分配到最优项相对应的服务进程中运行。
所述的预估使用总量,本实施例中,对于一个计算机设备而言,可以理解为其运行多个所述的服务进程相对应的运行资源的负载,也即可以理解为其中的所有服务进程对其运行资源的实际占用量的总和,当然,其中,针对参与预估的服务进程相对应的拟合占用量而言,并非采用该服务进程的实际占用量,而是采用该服务进程的拟合占用量参与该总和的计算,由此,所计算的总和,便是计算出拟合占用量的服务进程的该拟合占用量,与该服务进程所在的计算机设备中的其他服务进程对运行资源的实际占用量的和值,这一和值,便是所述的预估使用总量,用于表示所述新运行任务一旦加载到某一服务进程后,导致该服务进程所在的计算机设备被其内运行的所有服务进程占用的运行资源的使用总量。
据此,针对所有服务进程,均可计算出其所在的计算机设备相应的预估使用总量,即使其中同一计算机设备运行多个所述的服务进程,这些运行于同一计算机设备的服务进程,也会分别获得其相对应的预估使用总量。
获得每个服务进程相对应的预估使用总量之后,便可利用预设的策略对其进行择优,确定其中预估使用总量最优项相对应的服务进程,将所述新运行任务分配至该服务进程中运行,实现根据预估使用总量最优进行调度。这些预设的策略可以由本领域技术人员根据预估使用总量的性质及其表示形式灵活确定,并不影响本申请的创造精神的体现。
变通的一个实施例中,所述的策略可以预先设计为直接比较所述预估使用量的最低值,例如,设有N个服务进程相对应的预估使用总量,其中一个服务进程的预估使用总量以百分比的形式表示为75%,表示该服务进程加载所述新运行任务后,其所在的计算机设备的运行资源(CPU使用率)的利用率为75%,为所有服务进程的相应项的最低值,据此,可以直接确定该预估使用总量相对应的服务进程为最适于加载所述新运行任务的服务进程,从而将该新运行任务调度给该服务进程进行处理。
另一变通的实施例中,所述的策略可以预先设计为先根据各个所述预估使用总量计算出其相应的服务进程所在的计算机设备的运行资源的余量,然后根据余量来择优,对此,后续将针对这一变通实施例进行详细揭示,此处暂按。
至此,可以理解,本典型实施例能够自适应地实现对新运行任务的最优调度,以将新运行任务按照最优策略分配至某一服务进程中运行。根据本典型实施例以上的揭示,可以看出,相对于现有技术,本申请取得如下的积极效果:
首先,本申请在服务集群内需要为新运行任务分配执行该新运行任务的服务进程时,假设将该新运行任务分别分配到服务集群内的各个相应服务进程,然后分别获取这些服务进程包含这一新运行任务后的运行特征数据,该运行特征数据除了既包含该新运行任务的运行特征数据,也包含该服务进程的当前运行任务的运行特征数据,同时还获取该服务进程所在的计算机设备的设备标识,建立起计算机设备的设备标识到服务进程再到相应的运行特征数据之间的映射关系;继而,针对各个设备标识所指向的计算机设备,利用拟合模型为所述运行特征数据匹配所述设备标识相对应的权重向量,可以计算出每个服务进程加载新运行任务之后对运行资源的拟合占用量;最后,再针对服务集群内的每台计算机设备计算该新运行任务添加至其中每个服务进程之后,相应的计算机设备运行所有服务进程相对应的运行资源的预估使用总量,然后根据各个服务进程的预估使用总量寻求最优方案,将新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行,实现对新运行任务的调度分配。据此可知,由于每个新运行任务是经过对其分配后的运行资源使用情形进行评估的,由此可以确保自动针对每个新运行任务都进行最优调度,使服务集群的整体运行资源得到最高效的利用。
其次,本申请利用预训练的拟合模型实现对每个服务进程加载新运行任务之后相对应的拟合占用量的有效评估,而不是简单地利用固定配额进行机械运算,实现对机器学习优势的利用,可以得到更为科学的拟合占用量,用于指导后续对新运行任务的分配,可以自动化在后台对新运行任务实施自适应调度,将服务集群、服务集群中的计算机设备、计算机设备中的服务进程、服务进程中的运行任务均统一到运行资源的拟合占用量的比较上来进行调度,避免人工制定相关调度策略,大大提升了服务集群的部署效率并降低部署成本。
此外,本申请所取得的优势使得本申请的技术方案特别适用于运行资源密集型,尤其是CPU密集型的运行任务中,例如网络直播服务中常需要对多路音视频流进行混流转码,而混流转码即是CPU密集型任务,此类场景下,应用本申请的技术方案能获得更为明显的优势,对于确保网络直播服务的稳健和流畅均有明显助益。
本申请所采用的拟合模型需要经过预训练,使其达至收敛状态,以便更好地服务于拟合占用量的计算,为此,在本申请的运行资源调度方法中,进一步包括对该拟合模型实施训练的训练任务,适应该训练任务,如图3所示,本申请的运行资源调度方法还包括如下步骤:
步骤S2100、获取服务集群中各服务进程相对应的测试集,该测试集包括服务进程的所有当前运行任务相对应的运行特征数据、服务进程对运行资源的实际占用量及服务进程所在计算机设备的设备标识:
所述测试集可由本领域技术人员自行预备,以在执行训练任务时调用。
所述的测试集,本质上是一份训练数据集,可采集自服务集群的各个服务进程。测试集中包括多组样本数据,每组样本数据包括一个采集自服务进程的所有当前运行任务相对应的运行特征数据,服务进程对运行资源的实际占用量,以及服务进程所在计算机设备的设备标识。
样本数据中的运行特征数据,其构成与本申请的拟合模型在生产阶段进行拟合占用量的计算所需的运行特征数据略有不同,后者的运行特征数据是服务进程的当前运行任务与假设添加的新运行任务两者的运行特征数据的集合,而样本数据中的运行特征数据,则仅包括采集时服务进程的当前实际运行的所有运行任务相对应的运行特征数据。
样本数据中的实际占用量,是提供所述运行特征数据的服务进程对其所在的计算机设备的运行资源的实际占用总量的表现数据,其表征该服务进程处理当前所有运行任务需要消耗当前计算机设备的多少或多大幅度的运行资源。实际占用量可以用做拟合模型计算出的拟合占用量的监督标签。
样本数据中的设备标识,是其相应的服务进程所在的计算机设备的唯一性特征标识,例如UUID(设备唯一性特征)、网络地址,以及其他方便区别的计算机身份标识等,本领域技术人员对此可灵活选用。设备标识可以用于区分不同计算机设备相对应的权重向量。
可以理解,所述测试集中的运行特征数据通常是因应具体的运行任务而采集的,针对不同的运行任务,其具体的运行参数不同,而导致运行特征数据的内容和性质有所不同。据此,适应本申请的示例性场景的一个实施例中,所述运行任务为用于对多个视频流进行混流转码的计算机任务,相应地,所述运行特征数据也采集与混流转码的计算机任务相关的各种运行参数。
测试集中包含大量的所述样本数据,理论上样本数据量越多越好,本领域技术人员可灵活预备。
步骤S2200、利用拟合模型对一个测试集中的运行特征数据匹配权重向量进行数据拟合,获得相应的服务进程占用所述设备标识所指向的计算机设备的运行资源的拟合占用量:
所述拟合模型此时处于被训练阶段,其采用一个权重向量对样本数据中运行特征数据中的各个部分进行加权求和实现权重匹配,该权重向量与每个所述的设备标识一一对应关联,可被随机初始化后启用,经权重向量加权求和所得的数值,为对应该组样本数据的数据拟合后的拟合占用量,表示该样本数据相对应的服务进程占用所述设备标识所指向的计算机设备的运行资源的使用量。
所述的权重向量可与其相应的设备标识进行关联存储,以便拟合模型在生产阶段能够根据设备标识调用相应的权重向量。
步骤S2300、根据所述实际占用量与所述拟合占用量的差值梯度更新所述的权重向量以促进拟合模型收敛,在拟合模型未收敛时对拟合模型继续迭代训练:
如前所述,样本数据中的实际占用量可被用做监督标签,训练的目的在于使拟合模型依据样本数据中的运行特征数据计得的拟合占用量能够尽量接近于样本数据中提供的实际占用量,因此,可以利用该实际占用量与前一步骤数据拟合所成的拟合占用量之间的差值来实现对相应的权重向量进行梯度更新,适应调节权重向量中的各个具体权重,使更新后的权重向量更能够获得接近所述实际占用量的拟合占用量,从而促进拟合模型的收敛。
当拟合模型未达到收敛状态时,或者拟合模型计得的拟合占用量与实际占用量的差值未能收敛到一定的幅度时,便可继续调用下一样本数据继续对该拟合模型进行迭代训练,直到达到训练目的。
本实施例中,采用预备的测试集,对基于机器学习原理构造的拟合模型实施训练,当其被训练至收敛时,使其习得了根据运行特征数据便可计算出其相对应的拟合占用量的能力,即可投入本申请中实施数据拟合之用。由于利用机器学习算法即可实现该拟合模型,其实现难度不高,而取得的效果显著,因此,有利于降低部署成本。
请参阅图4,具体化的实施例中,所述步骤S2100、获取服务集群中各服务进程相对应的测试集,包括如下步骤:
步骤S2110、定时采集服务集群中各个服务进程相对应的运行特征数据,所述运行特征数据包括该服务进程中当前所有运行任务的关联于预选运行参数的综合特征值:
本实施例中,可以动态地实现对所述的拟合模型的训练,以便实现对各个设备标识相对应的权重向量的及时更新。为此,采用监听机制或定时机制,定时采集所述服务集群中各个服务进程相对应的运行特征数据,来构造用于继续训练所述拟合模型的测试集。
本实施例中,所述运行特征数据根据所述服务进程所处理的运行任务的运行参数来提取生成的,本领域技术人员可以根据需要对运行任务的相关运行参数进行优选,以确定出用于生成运行特征数据的预选运行参数,然后,通过将同一服务进程内所有相同预选运行参数抽象为相应的综合特征值,来将这些综合特征值封装为所述的运行特征数据。
定时采集的频度也可由本领域技术人员灵活设定,例如,5秒、10秒,可以结合服务集群的繁忙程度灵活确定。
步骤S2120、关联采集所述各个服务进程所在的计算机设备的设备标识及各个服务进程在相应的计算机设备所占用的运行资源的实际占用量:
为了构造相应的测试集,因应测试集中样本数据的构成,除了获取各个服务进程相对应的运行特征数据,还需关联于该运行特征数据获取其相对应的实际占用量,如前所需,实际占用量为其相应的服务进程在其所在的计算机设备所占用的运行资源的使用量,此一数据可直接从计算机设备的操作系统提供的接口或数据文件中读取,本领域技术人员均知晓。当然,同理也可获取所述计算机设备相对应的设备标识。
步骤S2130、将每个服务进程相对应的所述运行特征数据、所述实际占用量,以及所述设备标识构造为相应的测试集:
至此,便获得了每个服务进程相对应的样本数据,包括所述的运行特征数据、实际占用量以及设备标识,多个服务进程便形成多个样本数据,将这些样本数据添加到测试集中,便可参阅本申请其他实施例所揭示,用于继续对所述的拟合模型实施训练。
本实施例通过定时从服务集群中采集对拟合模型训练所需的测试集内的相关样本数据,用于对拟合模型进行继续训练,可以实现对拟合模型的数据拟合能力的长期演进,使拟合模型循环改进其自身的数据拟合准确度,无需人工干预,从而实现自适应地提升和优化服务集群的资源调度能力。
请参阅图5,进一步的实施例中,所述步骤S2110、定时采集服务集群中各个服务进程相对应的运行特征数据,包括如下步骤:
步骤S2111、获取每个服务进程中当前所有运行任务的预选运行参数:
所述的预选运行参数,如前所述,可由本领域技术人员所选定,适应本申请的示例性场景的一个实施例中,所述运行任务为用于对多个视频流进行混流转码的计算机任务,故相应的预选运行参数可以是诸如音频、视频相关的码率、分辨率、帧率、编码类型等类型的运行参数。
步骤S2112、从所述预选运行参数中提取出各个预选运行参数相对应的基础特征值:
一般而言,所述预选运行参数推荐使用数值型参数,以便从中提取出相应的数值,或者将其对应转换为数值,作为基础特征值。例如,前述的混流转码场景中,所述基础特征值包括如下任意多项构成的集合:输出音频码率、输入视频分辨率、输入视频帧率、输入视频码率、输入视频编码类型、输出视频分辨率、输出视频帧率、输出视频码率、输出视频编码类型。可以看出,这这些基础特征值都有对应的预选运行参数与之相对应,构造运行特征数据所需的基础特征值的多寡,可视本领域技术人员对所述运行任务中运行参数的预选而定。
步骤S2113、对其中预定的部分基础特征值分别做平方运算获得相应的二阶复合特征值:
为使拟合更准确,本领域技术人员可进一步优选部分基础特征值,对这些基础特征值做平方运算,获得其相应的二阶复合特征值。二阶复合特征值的设置,本质上是将一个线性拟合转成多项式拟合,可使拟合更准确。
仍以混流转码场景为例,在给定前一步骤所列示的基础特征值的情况下,可选取如下任意一项或任意多项用于计算所述的二阶复合特征值:输出视频分辨率、输出视频帧率、输出视频码率、输出视频编码类型。
步骤S2114、适应所有基础特征值与所有二阶复合特征值逐项进行所有运行任务的加和获得服务进程相对应的综合特征值,由所有综合特征值构成所述的运行特征数据:
最后,对于每个服务进程而言,其所有当前正在运行的运行任务,每个运行任务均包含了相应的多个基础特征值和多个二阶复合特征值,对此,可以这些具体的值为维度,将各个运行任务的相同维度的基础特征值或二阶复合特征值进行加和,获得其和值,即为该维度相应的综合特征值,据此,对于所述多个基础特征值和多个二阶复合特征值,便获得多个综合特征值,所述的综合特征值便构成所述运行特征数据。
本实施例示例性地给出了从运行任务的预选运行参数中提取特征值,转换出相应的综合特征值,构成运行特征数据的过程,在期间对部分基础特征值进行了平方运算实现二阶复合转换,可进一步提升拟合模型的数据拟合能力。
请参阅图6,深化的实施例中,所述拟合模型执行如下步骤:
步骤S3100、获取服务进程相对应的运行特征数据及其相对应的设备标识,所述运行特征数据包含多个综合特征值:
所述拟合模型无论在其被训练阶段,还是被投入生产用于拟合出新运行任务所需的拟合占用量的阶段,均按照其固有实现的业务逻辑运行。据此,当其进入工作状态时,首先获取为其馈入的与服务进程相对应的运行特征数据及其相对应的设备标识。
可以理解,当拟合模型处于被训练阶段时,所述的运行特征数据仅是针对其相应的服务进程内的所有当前运行任务生成的,而当该拟合模型处于生产阶段时,所述的运行特征数据除了包含其相应的服务进程内的所有当前运行任务的运行特征数据外,还包含未被分配的所述新运行任务的运行特征数据。至于所述运行特征数据的具体生成过程,可参照本申请其他实施例的揭示,即所述运行特征数据将被表述为多个综合特征值,每个综合特征值均是提取之同一服务进程内所有运行任务的同一预先运行参数。对此,本实施例不再赘述。
步骤S3200、将所述运行特征数据所包含的综合特征值归一化为特定空间的向量表示,构成综合特征向量:
为了便于拟合模型的计算,将运行特征数据中的各个综合特征值进行归一化处理,将其映射到特定的数值空间,具体可映射至[-1,1]之间,从而实现向量化,构成综合特征向量。
步骤S3300、根据与设备标识相对应的权重向量计算所述综合特征向量中各个综合特征值的加权和值作为所述服务进程的拟合占用量,所述权重向量包括与所述综合特征向量中的各个综合特征值相对应的多个相应权重:
与综合特征向量同理,所述的权重向量也被表述为一个向量,其对应的性格这综合特征向量中的元素个数而设置多个相应的权重。对于一个设备标识而言,当其初始启用权重向量时,可使用一个初始化的权重向量,其中各个权重可预先随机分配一个0至1之间的随机值。而当设备标识存在相对应的权重向量时,则相应调用即可。
据此,将综合特征向量中的各个元素分别匹配权重向量中的权重进行加和,获得加权和值,便可作为相应的服务进程的拟合占用量。当然,这一拟合占用量,在拟合模型被训练阶段,并非一个可直接利用的数值,而在拟合模型的生产阶段,则可被直接调用于实施新运行任务的调度。
步骤S3400、根据所述服务进程的拟合占用量与实际占用量之间的估计误差更新所述的权重向量:
在拟合模型被训练阶段,拟合模型获得相应的拟合占用量之后,便可与样本数据相应提供的实际占用量进行误差计算,获得相应的估计误差,该估计误差便可用于更新相应的权重向量,通常不断修正所述的权重向量,可使拟合模型计算出的拟合占用量越来越逼近相对应的实际占用量。
根据本实施例对拟合模型的算法原理的揭示,可以理解,每个设备标识所指向的计算机设备均有一个权重向量与之对应,在该权重向量的作用下,经预训练的拟合模型可以为该计算机设备中运行的服务进程计算出其相应的拟合占用量,该拟合占用量理论上无限逼近相应的实际占用量,因此,拟合模型可以根据包含未运行的新运行任务在内的运行特征数据对该新运行任务添加至服务进程后的实际占用量进行有效的预估,以便服务集群可以据此实施任务调度。
本实施例实际上也揭示了拟合模型的机器学习原理,其中,拟合模型对综合特征向量的拟合过程,可以实现为一个线性层,将所述运行特征数据编码为综合特征向量的过程,理论上也可以基于深层语义学习原理,采用神经网络模型来实现,因此,本实施例为拟合模型的灵活实施提供了多种解决方案,可供本领域技术人员参照实施。
请参阅图7,具体化的实施例中,所述步骤S3400、根据所述服务进程的拟合占用量与实际占用量之间的估计误差更新所述的权重向量,包括如下步骤:
步骤S3410、求取服务进程的拟合占用量与其实际占用量之间估计误差:
在拟合模型的训练阶段,对于一个样本数据的训练过程获得的拟合占用量而言,直接将拟合占用量减去相应的实际占用量,便可获得相应的估计误差。
步骤S3420、根据预设步长与所述估计误差的乘积确定权重调整系数:
在实施拟合模型的训练时,针对每一个设备标识相对应的权重向量,可以匹配一个预设步长,该预设步长可以控制权重向量的调节幅度,初始化时,可以为其赋予一个经验上合适的数值,例如0.01。
在获得所述的估计误差之后,便可根据该估计误差与预设步长的乘积确定为权重调整系数。
步骤S3430、更新所述权重向量,更新后的权重向量的各个权重为其原权重和其相对应的综合特征值与所述权重调整系数的乘积之间的差值:
按照:新权重=原权重-(权重调整系数*综合特征值),对权重向量中的各个权重进行权重更新。即,对于权重向量的一个元素而言,将该元素存储的原权重减去该权重调整系数与该元素相对应的综合特征向量中的综合特征值的乘积,所获得的差值作为该元素所存储的新的权重即可。
步骤S3440、根据更新后的所述权重向量调整所述的预设步长:
尽管所述权重向量获得了更新,但为提升拟合模型的收敛速度,还可进一步对所述的预设步长的数值进行调整,使该预设步长根据更新后的所述权重向量也进行关联更新,后续在更新后的权重向量和预设步长的作用下,理论上在对相同设备标识相对应的样本数据计算拟合占用量时,能够获得更接近于其相应的实际占用量的结果。
本实施例中,通过揭示权重向量与预设步长的关联更新逻辑,可以理解,权重向量能够根据拟合模型云计算出的拟合占用量进行动态更新,而预设步长也跟随权重向量相应更新,此一机制可促使拟合模型更快速收敛,降低训练成本,提升拟合占用量的计算精准度。
请参阅图8,进一步的实施例中,所述步骤S3440、根据更新后的所述权重向量调整所述的预设步长,包括如下步骤:
步骤S3441、根据更新后的权重向量与所述综合特征向量重新计算新的拟合占用量:
为了实现对所述的预设步长的计算,本实施例中,未采用按照预设定值调整预设步长的可选方式,而采用循环校验机制,来获得更优的调节效果。故此,本步骤中,可循环调用拟合模型关于拟合占用量的计算逻辑,利用更新后的权重向量匹配相应的综合特征向量,重新计算出新的拟合占用量。
步骤S3442、根据新的拟合占用量与相应的所述实际占用量重新计算新的估计误差:
同理,将新的拟合占用量减去原来随样本数据提供的实际占用量,重新获得新的估计误差。
步骤S3443、判断新的估计误差与原先获得的估计误差之间的方差是否大于0,当判断成立时,缩小所述的预设步长的数值:
对基于同一样本数据计算新的估计误差与原先的估计误差之间的方差,看该方差是否大于0,将比较新的估计误差的平方是否大于旧的估计误差的平方,当前者大于后者时,则将所述预设步长乘以一个给定的比例因子,使预设步长的数值被该比例因子大幅缩小,例如缩小为原值的1/10,从而实现对预设步长的具体调节。
本实施例中,采用循环校验机制,利用更新后的权重向量重新拟合占用量,根据新的拟合占用量重新计算估计误差,然后根据前后两个估计误差之间的平方差值的情况,对预设步长进行调节,使其缩小,实现使所述的预设步长跟随更新后的权重向量进行关联性动态调节的自动化机制,不同于采用定值调节预设步长的机制,能够更有助于拟合模型的快速收敛。
请参阅图9,深化的实施例中,所述步骤S1300、针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行,包括如下步骤:
步骤S1310、针对每个设备标识所指向的计算机设备中在运行的各个服务进程,将其相应的拟合占用量叠加该计算机设备中其他服务进程的当前实际占用量,作为每个服务进程加载所述新运行任务后,其所在的计算机设备的运行资源的预估使用总量:
请结合本申请典型实施列中对步骤S1300的揭示,可知,当希望将一个新运行任务分配至一个计算机设备的一个指定的服务进程中运行时,根据本申请各个实施例所揭示,便可获取该服务进程在该计算机设备中加载该新运行任务之后的运行资源的拟合占用量,并且,该计算机设备中的其他服务进程对该计算机设备中的运行资源的当前实际占用量也是可直接调用的,因此,可以将这一拟合占用量为其他服务进程的相应的当前实际占用量的加和,作为一旦将该新运行任务分配至该指定的服务进程中运行时,该计算机设备的运行资源的预估使用总量。
可以理解,理论上,对于同一计算机设备而言,实际上,若将所述新运行任务分配给该计算机设备中的每个服务进程,可能会得到不同的预估使用总量,对于将该新运行任务分配至服务集群中的其他计算机设备的各个服务进程也同理,因此,有必要将这些不同服务进程相对应的预估使用总量均一一计出,再行比较。
步骤S1320、根据所述预估使用总量计算相应的计算机设备的运行资源的余量:
不同于在先实施例直接利用预估使用总量选优,本实施例换用另一策略,具体而言,每一服务进程计出其相应的预估使用总量之后,将该服务进程所在的计算机设备的运行资源总量减去该预估使用总量,获得一旦相应的新运行使用置于该服务进程之后,会导致计算机设备剩余多少运行资源。因此,也可以理解,针对新运行任务分配至不同的服务进程,即使这些服务进程是在同一计算机设备中,也可根据各个相应的预选使用总量求得各个相应的余量。
步骤S1330、比较各个服务进程相对应的所述余量,将其中余量最高相对应的服务进程确定为目标服务进程,将所述新运行任务分配至该目标服务进程中运行:
可以理解,一台计算机设备运行一个新的任务之后,如果还能剩余更多运行资源,则对该计算机设备的运行显然更健康稳健。因此,通过比较各个服务进程相对应的运行资源的所述余量之间的大小,优先选用余量最高的服务进程作为目标服务进程,然后将新运行任务分配至目标服务进程中运行便完成调度。
本实施例中,采用优先确保计算机设备在其内部的服务进程加载新运行任务后仍拥有较高的运行资源余量为调度策略,实现在服务集群中为新运行任务选用计算机设备运行资源充裕的目标服务进程,保证服务集群的各个服务器的负载均衡,使各个服务器的运行更为稳健高效,确保每台服务器的计算机设备在执行任务时均能快速响应,由此,更能胜任运行资源密集型的任务处理。
请参阅图10,适应本申请的目的之一而提供的一种运行资源调度装置,包括:特征获取模块1100、用量拟合模块1200,以及预估分配模块1300,其中,所述特征获取模块1100,用于响应服务集群内新运行任务的创建事件,获取各服务进程分别包含该新运行任务及其当前运行任务在内的运行特征数据及该服务进程所在计算机设备的设备标识;所述用量拟合模块1200,用于针对各个设备标识所指向的计算机设备,采用预训练至收敛的拟合模型为所述运行特征数据匹配所述设备标识相对应的权重向量,计算出每个服务进程加载新运行任务之后对运行资源的拟合占用量;所述预估分配模块1300,用于针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行。
深化的实施例中,所述运行资源调度装置,还包括:样本获取模块,用于获取服务集群中各服务进程相对应的测试集,该测试集包括服务进程的所有当前运行任务相对应的运行特征数据、服务进程对运行资源的实际占用量及服务进程所在计算机设备的设备标识;训练执行模块,用于利用拟合模型对一个测试集中的运行特征数据匹配权重向量进行数据拟合,获得相应的服务进程占用所述设备标识所指向的计算机设备的运行资源的拟合占用量;传播更新模块,用于根据所述实际占用量与所述拟合占用量的差值梯度更新所述的权重向量以促进拟合模型收敛,在拟合模型未收敛时对拟合模型继续迭代训练。
具体化的实施例中,所述样本获取模块,包括:特征采集子模块,用于定时采集服务集群中各个服务进程相对应的运行特征数据,所述运行特征数据包括该服务进程中当前所有运行任务的关联于预选运行参数的综合特征值;实占采集子模块,用于关联采集所述各个服务进程所在的计算机设备的设备标识及各个服务进程在相应的计算机设备所占用的运行资源的实际占用量;样本构造子模块,用于将每个服务进程相对应的所述运行特征数据、所述实际占用量,以及所述设备标识构造为相应的测试集。
进一步的实施例中,所述特征采集子模块,包括:参数提取单元,用于获取每个服务进程中当前所有运行任务的预选运行参数;特征提取单元,用于从所述预选运行参数中提取出各个预选运行参数相对应的基础特征值;特征加工单元,用于对其中预定的部分基础特征值分别做平方运算获得相应的二阶复合特征值;特征综合单元,用于适应所有基础特征值与所有二阶复合特征值逐项进行所有运行任务的加和获得服务进程相对应的综合特征值,由所有综合特征值构成所述的运行特征数据。
较佳的实施例中,所述运行任务为用于对多个视频流进行混流转码的计算机任务;所述基础特征值包括如下任意多项构成的集合:输出音频码率、输入视频分辨率、输入视频帧率、输入视频码率、输入视频编码类型、输出视频分辨率、输出视频帧率、输出视频码率、输出视频编码类型;用于计算二阶复合特征值的所述部分基础特征值包括当所述集合相应将其包括时的如下至少一项:输出视频分辨率、输出视频帧率、输出视频码率、输出视频编码类型。
深化的实施例中,所述拟合模型,包括:输入预备模块,用于获取服务进程相对应的运行特征数据及其相对应的设备标识,所述运行特征数据包含多个综合特征值;特征归一模块,用于将所述运行特征数据所包含的综合特征值归一化为特定空间的向量表示,构成综合特征向量;拟合计算模块,用于根据与设备标识相对应的权重向量计算所述综合特征向量中各个综合特征值的加权和值作为所述服务进程的拟合占用量,所述权重向量包括与所述综合特征向量中的各个综合特征值相对应的多个相应权重;误差修正模块,用于根据所述服务进程的拟合占用量与实际占用量之间的估计误差更新所述的权重向量。
具体化的实施例中,所述误差修正模块,包括:误差预估子模块,用于求取服务进程的拟合占用量与其实际占用量之间估计误差;系统计算子模块,用于根据预设步长与所述估计误差的乘积确定权重调整系数;权重更新子模块,用于更新所述权重向量,更新后的权重向量的各个权重为其原权重和其相对应的综合特征值与所述权重调整系数的乘积之间的差值;步长调节子模块,用于根据更新后的所述权重向量调整所述的预设步长。
进一步的实施例中,所述步长调节子模块,包括:拟合重计单元,用于根据更新后的权重向量与所述综合特征向量重新计算新的拟合占用量;误差重计单元,用于根据新的拟合占用量与相应的所述实际占用量重新计算新的估计误差;步长微调单元,用于判断新的估计误差与原先获得的估计误差之间的方差是否大于0,当判断成立时,缩小所述的预设步长的数值。
深化的实施例中,所述预估分配模块1300,包括:分别预估子模块,用于针对每个设备标识所指向的计算机设备中在运行的各个服务进程,将其相应的拟合占用量叠加该计算机设备中其他服务进程的当前实际占用量,作为每个服务进程加载所述新运行任务后,其所在的计算机设备的运行资源的预估使用总量;比值计算子模块,用于根据所述预估使用总量计算相应的计算机设备的运行资源的余量;比较选优子模块,用于比较各个服务进程相对应的所述余量,将其中余量最高相对应的服务进程确定为目标服务进程,将所述新运行任务分配至该目标服务进程中运行。
为解决上述技术问题,本申请实施例还提供计算机设备。如图11所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种运行资源调度方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的运行资源调度方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图9中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的运行资源调度装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的运行资源调度方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本申请任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等计算机可读存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本申请能够利用服务集群中各个服务进程的运行特征数据自动更新拟合模型,使拟合模型能够适于为新运行任务估算其被加载后的拟合占用量,从而根据拟合占用量实现为该新运行任务匹配更优的目标服务进程,将其调度至该目标服务进程中执行,而取得整个服务集群的负载均衡的效果,尤其适于处理混流转码之类的运行资源密集型计算机任务的任务调度。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (12)
1.一种运行资源调度方法,其特征在于,包括如下步骤:
响应服务集群内新运行任务的创建事件,获取各服务进程分别包含该新运行任务及其当前运行任务在内的运行特征数据及该服务进程所在计算机设备的设备标识;
针对各个设备标识所指向的计算机设备,采用预训练至收敛的拟合模型为所述运行特征数据匹配所述设备标识相对应的权重向量,计算出每个服务进程加载新运行任务之后对运行资源的拟合占用量;
针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行。
2.根据权利要求1所述的运行资源调度方法,其特征在于,本方法还包括训练所述拟合模型的步骤:
获取服务集群中各服务进程相对应的测试集,该测试集包括服务进程的所有当前运行任务相对应的运行特征数据、服务进程对运行资源的实际占用量及服务进程所在计算机设备的设备标识;
利用拟合模型对一个测试集中的运行特征数据匹配权重向量进行数据拟合,获得相应的服务进程占用所述设备标识所指向的计算机设备的运行资源的拟合占用量;
根据所述实际占用量与所述拟合占用量的差值梯度更新所述的权重向量以促进拟合模型收敛,在拟合模型未收敛时对拟合模型继续迭代训练。
3.根据权利要求2所述的运行资源调度方法,其特征在于,获取服务集群中各服务进程相对应的测试集,包括如下步骤:
定时采集服务集群中各个服务进程相对应的运行特征数据,所述运行特征数据包括该服务进程中当前所有运行任务的关联于预选运行参数的综合特征值;
关联采集所述各个服务进程所在的计算机设备的设备标识及各个服务进程在相应的计算机设备所占用的运行资源的实际占用量;
将每个服务进程相对应的所述运行特征数据、所述实际占用量,以及所述设备标识构造为相应的测试集。
4.根据权利要求3所述的运行资源调度方法,其特征在于,定时采集服务集群中各个服务进程相对应的运行特征数据,包括如下步骤:
获取每个服务进程中当前所有运行任务的预选运行参数;
从所述预选运行参数中提取出各个预选运行参数相对应的基础特征值;
对其中预定的部分基础特征值分别做平方运算获得相应的二阶复合特征值;
适应所有基础特征值与所有二阶复合特征值逐项进行所有运行任务的加和获得服务进程相对应的综合特征值,由所有综合特征值构成所述的运行特征数据。
5.根据权利要求4所述的运行资源调度方法,其特征在于:
所述运行任务为用于对多个视频流进行混流转码的计算机任务;
所述基础特征值包括如下任意多项构成的集合:输出音频码率、输入视频分辨率、输入视频帧率、输入视频码率、输入视频编码类型、输出视频分辨率、输出视频帧率、输出视频码率、输出视频编码类型;
用于计算二阶复合特征值的所述部分基础特征值包括当所述集合相应将其包括时的如下至少一项:输出视频分辨率、输出视频帧率、输出视频码率、输出视频编码类型。
6.根据权利要求1至5中任意一项所述的运行资源调度方法,其特征在于,所述拟合模型执行如下步骤:
获取服务进程相对应的运行特征数据及其相对应的设备标识,所述运行特征数据包含多个综合特征值;
将所述运行特征数据所包含的综合特征值归一化为特定空间的向量表示,构成综合特征向量;
根据与设备标识相对应的权重向量计算所述综合特征向量中各个综合特征值的加权和值作为所述服务进程的拟合占用量,所述权重向量包括与所述综合特征向量中的各个综合特征值相对应的多个相应权重;
根据所述服务进程的拟合占用量与实际占用量之间的估计误差更新所述的权重向量。
7.根据权利要求6所述的运行资源调度方法,其特征在于,根据所述服务进程的拟合占用量与实际占用量之间的估计误差更新所述的权重向量,包括如下步骤:
求取服务进程的拟合占用量与其实际占用量之间估计误差;
根据预设步长与所述估计误差的乘积确定权重调整系数;
更新所述权重向量,更新后的权重向量的各个权重为其原权重和其相对应的综合特征值与所述权重调整系数的乘积之间的差值;
根据更新后的所述权重向量调整所述的预设步长。
8.根据权利要求7所述的运行资源调度方法,其特征在于,根据更新后的所述权重向量调整所述的预设步长,包括如下步骤:
根据更新后的权重向量与所述综合特征向量重新计算新的拟合占用量;
根据新的拟合占用量与相应的所述实际占用量重新计算新的估计误差;
判断新的估计误差与原先获得的估计误差之间的方差是否大于0,当判断成立时,缩小所述的预设步长的数值。
9.根据权利要求1至5中任意一项所述的运行资源调度方法,其特征在于,针对每个设备标识指向的计算机设备,根据其中各个服务进程相应的拟合占用量计算其加载所述新运行任务后计算机设备运行资源的预估使用总量,将所述新运行任务分配至预估使用总量最优的计算机设备的服务进程中运行,包括如下步骤:
针对每个设备标识所指向的计算机设备中在运行的各个服务进程,将其相应的拟合占用量叠加该计算机设备中其他服务进程的当前实际占用量,作为每个服务进程加载所述新运行任务后,其所在的计算机设备的运行资源的预估使用总量;
根据所述预估使用总量计算相应的计算机设备的运行资源的余量;
比较各个服务进程相对应的所述余量,将其中余量最高相对应的服务进程确定为目标服务进程,将所述新运行任务分配至该目标服务进程中运行。
10.一种计算机设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至8中任意一项所述的方法的步骤。
11.一种计算机可读存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至8中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
12.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至8任意一项中所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111280122.7A CN113918306A (zh) | 2021-10-28 | 2021-10-28 | 运行资源调度方法及其装置、设备、介质、产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111280122.7A CN113918306A (zh) | 2021-10-28 | 2021-10-28 | 运行资源调度方法及其装置、设备、介质、产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918306A true CN113918306A (zh) | 2022-01-11 |
Family
ID=79243762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111280122.7A Pending CN113918306A (zh) | 2021-10-28 | 2021-10-28 | 运行资源调度方法及其装置、设备、介质、产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918306A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598927A (zh) * | 2022-03-03 | 2022-06-07 | 京东科技信息技术有限公司 | 转码资源的调度方法、系统以及调度装置 |
-
2021
- 2021-10-28 CN CN202111280122.7A patent/CN113918306A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598927A (zh) * | 2022-03-03 | 2022-06-07 | 京东科技信息技术有限公司 | 转码资源的调度方法、系统以及调度装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3516516B1 (en) | Dynamic resource allocation for application containers | |
Kliazovich et al. | CA-DAG: Modeling communication-aware applications for scheduling in cloud computing | |
CN106385468B (zh) | Web集群的可预测动态负载均衡方法 | |
CN105376317A (zh) | 负载均衡的控制方法及装置 | |
CN112380020A (zh) | 一种算力资源分配方法、装置、设备及存储介质 | |
CN110198339A (zh) | 一种基于QoE感知的边缘计算任务调度方法 | |
CN104503832A (zh) | 一种公平和效率均衡的虚拟机调度系统及方法 | |
CN111131486A (zh) | 执行节点的负载调节方法、装置、服务器及存储介质 | |
CN111400007A (zh) | 一种基于边缘计算的任务调度方法和系统 | |
CN103988179A (zh) | 用于在地理分布数据中心中降低延迟和改善弹性的优化机制 | |
CN115914392A (zh) | 算力网络资源调度方法及系统 | |
CN109117254A (zh) | 一种深度学习框架的调度方法及系统 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
CN113918306A (zh) | 运行资源调度方法及其装置、设备、介质、产品 | |
Menouer et al. | New scheduling strategy based on multi-criteria decision algorithm | |
CN114553723A (zh) | 一种人工智能训练平台的运营方法、系统、介质及设备 | |
CN114546646A (zh) | 处理方法和处理装置 | |
Qin et al. | Optimal workload allocation for edge computing network using application prediction | |
Zhang et al. | Multi-resource fair allocation for cloud federation | |
Imdoukh et al. | Optimizing scheduling decisions of container management tool using many‐objective genetic algorithm | |
CN106789853A (zh) | 一种转码器的动态调度方法及装置 | |
Zhu et al. | A multi-resource scheduling scheme of Kubernetes for IIoT | |
CN113055199B (zh) | 网关访问方法、装置及网关设备 | |
CN111158893A (zh) | 应用于雾计算网络的任务卸载方法、系统、设备及介质 | |
CN114035940A (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 |