CN115080215A - 由状态监控芯片在计算节点间进行任务调度的方法及系统 - Google Patents
由状态监控芯片在计算节点间进行任务调度的方法及系统 Download PDFInfo
- Publication number
- CN115080215A CN115080215A CN202211003899.3A CN202211003899A CN115080215A CN 115080215 A CN115080215 A CN 115080215A CN 202211003899 A CN202211003899 A CN 202211003899A CN 115080215 A CN115080215 A CN 115080215A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- computing node
- state
- current
- 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- 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/505—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 load
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Abstract
本发明公开了一种由状态监控芯片在计算节点间进行任务调度的方法及系统,涉及芯片应用技术,方法包括:在当前计算节点的运行状态进入高负载状态时,由状态监控芯片获取当前计算节点的任务状态信息,并进行解析以获得多个任务状态记录;基于多个任务状态记录从多个任务中选择需要进行调度的至少一个调度任务;获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,确定每个相邻计算节点的节点负载信息;在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,并基于调度任务和目标计算节点生成用于在计算节点间进行任务调度的调度信息;以及基于调度信息将每个调度任务发送给相应的目标计算节点。
Description
技术领域
本发明涉及芯片应用技术,并且更具体地,涉及一种由状态监控芯片在计算节点间进行任务调度的方法及系统。
背景技术
目前,在云计算、分布式计算等计算领域,通常使用多个计算节点来完成海量计算任务。计算平台或服务节点可能会将计算任务分为多个任务,并将每个任务分配给计算节点进行计算,从而通过多个计算节点的协同计算来完成任务。
然而,在实际运行中,部分计算节点的任务可能将较长时间段内处于高负载状态,导致这部分计算节点的响应延迟较大,并且由于这部分计算节点的任务完成较慢,不利于计算任务整体的完成时间。
此外,目前的任务调度方式通常是由计算平台或服务节点来完成,这种方式的处理延迟较大,并且容易造成多余的通信和数据传输成本。为此,需要一种改进的技术方案。
发明内容
为了解决现有技术中的问题,本申请利用计算节点内置的状态监控芯片,通过获取相邻计算节点的运行状态直接在计算节点间进行任务调度,并且在任务调度分配后,将调度信息上报给计算平台或服务节点。
根据本发明的一个方面,提供一种由状态监控芯片在计算节点间进行任务调度的方法,所述方法包括:
在当前计算节点内置的状态监控芯片确定所述当前计算节点的运行状态进入高负载状态时,由所述状态监控芯片获取当前计算节点的任务状态信息,并对任务状态信息进行解析以获得多个任务状态记录;
所述状态监控芯片对所述当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态,使得所述当前计算节点暂停处理新接收的任务;
基于所述多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务;
所述状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,根据节点状态信息确定每个相邻计算节点的节点负载信息;
在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,并基于调度任务和目标计算节点生成用于在计算节点间进行任务调度的调度信息;以及
由状态监控芯片将所述调度信息上传给服务节点,并基于所述调度信息将每个调度任务发送给相应的目标计算节点。
优选地,还包括,
在时间进入当前时间区段后,所述状态监控芯片从服务节点接收所述当前计算节点的归属区域的与所述当前时间区段相邻的上一个时间区段的节点统计信息;
所述状态监控芯片从所述节点统计信息中获取归属区域内每个计算节点在所述上一个时间区段内的运行统计信息;
所述状态监控芯片根据归属区域内每个计算节点在所述上一个时间区段内的运行统计信息,确定当前计算节点的负载检测粒度。
优选地,在确定当前计算节点的负载检测粒度之后,还包括,
状态监控芯片获取所述当前计算节点的运行数据;
基于所述负载检测粒度对所述当前计算节点的运行数据进行处理,以生成经过处理的运行数据;
基于所述经过处理的运行数据,计算所述当前计算节点的动态负载率;以及
基于所述动态负载率确定当前计算节点的运行状态,所述运行状态包括:正常负载状态和高负载状态。
优选地,还包括,在所述上一个时间区段期满时,所述服务节点向归属区域内的每个计算节点发送信息上报指示;
响应于接收到所述信息上报指示,每个计算节点将所述上一个时间区段内的运行统计信息发送给所述服务节点;
所述服务节点将每个计算节点在所述上一个时间区段内的运行统计信息组成归属区域的上一个时间区段的节点统计信息;以及
在时间进入当前时间区段,将归属区域的上一个时间区段的节点统计信息发送给归属区域内的每个计算节点。
优选地,其中,所述状态监控芯片根据归属区域内每个计算节点在所述上一个时间区段内的运行统计信息,确定当前计算节点的负载检测粒度,包括:
所述状态监控芯片对归属区域内每个计算节点在所述上一个时间区段内的运行统计信息进行解析,以获取所述上一个时间区段内归属区域的每个计算节点的完成任务的数量和每个任务的处理时间;
确定在上一个时间区段内,当前计算节点的完成任务的数量和每个任务的处理时间;
根据当前计算节点的完成任务的数量和每个任务的处理时间,以及归属区域的每个计算节点的完成任务的数量和每个任务的处理时间,确定当前计算节点的负载检测粒度。
优选地,其中,根据当前计算节点的完成任务的数量和每个任务的处理时间,以及归属区域的每个计算节点的完成任务的数量和每个任务的处理时间,确定当前计算节点的负载检测粒度,包括:
基于归属区域的每个计算节点的每个任务的处理时间,确定每个计算节点的任务的平均处理时间TAi、任务的处理时间的中位数TMi、处理时间大于第一时间阈值的任务的数量TLi、处理时间小于第二时间阈值的任务的数量TSi;
其中,n为归属区域内计算节点的数量,i和n为自然数,,TAc为当前计算节点的任务的平均处理时间、TMc为当前计算节点的任务的处理时间的中位数、TLc为当前计算节点的处理时间大于第一时间阈值的任务的数量、TSc为当前计算节点的处理时间小于第二时间阈值的任务的数量、TAi为第i个计算节点的任务的平均处理时间、TMi为第i个计算节点的任务的处理时间的中位数、TLi为第i个计算节点的处理时间大于第一时间阈值的任务的数量、TSi为第i个计算节点的处理时间小于第二时间阈值的任务的数量;为预设检测粒度;为第一加权因子,为第二加权因子,。
优选地,其中,状态监控芯片获取所述当前计算节点的运行数据,包括:
所述状态监控芯片获取所述当前计算节点的运行日志;
将所述运行日志中位于上一个时间区段内的日志数据作为所述当前计算节点的运行数据,所述运行数据包括:以秒为统计单位的处理器使用率、以秒为统计单位的内存空闲率和磁盘的每秒输入输出量IOPS。
优选地,其中,基于所述负载检测粒度对所述当前计算节点的运行数据进行处理,以生成经过处理的运行数据,包括
基于所述负载检测粒度确定用于运行数据的时间单元;
基于以秒为统计单位的处理器使用率和时间单元,确定上一个时间区段内每个时间单元内的处理器使用率的均值;
基于以秒为统计单位的内存空闲率和时间单元,确定上一个时间区段内每个时间单元内的内存空闲率的均值;
基于磁盘的每秒输入输出量IOPS和时间单元,确定上一个时间区段内每个时间单元内的IOPS的均值;
将上一个时间区段内每个时间单元内的处理器使用率的均值、内存空闲率的均值以及IOPS的均值,作为经过处理的运行数据。
优选地,其中,基于所述经过处理的运行数据,计算所述当前计算节点的动态负载率,包括
将至少两个在时间上相邻的检测时间单元组成为候选时间区段,以获得多个候选时间区段;
将所包括的检测时间单元的数量最多的候选时间区段,选择作为检测时间区段;
基于检测时间区段内的经过处理的运行数据,计算所述当前计算节点的动态负载率。
优选地,其中,基于检测时间区段内的经过处理的运行数据,计算所述当前计算节点的动态负载率L,包括:
将上一个时间区段内每个时间单元内的处理器使用率的均值、内存空闲率的均值以及IOPS的均值,作为经过处理的运行数据。
其中,m为检测时间区段内检测时间单元的数量,j和m为自然数,,Cj为第j个检测时间单元的处理器使用率的均值,为处理器使用率阈值,Mj为第j个检测时间单元的内存空闲率的均值,为内存空闲率的阈值,为第j个检测时间单元内IOPS的均值;为IOPS数量阈值;a为大于2的自然数。
优选地,其中,基于所述动态负载率确定当前计算节点的运行状态,包括:
当所述动态负载率小于或等于负载率阈值时,确定当前计算节点的运行状态为正常负载状态;
当所述动态负载率大于负载率阈值时,确定当前计算节点的运行状态为高负载状态。
优选地,所述当前计算节点的任务状态信息包括当前计算节点的多个任务状态记录;
其中每个任务状态记录包括:任务信息、任务完成比率、任务的接收时间和任务标识符,当前计算节点的每个任务状态记录对应于当前计算节点中处理完成的或正在处理中的每个任务;
所述任务信息包括:任务的总预设处理时间长度、关联任务的数量和关联任务的标识符。
优选地,所述当前计算节点的任务状态信息存储在当前计算节点的日志存储设备中。当检测到新接收的任务时,在所述日志存储设备的任务状态信息中,为所述新接收的任务创建任务状态记录。
优选地,其中,由所述状态监控芯片获取当前计算节点的任务状态信息,包括:
所述状态监控芯片从日志存储设备获取当前计算节点的任务状态信息。
优选地,其中,所述状态监控芯片对所述当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,包括:
所述状态监控芯片对所述当前计算节点进入高负载状态后新接收的任务添加接收时间标志,利用所述接收时间标志对接收时间进行记录;或者,
所述状态监控芯片为所述当前计算节点进入高负载状态后新接收的任务生成任务状态记录,将任务完成比率设置为0,将任务的接收时间设置为当前时间。
优选地,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态后,还包括:
在日志存储设备所存储的当前计算节点的任务状态信息中,为所述新接收的任务创建任务状态记录。
优选地,在所述当前计算节点暂停处理新接收的任务后,向所述新接收的任务的发起方发送用于指示暂停处理的响应消息。
优选地,其中,基于所述多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,包括:
对所述多个任务状态记录进行遍历,将任务完成比率小于完成度阈值(例如,90%)的任务确定为处于处理状态中的任务,从而确定处于处理状态中的多个任务;
根据处于处理状态中的每个任务的任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息。
优选地,在确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息之后还包括,
基于当前计算节点内处于处理状态中的每个任务的任务状态记录中的任务完成比率和每个任务的任务信息中的任务的预设处理时间长度,计算每个任务的剩余处理时间长度:
基于每个任务的剩余处理时间长度,确定当前计算节点内处于处理状态中的多个任务的剩余处理时间长度的平均值。
优选地,其中,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务,包括:
将任务信息中关联任务的数量为零的任务确定为候选调度任务,以确定多个候选调度任务;
将剩余处理时间长度大于剩余处理时间长度的平均值的候选调度任务,确定为调度任务,从而确定需要进行调度的至少一个调度任务。
优选地,其中,所述状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,包括:
所述当前计算节点的状态监控芯片促使向当前计算节点相邻的每个相邻计算节点发送状态查询请求;
响应于接收到状态查询请求,每个相邻计算节点生成各自的节点负载信息,并将节点负载信息和计算节点标识符封装为节点状态信息,其中所述节点负载信息包括:计算节点的当前的计算资源占用率,所述当前的计算资源占用率为当前的处理器使用率和当前的内存使用率的平均值;以及
每个相邻计算节点将各自的节点状态信息发送给所述当前计算节点,使得状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息;
其中,在所述当前计算节点的归属区域内,为当前计算节点预先设置多个相邻计算节点;
或者,当前计算节点相邻的每个相邻计算节点是与所述当前计算节点的物理距离小于物理距离阈值的计算节点,所述物理距离为直线距离或路径距离,物理距离阈值为直线距离阈值或路径距离阈值;
或者,当前计算节点相邻的每个相邻计算节点是与所述当前计算节点的网络距离小于网络距离阈值的计算节点,所述网络距离为网络跳数,所述网络距离阈值为网络调数阈值。
优选地,其中,根据节点状态信息确定每个相邻计算节点的节点负载信息,包括:
对节点状态信息进行解析,以确定每个相邻计算节点的节点负载信息。
优选地,其中,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:
按照剩余处理时间长度的降序顺序,对调度任务进行排序,从而生成调度任务列表;
基于节点负载信息中当前的计算资源占用率的升序顺序,对相邻计算节点进行排序,从而生成相邻计算节点列表;
基于调度任务列表和相邻计算节点列表,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点。
优选地,基于调度任务列表和相邻计算节点列表,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:
按照调度任务列表中剩余处理时间长度的降序顺序,依次取出调度任务,并按照相邻计算节点列表中当前的计算资源占用率的升序顺序,依次序选择作为任务调度目的地的目标计算节点;
当调度任务的数量大于相邻计算节点的数量时,按照相邻计算节点列表中当前的计算资源占用率的升序顺序,再次依次序选择作为任务调度目的地的目标计算节点,直到所有的调度任务全部选择了目标计算节点为止。
优选地,基于调度任务列表和相邻计算节点列表,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:
按照调度任务列表中剩余处理时间长度的降序顺序,依次取出调度任务,并按照相邻计算节点列表中当前的计算资源占用率的升序顺序,依次序选择作为任务调度目的地的目标计算节点;
当调度任务的数量大于相邻计算节点的数量时,将当前的计算资源占用率最小的相邻计算节点选择作为所有还未选择目标计算节点的调度任务的目标计算节点。
优选地,其中,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:
在多个相邻计算节点中,为每个调度任务分别随机选择作为任务调度目的地的目标计算节点。
优选地,所述调度信息包括多个调度信息项,每个调度信息项包括:调度任务的标识符、调度任务的任务信息、目标计算节点的标识符、目标计算节点的网络地址、当前计算节点的标识符、当前计算节点的网络地址、调度任务的发起方的标识符以及调度任务的发起方的网络地址。
优选地,在由状态监控芯片将所述调度信息上传给服务节点之后,还包括:
由服务节点基于调度信息对每个调度任务的任务状态进行监控;和/或
由当前计算节点的状态监控芯片基于调度信息对每个调度任务的任务状态进行监控。
优选地,其中,基于所述调度信息将每个调度任务发送给相应的目标计算节点,包括:
当前计算节点的状态监控芯片基于所述调度信息将每个调度任务发送给相应的目标计算节点,以使得目标计算节点对所接收到的调度任务进行继续处理;
还包括,所述当前计算节点的状态监控芯片将调度信息发送给每个目标计算节点;
当所接收到的调度任务处理完成时,目标计算节点基于调度信息将计算结果发送给调度任务的发起方,并将指示调度任务处理完成的通知消息发送给当前计算节点的状态监控芯片。
优选地,在基于所述调度信息将每个调度任务发送给相应的目标计算节点后,将所述当前计算节点的本地缓存中的任务设置为处理状态,并按照所记录的接收时间对本地缓存中的任务进行处理。
根据本发明的另一方面,提供一种由状态监控芯片在计算节点间进行任务调度的系统,所述系统包括:
获取装置,用于促使在当前计算节点内置的状态监控芯片确定所述当前计算节点的运行状态进入高负载状态时,由所述状态监控芯片获取当前计算节点的任务状态信息,并对任务状态信息进行解析以获得多个任务状态记录;
设置装置,用于促使所述状态监控芯片对所述当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态,使得所述当前计算节点暂停处理新接收的任务;
第一选择装置,用于促使基于所述多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务;
确定装置,用于促使所述状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,根据节点状态信息确定每个相邻计算节点的节点负载信息;
第二选择装置,用于促使在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,并基于调度任务和目标计算节点生成用于在计算节点间进行任务调度的调度信息;以及
通信装置,用于促使由状态监控芯片将所述调度信息上传给服务节点,并基于所述调度信息将每个调度任务发送给相应的目标计算节点。
基于本发明实施例的又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行上述任一实施例所述的方法。
基于本发明实施例的再一方面,提供了一种电子设备,所述电子设备包括:处理器和存储器;其中,
所述存储器,用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一实施例所述的方法。
基于本发明实施例的再一方面,提供了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现上述任一实施例所述的方法。
根据本发明实施方式的由状态监控芯片在计算节点间进行任务调度的方法及系统、计算机可读存储介质、电子设备以及计算机程序产品,通过状态监控芯片在计算节点间直接进行任务调度,提升了任务调度的处理速度,使得高负载状态的计算节点能够快速地恢复到正常负载状态。并且,由于本申请在进行任务调度,不需要计算平台或服务节点进行具体调度工作,节省了大量的通信或传输代价,避免了网络拥塞且提升了任务调度的效率。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明实施方式的由状态监控芯片在计算节点间进行任务调度的方法的流程图;
图2为根据本发明实施方式的归属区域内的节点示意图;
图3为根据本发明实施方式的由状态监控芯片在计算节点间进行任务调度的系统的结构示意图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明实施方式的由状态监控芯片在计算节点间进行任务调度的方法的流程图。如图1所示,方法100包括:
步骤101,在当前计算节点内置的状态监控芯片确定当前计算节点的运行状态进入高负载状态时,由状态监控芯片获取当前计算节点的任务状态信息,并对任务状态信息进行解析以获得多个任务状态记录。
在一个实例中,还包括,在时间进入当前时间区段后,状态监控芯片从服务节点接收当前计算节点的归属区域的与当前时间区段相邻的上一个时间区段的节点统计信息;状态监控芯片从节点统计信息中获取归属区域内每个计算节点在上一个时间区段内的运行统计信息;状态监控芯片根据归属区域内每个计算节点在上一个时间区段内的运行统计信息,确定当前计算节点的负载检测粒度。
图2为根据本发明实施方式的归属区域内的节点示意图。如图2所示,在云计算系统中,包括多个归属区域。其中每个归属区域中包括多个计算节点和服务节点。在一个实施例中,在特定情况下,具有至少一个服务节点,以实现数据冗余性以及数据备份等功能。服务节点用于对归属区域内的多个计算节点进行任务分配、任务管理、任务统计、数据统计等各种功能。每个计算节点至少包括:状态监控芯片、通信组件和任务处理组件。其中任务处理组件可以包括任何可以预料的设备或器件,例如,至少一个处理器、存储器、缓存、内存等。任务处理组件用于执行计算任务。通信组件用于与其他计算节点(归属区域内的其它计算节点)或服务节点进行通信。例如,为了进行说明,在从多个计算节点中选择或确定了当前计算节点后,将与当前计算节点相邻的计算节点标注为相邻计算节点,将与当前计算节点不相邻的计算节点标注为相邻计算节点。实际上,归属区域内的每个计算节点都可以被选择作为当前计算节点。
在一个实施例中,在确定当前计算节点的负载检测粒度之后,还包括,状态监控芯片获取当前计算节点的运行数据;基于负载检测粒度对当前计算节点的运行数据进行处理,以生成经过处理的运行数据; 基于经过处理的运行数据,计算当前计算节点的动态负载率;以及基于动态负载率确定当前计算节点的运行状态,运行状态包括:正常负载状态和高负载状态。
在一个实施例中,还包括,在上一个时间区段期满时,服务节点向归属区域内的每个计算节点发送信息上报指示;响应于接收到信息上报指示,每个计算节点将上一个时间区段内的运行统计信息发送给服务节点;服务节点将每个计算节点在上一个时间区段内的运行统计信息组成归属区域的上一个时间区段的节点统计信息;以及在时间进入当前时间区段,将归属区域的上一个时间区段的节点统计信息发送给归属区域内的每个计算节点。例如,上一个时间区段为2022年5月1日0点至5日24点,并且当前时间区段从2022年5月6日0点开始,并且当前时间区段的结束时间为2022年5月10日24点。例如,当前时间为2022年5月6日0点25分。
在一个实施例中,其中,状态监控芯片根据归属区域内每个计算节点在上一个时间区段内的运行统计信息,确定当前计算节点的负载检测粒度,包括:状态监控芯片对归属区域内每个计算节点在上一个时间区段内的运行统计信息进行解析,以获取上一个时间区段内归属区域的每个计算节点的完成任务的数量和每个任务的处理时间;确定在上一个时间区段内,当前计算节点的完成任务的数量和每个任务的处理时间;根据当前计算节点的完成任务的数量和每个任务的处理时间,以及归属区域的每个计算节点的完成任务的数量和每个任务的处理时间,确定当前计算节点的负载检测粒度。
在一个实施例中,其中,根据当前计算节点的完成任务的数量和每个任务的处理时间,以及归属区域的每个计算节点的完成任务的数量和每个任务的处理时间,确定当前计算节点的负载检测粒度,包括:基于归属区域的每个计算节点的每个任务的处理时间,确定每个计算节点的任务的平均处理时间TAi、任务的处理时间的中位数TMi、处理时间大于第一时间阈值的任务的数量TLi、处理时间小于第二时间阈值的任务的数量TSi;
其中,n为归属区域内计算节点的数量,i和n为自然数,,TAc为当前计算节点的任务的平均处理时间(例如,所有任务的平均处理时间)、TMc为当前计算节点的任务的处理时间的中位数(例如,所有任务的处理时间的中位数)、TLc为当前计算节点的处理时间大于第一时间阈值的任务的数量、TSc为当前计算节点的处理时间小于第二时间阈值的任务的数量、TAi为第i个计算节点的任务的平均处理时间(例如,所有任务的平均处理时间)、TMi为第i个计算节点的任务的处理时间的中位数(例如,所有任务的处理时间的中位数)、TLi为第i个计算节点的处理时间大于第一时间阈值的任务的数量、TSi为第i个计算节点的处理时间小于第二时间阈值的任务的数量;为预设检测粒度;为第一加权因子,为第二加权因子,。
在一个实施例中,其中,状态监控芯片获取当前计算节点的运行数据,包括:状态监控芯片获取当前计算节点的运行日志;将运行日志中位于上一个时间区段内的日志数据作为当前计算节点的运行数据,运行数据包括:以秒为统计单位的处理器使用率、以秒为统计单位的内存空闲率和磁盘的每秒输入输出量IOPS。
在一个实施例中,其中,基于负载检测粒度对当前计算节点的运行数据进行处理,以生成经过处理的运行数据,包括:基于负载检测粒度确定用于运行数据的时间单元;基于以秒为统计单位的处理器使用率和时间单元,确定上一个时间区段内每个时间单元内的处理器使用率的均值;基于以秒为统计单位的内存空闲率和时间单元,确定上一个时间区段内每个时间单元内的内存空闲率的均值;基于磁盘的每秒输入输出量IOPS和时间单元,确定上一个时间区段内每个时间单元内的IOPS的均值;将上一个时间区段内每个时间单元内的处理器使用率的均值、内存空闲率的均值以及IOPS的均值,作为经过处理的运行数据。
在一个实施例中,其中,基于经过处理的运行数据,计算当前计算节点的动态负载率,包括:将所有时间单元中,处理器使用率的均值大于处理器使用率阈值的时间单元选择作为检测时间单元;将至少两个在时间上相邻的检测时间单元组成为候选时间区段,以获得多个候选时间区段;将所包括的检测时间单元的数量最多的候选时间区段,选择作为检测时间区段;基于检测时间区段内的经过处理的运行数据,计算当前计算节点的动态负载率。
在一个实施例中,其中,基于检测时间区段内的经过处理的运行数据,计算当前计算节点的动态负载率L,包括:确定检测时间区段中Mj大于或等于内存空闲率的阈值并且小于或等于IOPS数量阈值的检测时间单元的数量A1;
将上一个时间区段内每个时间单元内的处理器使用率的均值、内存空闲率的均值以及IOPS的均值,作为经过处理的运行数据。
其中,m为检测时间区段内检测时间单元的数量,j和m为自然数,,Cj为第j个检测时间单元的处理器使用率的均值,为处理器使用率阈值,Mj为第j个检测时间单元的内存空闲率的均值,为内存空闲率的阈值,为第j个检测时间单元内IOPS的均值;为IOPS数量阈值;a为大于2的自然数。
在一个实施例中,其中,基于动态负载率确定当前计算节点的运行状态,包括:当动态负载率小于或等于负载率阈值时,确定当前计算节点的运行状态为正常负载状态;当动态负载率大于负载率阈值时,确定当前计算节点的运行状态为高负载状态。
步骤102,状态监控芯片对当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态,使得当前计算节点暂停处理新接收的任务。
在一个实施例中,当前计算节点的任务状态信息包括当前计算节点的多个任务状态记录;其中每个任务状态记录包括:任务信息、任务完成比率、任务的接收时间和任务标识符,当前计算节点的每个任务状态记录对应于当前计算节点中处理完成的或正在处理中的每个任务;任务信息包括:任务的总预设处理时间长度、关联任务的数量和关联任务的标识符。
在一个实施例中,当前计算节点的任务状态信息存储在当前计算节点的日志存储设备中。当检测到新接收的任务时,在日志存储设备的任务状态信息中,为新接收的任务创建任务状态记录。
在一个实施例中,其中,由状态监控芯片获取当前计算节点的任务状态信息,包括:状态监控芯片从日志存储设备获取当前计算节点的任务状态信息。
在一个实施例中,其中,状态监控芯片对当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,包括:状态监控芯片对当前计算节点进入高负载状态后新接收的任务添加接收时间标志,利用接收时间标志对接收时间进行记录;或者,状态监控芯片为当前计算节点进入高负载状态后新接收的任务生成任务状态记录,将任务完成比率设置为0,将任务的接收时间设置为当前时间。
在一个实施例中,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态后,还包括:在日志存储设备所存储的当前计算节点的任务状态信息中,为新接收的任务创建任务状态记录。
在一个实施例中,在当前计算节点暂停处理新接收的任务后,向新接收的任务的发起方发送用于指示暂停处理的响应消息。
步骤103,基于多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务。
在一个实施例中,其中,基于多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,包括:对多个任务状态记录进行遍历,将任务完成比率小于完成度阈值(例如,完成度阈值为90%、80%等)的任务确定为处于处理状态中的任务,从而确定处于处理状态中的多个任务;
根据处于处理状态中的每个任务的任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息。
在一个实施例中,在确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息之后还包括,
基于当前计算节点内处于处理状态中的每个任务的任务状态记录中的任务完成比率和每个任务的任务信息中的任务的预设处理时间长度,计算每个任务的剩余处理时间长度:
基于每个任务的剩余处理时间长度,确定当前计算节点内处于处理状态中的多个任务的剩余处理时间长度的平均值。
在一个实施例中,其中,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务,包括:将任务信息中关联任务的数量为零的任务确定为候选调度任务,以确定多个候选调度任务;将剩余处理时间长度大于剩余处理时间长度的平均值的候选调度任务,确定为调度任务,从而确定需要进行调度的至少一个调度任务。
步骤104,状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,根据节点状态信息确定每个相邻计算节点的节点负载信息。
在一个实施例中,其中,状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,包括:当前计算节点的状态监控芯片促使向当前计算节点相邻的每个相邻计算节点发送状态查询请求;响应于接收到状态查询请求,每个相邻计算节点生成各自的节点负载信息,并将节点负载信息和计算节点标识符封装为节点状态信息,其中节点负载信息包括:计算节点的当前的计算资源占用率,当前的计算资源占用率为当前的处理器使用率和当前的内存使用率的平均值;以及每个相邻计算节点将各自的节点状态信息发送给当前计算节点,使得状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息;
其中,在当前计算节点的归属区域内,为当前计算节点预先设置多个相邻计算节点;或者,当前计算节点相邻的每个相邻计算节点是与当前计算节点的物理距离小于物理距离阈值的计算节点,物理距离为直线距离或路径距离,物理距离阈值为直线距离阈值或路径距离阈值;或者,当前计算节点相邻的每个相邻计算节点是与当前计算节点的网络距离小于网络距离阈值的计算节点,网络距离为网络跳数,网络距离阈值为网络调数阈值。
在一个实施例中,其中,根据节点状态信息确定每个相邻计算节点的节点负载信息,包括:对节点状态信息进行解析,以确定每个相邻计算节点的节点负载信息。
步骤105,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,并基于调度任务和目标计算节点生成用于在计算节点间进行任务调度的调度信息。
在一个实施例中,其中,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:按照剩余处理时间长度的降序顺序,对调度任务进行排序,从而生成调度任务列表;基于节点负载信息中当前的计算资源占用率的升序顺序,对相邻计算节点进行排序,从而生成相邻计算节点列表;基于调度任务列表和相邻计算节点列表,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点。
在一个实施例中,基于调度任务列表和相邻计算节点列表,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:按照调度任务列表中剩余处理时间长度的降序顺序,依次取出调度任务,并按照相邻计算节点列表中当前的计算资源占用率的升序顺序,依次序选择作为任务调度目的地的目标计算节点;当调度任务的数量大于相邻计算节点的数量时,按照相邻计算节点列表中当前的计算资源占用率的升序顺序,再次依次序选择作为任务调度目的地的目标计算节点,直到所有的调度任务全部选择了目标计算节点为止。
在一个实施例中,基于调度任务列表和相邻计算节点列表,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:按照调度任务列表中剩余处理时间长度的降序顺序,依次取出调度任务,并按照相邻计算节点列表中当前的计算资源占用率的升序顺序,依次序选择作为任务调度目的地的目标计算节点;当调度任务的数量大于相邻计算节点的数量时,将当前的计算资源占用率最小的相邻计算节点选择作为所有还未选择目标计算节点的调度任务的目标计算节点。
在一个实施例中,其中,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:在多个相邻计算节点中,为每个调度任务分别随机选择作为任务调度目的地的目标计算节点。
步骤106,由状态监控芯片将调度信息上传给服务节点,并基于调度信息将每个调度任务发送给相应的目标计算节点。
在一个实施例中,调度信息包括多个调度信息项,每个调度信息项包括:调度任务的标识符、调度任务的任务信息、目标计算节点的标识符、目标计算节点的网络地址、当前计算节点的标识符、当前计算节点的网络地址、调度任务的发起方的标识符以及调度任务的发起方的网络地址。
在一个实施例中,在由状态监控芯片将调度信息上传给服务节点之后,还包括:由服务节点基于调度信息对每个调度任务的任务状态进行监控;和/或由当前计算节点的状态监控芯片基于调度信息对每个调度任务的任务状态进行监控。
在一个实施例中,其中,基于调度信息将每个调度任务发送给相应的目标计算节点,包括:当前计算节点的状态监控芯片基于调度信息将每个调度任务发送给相应的目标计算节点,以使得目标计算节点对所接收到的调度任务进行继续处理;
还包括,当前计算节点的状态监控芯片将调度信息发送给每个目标计算节点;当所接收到的调度任务处理完成时,目标计算节点基于调度信息将计算结果发送给调度任务的发起方,并将指示调度任务处理完成的通知消息发送给当前计算节点的状态监控芯片。
在一个实施例中,在基于调度信息将每个调度任务发送给相应的目标计算节点后,将当前计算节点的本地缓存中的任务设置为处理状态,并按照所记录的接收时间对本地缓存中的任务进行处理。
图3为根据本发明实施方式的由状态监控芯片在计算节点间进行任务调度的系统的结构示意图。如图3所示,系统300包括:
获取装置301,用于促使在当前计算节点内置的状态监控芯片确定当前计算节点的运行状态进入高负载状态时,由状态监控芯片获取当前计算节点的任务状态信息,并对任务状态信息进行解析以获得多个任务状态记录。
设置装置302,用于促使状态监控芯片对当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态,使得当前计算节点暂停处理新接收的任务。
第一选择装置303,用于促使基于多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务。
确定装置304,用于促使状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,根据节点状态信息确定每个相邻计算节点的节点负载信息。
第二选择装置305,用于促使在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,并基于调度任务和目标计算节点生成用于在计算节点间进行任务调度的调度信息。
通信装置306,用于促使由状态监控芯片将调度信息上传给服务节点,并基于调度信息将每个调度任务发送给相应的目标计算节点。
在一个实施例中,获取装置301还用于在时间进入当前时间区段后,促使状态监控芯片从服务节点接收当前计算节点的归属区域的与当前时间区段相邻的上一个时间区段的节点统计信息;状态监控芯片从节点统计信息中获取归属区域内每个计算节点在上一个时间区段内的运行统计信息;状态监控芯片根据归属区域内每个计算节点在上一个时间区段内的运行统计信息,确定当前计算节点的负载检测粒度。
在一个实施例中,获取装置301还用于,促使状态监控芯片获取当前计算节点的运行数据;基于负载检测粒度对当前计算节点的运行数据进行处理,以生成经过处理的运行数据; 基于经过处理的运行数据,计算当前计算节点的动态负载率;以及基于动态负载率确定当前计算节点的运行状态,运行状态包括:正常负载状态和高负载状态。
在一个实施例中,获取装置301还用于,在上一个时间区段期满时,促使服务节点向归属区域内的每个计算节点发送信息上报指示;响应于接收到信息上报指示,每个计算节点将上一个时间区段内的运行统计信息发送给服务节点;服务节点将每个计算节点在上一个时间区段内的运行统计信息组成归属区域的上一个时间区段的节点统计信息;以及在时间进入当前时间区段,将归属区域的上一个时间区段的节点统计信息发送给归属区域内的每个计算节点。
在一个实施例中,获取装置301具体用于,促使状态监控芯片对归属区域内每个计算节点在上一个时间区段内的运行统计信息进行解析,以获取上一个时间区段内归属区域的每个计算节点的完成任务的数量和每个任务的处理时间;确定在上一个时间区段内,当前计算节点的完成任务的数量和每个任务的处理时间;根据当前计算节点的完成任务的数量和每个任务的处理时间,以及归属区域的每个计算节点的完成任务的数量和每个任务的处理时间,确定当前计算节点的负载检测粒度。
在一个实施例中,获取装置301具体用于,基于归属区域的每个计算节点的每个任务的处理时间,确定每个计算节点的任务的平均处理时间TAi、任务的处理时间的中位数TMi、处理时间大于第一时间阈值的任务的数量TLi、处理时间小于第二时间阈值的任务的数量TSi;
其中,n为归属区域内计算节点的数量,i和n为自然数,,TAc为当前计算节点的任务的平均处理时间、TMc为当前计算节点的任务的处理时间的中位数、TLc为当前计算节点的处理时间大于第一时间阈值的任务的数量、TSc为当前计算节点的处理时间小于第二时间阈值的任务的数量、TAi为第i个计算节点的任务的平均处理时间、TMi为第i个计算节点的任务的处理时间的中位数、TLi为第i个计算节点的处理时间大于第一时间阈值的任务的数量、TSi为第i个计算节点的处理时间小于第二时间阈值的任务的数量;为预设检测粒度;为第一加权因子,为第二加权因子,。
在一个实施例中,获取装置301具体用于,促使状态监控芯片获取当前计算节点的运行日志;将运行日志中位于上一个时间区段内的日志数据作为当前计算节点的运行数据,运行数据包括:以秒为统计单位的处理器使用率、以秒为统计单位的内存空闲率和磁盘的每秒输入输出量IOPS。
在一个实施例中,获取装置301具体用于,基于负载检测粒度确定用于运行数据的时间单元;基于以秒为统计单位的处理器使用率和时间单元,确定上一个时间区段内每个时间单元内的处理器使用率的均值;基于以秒为统计单位的内存空闲率和时间单元,确定上一个时间区段内每个时间单元内的内存空闲率的均值;基于磁盘的每秒输入输出量IOPS和时间单元,确定上一个时间区段内每个时间单元内的IOPS的均值;将上一个时间区段内每个时间单元内的处理器使用率的均值、内存空闲率的均值以及IOPS的均值,作为经过处理的运行数据。
在一个实施例中,获取装置301具体用于,将所有时间单元中,处理器使用率的均值大于处理器使用率阈值的时间单元选择作为检测时间单元;将至少两个在时间上相邻的检测时间单元组成为候选时间区段,以获得多个候选时间区段;将所包括的检测时间单元的数量最多的候选时间区段,选择作为检测时间区段;基于检测时间区段内的经过处理的运行数据,计算当前计算节点的动态负载率。
在一个实施例中,获取装置301具体用于,
将上一个时间区段内每个时间单元内的处理器使用率的均值、内存空闲率的均值以及IOPS的均值,作为经过处理的运行数据。
其中,m为检测时间区段内检测时间单元的数量,j和m为自然数,,Cj为第j个检测时间单元的处理器使用率的均值,为处理器使用率阈值,Mj为第j个检测时间单元的内存空闲率的均值,为内存空闲率的阈值,为第j个检测时间单元内IOPS的均值;为IOPS数量阈值;a为大于2的自然数。
在一个实施例中,获取装置301具体用于,当动态负载率小于或等于负载率阈值时,确定当前计算节点的运行状态为正常负载状态;当动态负载率大于负载率阈值时,确定当前计算节点的运行状态为高负载状态。
在一个实施例中,当前计算节点的任务状态信息包括当前计算节点的多个任务状态记录;其中每个任务状态记录包括:任务信息、任务完成比率、任务的接收时间和任务标识符,当前计算节点的每个任务状态记录对应于当前计算节点中处理完成的或正在处理中的每个任务;任务信息包括:任务的总预设处理时间长度、关联任务的数量和关联任务的标识符。
在一个实施例中,当前计算节点的任务状态信息存储在当前计算节点的日志存储设备中。当检测到新接收的任务时,在日志存储设备的任务状态信息中,为新接收的任务创建任务状态记录。
在一个实施例中,由状态监控芯片获取当前计算节点的任务状态信息,包括:状态监控芯片从日志存储设备获取当前计算节点的任务状态信息。
在一个实施例中,状态监控芯片对当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,包括:状态监控芯片对当前计算节点进入高负载状态后新接收的任务添加接收时间标志,利用接收时间标志对接收时间进行记录;或者,状态监控芯片为当前计算节点进入高负载状态后新接收的任务生成任务状态记录,将任务完成比率设置为0,将任务的接收时间设置为当前时间。
在一个实施例中,设置装置302还用于在日志存储设备所存储的当前计算节点的任务状态信息中,为新接收的任务创建任务状态记录。
在一个实施例中,设置装置302还用于在当前计算节点暂停处理新接收的任务后,向新接收的任务的发起方发送用于指示暂停处理的响应消息。
在一个实施例中,第一选择装置303具体用于对多个任务状态记录进行遍历,将任务完成比率小于完成度阈值(例如,完成度阈值为90%、80%等)的任务确定为处于处理状态中的任务,从而确定处于处理状态中的多个任务;根据处于处理状态中的每个任务的任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息。
在一个实施例中,第一选择装置303还用于基于当前计算节点内处于处理状态中的每个任务的任务状态记录中的任务完成比率和每个任务的任务信息中的任务的预设处理时间长度,计算每个任务的剩余处理时间长度:
基于每个任务的剩余处理时间长度,确定当前计算节点内处于处理状态中的多个任务的剩余处理时间长度的平均值。
在一个实施例中,第一选择装置303具体用于将任务信息中关联任务的数量为零的任务确定为候选调度任务,以确定多个候选调度任务;将剩余处理时间长度大于剩余处理时间长度的平均值的候选调度任务,确定为调度任务,从而确定需要进行调度的至少一个调度任务。
在一个实施例中,确定装置304具体用于当前计算节点的状态监控芯片促使向当前计算节点相邻的每个相邻计算节点发送状态查询请求;响应于接收到状态查询请求,每个相邻计算节点生成各自的节点负载信息,并将节点负载信息和计算节点标识符封装为节点状态信息,其中节点负载信息包括:计算节点的当前的计算资源占用率,当前的计算资源占用率为当前的处理器使用率和当前的内存使用率的平均值;以及每个相邻计算节点将各自的节点状态信息发送给当前计算节点,使得状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息;
其中,在当前计算节点的归属区域内,为当前计算节点预先设置多个相邻计算节点;或者,当前计算节点相邻的每个相邻计算节点是与当前计算节点的物理距离小于物理距离阈值的计算节点,物理距离为直线距离或路径距离,物理距离阈值为直线距离阈值或路径距离阈值;或者,当前计算节点相邻的每个相邻计算节点是与当前计算节点的网络距离小于网络距离阈值的计算节点,网络距离为网络跳数,网络距离阈值为网络调数阈值。
在一个实施例中,确定装置304具体用于对节点状态信息进行解析,以确定每个相邻计算节点的节点负载信息。
在一个实施例中,第二选择装置305具体用于按照剩余处理时间长度的降序顺序,对调度任务进行排序,从而生成调度任务列表;基于节点负载信息中当前的计算资源占用率的升序顺序,对相邻计算节点进行排序,从而生成相邻计算节点列表;基于调度任务列表和相邻计算节点列表,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点。
在一个实施例中,第二选择装置305具体用于按照调度任务列表中剩余处理时间长度的降序顺序,依次取出调度任务,并按照相邻计算节点列表中当前的计算资源占用率的升序顺序,依次序选择作为任务调度目的地的目标计算节点;当调度任务的数量大于相邻计算节点的数量时,按照相邻计算节点列表中当前的计算资源占用率的升序顺序,再次依次序选择作为任务调度目的地的目标计算节点,直到所有的调度任务全部选择了目标计算节点为止。
在一个实施例中,第二选择装置305具体用于按照调度任务列表中剩余处理时间长度的降序顺序,依次取出调度任务,并按照相邻计算节点列表中当前的计算资源占用率的升序顺序,依次序选择作为任务调度目的地的目标计算节点;当调度任务的数量大于相邻计算节点的数量时,将当前的计算资源占用率最小的相邻计算节点选择作为所有还未选择目标计算节点的调度任务的目标计算节点。
在一个实施例中,第二选择装置305具体用于在多个相邻计算节点中,为每个调度任务分别随机选择作为任务调度目的地的目标计算节点。
在一个实施例中,调度信息包括多个调度信息项,每个调度信息项包括:调度任务的标识符、调度任务的任务信息、目标计算节点的标识符、目标计算节点的网络地址、当前计算节点的标识符、当前计算节点的网络地址、调度任务的发起方的标识符以及调度任务的发起方的网络地址。
在一个实施例中,在由状态监控芯片将调度信息上传给服务节点之后,还包括:由服务节点基于调度信息对每个调度任务的任务状态进行监控;和/或由当前计算节点的状态监控芯片基于调度信息对每个调度任务的任务状态进行监控。
在一个实施例中,通信装置36具体用于当前计算节点的状态监控芯片基于调度信息将每个调度任务发送给相应的目标计算节点,以使得目标计算节点对所接收到的调度任务进行继续处理;还包括,当前计算节点的状态监控芯片将调度信息发送给每个目标计算节点;当所接收到的调度任务处理完成时,目标计算节点基于调度信息将计算结果发送给调度任务的发起方,并将指示调度任务处理完成的通知消息发送给当前计算节点的状态监控芯片。
在一个实施例中,在基于调度信息将每个调度任务发送给相应的目标计算节点后,将当前计算节点的本地缓存中的任务设置为处理状态,并按照所记录的接收时间对本地缓存中的任务进行处理。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个//该[装置、组件等]”都被开放地解释为装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。
Claims (26)
1.一种由状态监控芯片在计算节点间进行任务调度的方法,所述方法包括:
在当前计算节点内置的状态监控芯片确定所述当前计算节点的运行状态进入高负载状态时,由所述状态监控芯片获取当前计算节点的任务状态信息,并对任务状态信息进行解析以获得多个任务状态记录;
所述状态监控芯片对所述当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态,使得所述当前计算节点暂停处理新接收的任务;
基于所述多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务;
所述状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,根据节点状态信息确定每个相邻计算节点的节点负载信息;
在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,并基于调度任务和目标计算节点生成用于在计算节点间进行任务调度的调度信息;以及
由状态监控芯片将所述调度信息上传给服务节点,并基于所述调度信息将每个调度任务发送给相应的目标计算节点;
还包括,
在时间进入当前时间区段后,所述状态监控芯片从服务节点接收所述当前计算节点的归属区域的与所述当前时间区段相邻的上一个时间区段的节点统计信息;
所述状态监控芯片从所述节点统计信息中获取归属区域内每个计算节点在所述上一个时间区段内的运行统计信息;
所述状态监控芯片根据归属区域内每个计算节点在所述上一个时间区段内的运行统计信息,确定当前计算节点的负载检测粒度。
2.根据权利要求1所述的方法,在确定当前计算节点的负载检测粒度之后,还包括,
状态监控芯片获取所述当前计算节点的运行数据;
基于所述负载检测粒度对所述当前计算节点的运行数据进行处理,以生成经过处理的运行数据;
基于所述经过处理的运行数据,计算所述当前计算节点的动态负载率;以及
基于所述动态负载率确定当前计算节点的运行状态,所述运行状态包括:正常负载状态和高负载状态。
3.根据权利要求1或2所述的方法,还包括,在所述上一个时间区段期满时,所述服务节点向归属区域内的每个计算节点发送信息上报指示;
响应于接收到所述信息上报指示,每个计算节点将所述上一个时间区段内的运行统计信息发送给所述服务节点;
所述服务节点将每个计算节点在所述上一个时间区段内的运行统计信息组成归属区域的上一个时间区段的节点统计信息;以及
在时间进入当前时间区段,将归属区域的上一个时间区段的节点统计信息发送给归属区域内的每个计算节点。
4.根据权利要求1所述的方法,其中,所述状态监控芯片根据归属区域内每个计算节点在所述上一个时间区段内的运行统计信息,确定当前计算节点的负载检测粒度,包括:
所述状态监控芯片对归属区域内每个计算节点在所述上一个时间区段内的运行统计信息进行解析,以获取所述上一个时间区段内归属区域的每个计算节点的完成任务的数量和每个任务的处理时间;
确定在上一个时间区段内,当前计算节点的完成任务的数量和每个任务的处理时间;
根据当前计算节点的完成任务的数量和每个任务的处理时间,以及归属区域的每个计算节点的完成任务的数量和每个任务的处理时间,确定当前计算节点的负载检测粒度。
5.根据权利要求4所述的方法,其中,根据当前计算节点的完成任务的数量和每个任务的处理时间,以及归属区域的每个计算节点的完成任务的数量和每个任务的处理时间,确定当前计算节点的负载检测粒度,包括:
基于归属区域的每个计算节点的每个任务的处理时间,确定每个计算节点的任务的平均处理时间TAi、任务的处理时间的中位数TMi、处理时间大于第一时间阈值的任务的数量TLi、处理时间小于第二时间阈值的任务的数量TSi;
6.根据权利要求2所述的方法,其中,状态监控芯片获取所述当前计算节点的运行数据,包括:
所述状态监控芯片获取所述当前计算节点的运行日志;
将所述运行日志中位于上一个时间区段内的日志数据作为所述当前计算节点的运行数据,所述运行数据包括:以秒为统计单位的处理器使用率、以秒为统计单位的内存空闲率和磁盘的每秒输入输出量IOPS。
7.根据权利要求6所述的方法,其中,基于所述负载检测粒度对所述当前计算节点的运行数据进行处理,以生成经过处理的运行数据,包括:
基于所述负载检测粒度确定用于运行数据的时间单元;
基于以秒为统计单位的处理器使用率和时间单元,确定上一个时间区段内每个时间单元内的处理器使用率的均值;
基于以秒为统计单位的内存空闲率和时间单元,确定上一个时间区段内每个时间单元内的内存空闲率的均值;
基于磁盘的每秒输入输出量IOPS和时间单元,确定上一个时间区段内每个时间单元内的IOPS的均值;
将上一个时间区段内每个时间单元内的处理器使用率的均值、内存空闲率的均值以及IOPS的均值,作为经过处理的运行数据。
9.根据权利要求1所述的方法,所述当前计算节点的任务状态信息包括当前计算节点的多个任务状态记录;
其中每个任务状态记录包括:任务信息、任务完成比率、任务的接收时间和任务标识符,当前计算节点的每个任务状态记录对应于当前计算节点中处理完成的或正在处理中的每个任务;
所述任务信息包括:任务的总预设处理时间长度、关联任务的数量和关联任务的标识符。
10.根据权利要求9所述的方法,所述当前计算节点的任务状态信息存储在当前计算节点的日志存储设备中。
11.根据权利要求10所述的方法,其中,由所述状态监控芯片获取当前计算节点的任务状态信息,包括:
所述状态监控芯片从日志存储设备获取当前计算节点的任务状态信息。
12.根据权利要求10所述的方法,其中,所述状态监控芯片对所述当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,包括:
所述状态监控芯片对所述当前计算节点进入高负载状态后新接收的任务添加接收时间标志,利用所述接收时间标志对接收时间进行记录;或者,
所述状态监控芯片为所述当前计算节点进入高负载状态后新接收的任务生成任务状态记录,将任务完成比率设置为0,将任务的接收时间设置为当前时间。
13.根据权利要求10所述的方法,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态后,还包括:
在日志存储设备所存储的当前计算节点的任务状态信息中,为所述新接收的任务创建任务状态记录。
14.根据权利要求1所述的方法,在所述当前计算节点暂停处理新接收的任务后,向所述新接收的任务的发起方发送用于指示暂停处理的响应消息。
15.根据权利要求9所述的方法,其中,基于所述多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,包括:
对所述多个任务状态记录进行遍历,将任务完成比率小于完成度阈值的任务确定为处于处理状态中的任务,从而确定处于处理状态中的多个任务;
根据处于处理状态中的每个任务的任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息。
17.根据权利要求16所述的方法,其中,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务,包括:
将任务信息中关联任务的数量为零的任务确定为候选调度任务,以确定多个候选调度任务;
将剩余处理时间长度大于剩余处理时间长度的平均值的候选调度任务,确定为调度任务,从而确定需要进行调度的至少一个调度任务。
18.根据权利要求1、16或17所述的方法,其中,所述状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,包括:
所述当前计算节点的状态监控芯片促使向当前计算节点相邻的每个相邻计算节点发送状态查询请求;
响应于接收到状态查询请求,每个相邻计算节点生成各自的节点负载信息,并将节点负载信息和计算节点标识符封装为节点状态信息,其中所述节点负载信息包括:计算节点的当前的计算资源占用率,所述当前的计算资源占用率为当前的处理器使用率和当前的内存使用率的平均值;以及
每个相邻计算节点将各自的节点状态信息发送给所述当前计算节点,使得状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息;
其中,在所述当前计算节点的归属区域内,为当前计算节点预先设置多个相邻计算节点;
或者,当前计算节点相邻的每个相邻计算节点是与所述当前计算节点的物理距离小于物理距离阈值的计算节点,所述物理距离为直线距离或路径距离,物理距离阈值为直线距离阈值或路径距离阈值;
或者,当前计算节点相邻的每个相邻计算节点是与所述当前计算节点的网络距离小于网络距离阈值的计算节点,所述网络距离为网络跳数,所述网络距离阈值为网络调数阈值。
19.根据权利要求18所述的方法,其中,根据节点状态信息确定每个相邻计算节点的节点负载信息,包括:
对节点状态信息进行解析,以确定每个相邻计算节点的节点负载信息。
20.根据权利要求1或19所述的方法,其中,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:
按照剩余处理时间长度的降序顺序,对调度任务进行排序,从而生成调度任务列表;
基于节点负载信息中当前的计算资源占用率的升序顺序,对相邻计算节点进行排序,从而生成相邻计算节点列表;
基于调度任务列表和相邻计算节点列表,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点。
21.根据权利要求1或19所述的方法,其中,在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,包括:
在多个相邻计算节点中,为每个调度任务分别随机选择作为任务调度目的地的目标计算节点。
22.根据权利要求1所述的方法,所述调度信息包括多个调度信息项,每个调度信息项包括:调度任务的标识符、调度任务的任务信息、目标计算节点的标识符、目标计算节点的网络地址、当前计算节点的标识符、当前计算节点的网络地址、调度任务的发起方的标识符以及调度任务的发起方的网络地址。
23.根据权利要求1所述的方法,在由状态监控芯片将所述调度信息上传给服务节点之后,还包括:
由服务节点基于调度信息对每个调度任务的任务状态进行监控;和/或
由当前计算节点的状态监控芯片基于调度信息对每个调度任务的任务状态进行监控。
24.根据权利要求1所述的方法,在基于所述调度信息将每个调度任务发送给相应的目标计算节点后,将所述当前计算节点的本地缓存中的任务设置为处理状态,并按照所记录的接收时间对本地缓存中的任务进行处理。
25.一种由状态监控芯片在计算节点间进行任务调度的系统,所述系统包括:
获取装置,用于促使在当前计算节点内置的状态监控芯片确定所述当前计算节点的运行状态进入高负载状态时,由所述状态监控芯片获取当前计算节点的任务状态信息,并对任务状态信息进行解析以获得多个任务状态记录;
设置装置,用于促使所述状态监控芯片对所述当前计算节点进入高负载状态后新接收的任务的接收时间进行记录,将新接收的任务存储在当前计算节点的本地缓存中并设置为挂起状态,使得所述当前计算节点暂停处理新接收的任务;
第一选择装置,用于促使基于所述多个任务状态记录,确定当前计算节点内处于处理状态中的多个任务中每个任务的任务信息,基于每个任务的任务信息从多个任务中选择需要进行调度的至少一个调度任务;
确定装置,用于促使所述状态监控芯片获取与当前计算节点相邻的每个相邻计算节点的节点状态信息,根据节点状态信息确定每个相邻计算节点的节点负载信息;
第二选择装置,用于促使在多个相邻计算节点中,为每个调度任务分别选择作为任务调度目的地的目标计算节点,并基于调度任务和目标计算节点生成用于在计算节点间进行任务调度的调度信息;以及
通信装置,用于促使由状态监控芯片将所述调度信息上传给服务节点,并基于所述调度信息将每个调度任务发送给相应的目标计算节点。
26.一种由状态监控芯片在计算节点间进行任务调度的系统,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现权利要求1-24中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211003899.3A CN115080215B (zh) | 2022-08-22 | 2022-08-22 | 由状态监控芯片在计算节点间进行任务调度的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211003899.3A CN115080215B (zh) | 2022-08-22 | 2022-08-22 | 由状态监控芯片在计算节点间进行任务调度的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115080215A true CN115080215A (zh) | 2022-09-20 |
CN115080215B CN115080215B (zh) | 2022-11-15 |
Family
ID=83245250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211003899.3A Active CN115080215B (zh) | 2022-08-22 | 2022-08-22 | 由状态监控芯片在计算节点间进行任务调度的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080215B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309613A (zh) * | 2022-10-11 | 2022-11-08 | 中诚华隆计算机技术有限公司 | 一种由运行监控芯片选择辅助边缘节点的方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160224373A1 (en) * | 2015-02-02 | 2016-08-04 | Oracle International Corporation | Fine-grained scheduling of work in runtime systems |
US20180167453A1 (en) * | 2016-12-14 | 2018-06-14 | Huawei Technologies Co., Ltd. | Distributed load balancing system, health check method, and service node |
US20180300174A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
CN110457131A (zh) * | 2019-07-31 | 2019-11-15 | 华中科技大学 | 基于Docker容器的电力系统超算平台任务调度方法 |
CN110704542A (zh) * | 2019-10-15 | 2020-01-17 | 南京莱斯网信技术研究院有限公司 | 一种基于节点负载的数据动态分区系统 |
CN112925620A (zh) * | 2021-02-24 | 2021-06-08 | 北京润尼尔网络科技有限公司 | 分布式的任务调度系统和方法 |
CN114579271A (zh) * | 2022-02-28 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 任务调度方法、分布式系统及存储介质 |
CN114726862A (zh) * | 2022-05-17 | 2022-07-08 | 中诚华隆计算机技术有限公司 | 基于状态监控芯片确定计算节点运行状态的方法及系统 |
-
2022
- 2022-08-22 CN CN202211003899.3A patent/CN115080215B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160224373A1 (en) * | 2015-02-02 | 2016-08-04 | Oracle International Corporation | Fine-grained scheduling of work in runtime systems |
US20180167453A1 (en) * | 2016-12-14 | 2018-06-14 | Huawei Technologies Co., Ltd. | Distributed load balancing system, health check method, and service node |
US20180300174A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
CN110457131A (zh) * | 2019-07-31 | 2019-11-15 | 华中科技大学 | 基于Docker容器的电力系统超算平台任务调度方法 |
CN110704542A (zh) * | 2019-10-15 | 2020-01-17 | 南京莱斯网信技术研究院有限公司 | 一种基于节点负载的数据动态分区系统 |
CN112925620A (zh) * | 2021-02-24 | 2021-06-08 | 北京润尼尔网络科技有限公司 | 分布式的任务调度系统和方法 |
CN114579271A (zh) * | 2022-02-28 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 任务调度方法、分布式系统及存储介质 |
CN114726862A (zh) * | 2022-05-17 | 2022-07-08 | 中诚华隆计算机技术有限公司 | 基于状态监控芯片确定计算节点运行状态的方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309613A (zh) * | 2022-10-11 | 2022-11-08 | 中诚华隆计算机技术有限公司 | 一种由运行监控芯片选择辅助边缘节点的方法及系统 |
CN115309613B (zh) * | 2022-10-11 | 2022-12-06 | 中诚华隆计算机技术有限公司 | 一种由运行监控芯片选择辅助边缘节点的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115080215B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6949045B2 (ja) | 分散クラスタ型訓練方法及び装置 | |
US7890620B2 (en) | Monitoring system and monitoring method | |
CN106375420B (zh) | 一种基于负载均衡的服务器集群智能监控系统及方法 | |
CN109597685B (zh) | 任务分配方法、装置和服务器 | |
US8560667B2 (en) | Analysis method and apparatus | |
US20210006505A1 (en) | A bursty traffic allocation method, device and proxy server | |
JP2000231502A (ja) | ジョブシステムにおける遅延要因解析方法 | |
US10452666B2 (en) | Sensor data search system, sensor data search method and management computer | |
CN106713396B (zh) | 服务器调度方法和系统 | |
CN107872457B (zh) | 一种基于网络流量预测进行网络操作的方法及系统 | |
CN105872061B (zh) | 一种服务器集群管理方法、装置及系统 | |
US10430268B2 (en) | Operations management system, operations management method and program thereof | |
CN110809060B (zh) | 一种应用服务器集群的监控系统及监控方法 | |
CN109981416A (zh) | 一种区块链性能检测方法与系统 | |
CN115080215B (zh) | 由状态监控芯片在计算节点间进行任务调度的方法及系统 | |
CN109728981A (zh) | 一种云平台故障监测方法及装置 | |
US8180716B2 (en) | Method and device for forecasting computational needs of an application | |
CN114726862A (zh) | 基于状态监控芯片确定计算节点运行状态的方法及系统 | |
CN107491458A (zh) | 一种存储时间序列数据的方法和装置以及系统 | |
EP4092989B1 (en) | Measuring metrics of a computer network | |
WO2022088809A1 (zh) | 确定检测服务器的间隔时间的方法、系统、设备及介质 | |
WO2021234764A1 (ja) | バーストトラフィック検出装置、バーストトラフィック検出方法およびバーストトラフィック検出プログラム | |
CN117472652A (zh) | 一种云计算运维平台的数据备份方法、装置及系统 | |
CN108027760B (zh) | 数据存储设备监视的方法及系统 | |
CN113448747B (zh) | 数据传输方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |