CN116962532A - 集群任务调度方法、装置、计算机设备及存储介质 - Google Patents

集群任务调度方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN116962532A
CN116962532A CN202310862755.1A CN202310862755A CN116962532A CN 116962532 A CN116962532 A CN 116962532A CN 202310862755 A CN202310862755 A CN 202310862755A CN 116962532 A CN116962532 A CN 116962532A
Authority
CN
China
Prior art keywords
resource
task
change information
server
cluster
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
Application number
CN202310862755.1A
Other languages
English (en)
Inventor
李艳青
李继峰
王剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Youzhuju Network Technology Co Ltd
Original Assignee
Beijing Youzhuju Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Youzhuju Network Technology Co Ltd filed Critical Beijing Youzhuju Network Technology Co Ltd
Priority to CN202310862755.1A priority Critical patent/CN116962532A/zh
Publication of CN116962532A publication Critical patent/CN116962532A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开涉及集群技术领域,公开了集群任务调度方法、装置、计算机设备及存储介质,集群任务调度方法包括:获取集群任务,集群任务为待进行调度的任务;生成集群任务的资源用量变化信息,资源用量变化信息表示集群任务的资源用量随时间变化的信息;比较资源用量变化信息与第一服务器的资源余量变化信息,判断资源用量变化信息与资源余量变化信息是否匹配;资源余量变化信息用于表示第一服务器上的可用资源随时间变化的信息;如果资源用量变化信息与资源余量变化信息相匹配,将集群任务调度至第一服务器上。本公开能够避免服务器资源浪费,提高服务器资源的利用率。

Description

集群任务调度方法、装置、计算机设备及存储介质
技术领域
本公开涉及集群技术领域,具体涉及集群任务调度方法、装置、计算机设备及存储介质。
背景技术
集群一般包括分别运行各自服务的多个服务器,不同服务器之间可以通过通信网络相互连接。相关技术中,在向集群中的服务器分发集群任务时,往往根据用户预设的资源量进行分配。如果一台服务器的剩余资源量高于用户当前预设的资源量,则能够将当前的集群任务调度至该服务器上,以通过该服务器执行当前的集群任务。但是,如果预设的资源量过多,集群任务执行时很多的资源未被使用,导致资源浪费问题,服务器资源利用率变低;如果预设的资源量过少,同一台服务器会被分配过多的任务,不同任务之间挤占资源容易造成任务执行失败,相当于部分服务器资源未被使用,同样造成了资源浪费问题。
发明内容
有鉴于此,本公开提供了一种集群任务调度方法、装置、计算机设备及存储介质,以解决相关技术存在的服务器资源浪费问题。
第一方面,本公开提供了一种集群任务调度方法,该方法包括:
获取集群任务,集群任务为待进行调度的任务;
生成集群任务的资源用量变化信息,资源用量变化信息表示集群任务的资源用量随时间变化的信息;
比较资源用量变化信息与第一服务器的资源余量变化信息,判断资源用量变化信息与资源余量变化信息是否匹配;资源余量变化信息用于表示第一服务器上的可用资源随时间变化的信息;
如果资源用量变化信息与资源余量变化信息相匹配,将集群任务调度至第一服务器上。
本公开将集群任务的资源用量随时间变化的信息与第一服务器上的可用资源随时间变化的信息进行比较,以判断动态变化的资源用量变化信息与动态变化的资源余量变化信息是否匹配,并在匹配的情况下将集群任务调度至第一服务器上。与相关技术相比,本公开根据集群任务的实际需要的动态变化的资源用量为其选择合适的服务器,以调度集群任务至该服务器上,避免用户预设的资源量过多或过少的问题,避免服务器资源浪费,提高服务器资源的利用率。由于本公开同时考虑了资源用量变化信息与资源余量变化信息,本公开在避免资源浪费的同时还能够避免不同集群任务之间相互挤占的问题,明显提高集群任务执行成功的概率,保证业务的正常开展。
第二方面,本公开提供了一种集群任务调度装置,该装置包括:
任务获取模块,用于获取集群任务,集群任务为待进行调度的任务;
信息生成模块,用于生成集群任务的资源用量变化信息,资源用量变化信息表示集群任务的资源用量随时间变化的信息;
信息比较模块,用于比较资源用量变化信息与第一服务器的资源余量变化信息,资源余量变化信息用于表示第一服务器上的可用资源随时间变化的信息;
第一调度模块,用于根据资源用量变化信息与资源余量变化信息相匹配,将集群任务调度至第一服务器上。
第三方面,本公开提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的集群任务调度方法。
第四方面,本公开提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的集群任务调度方法。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开实施例的集群任务调度方法的流程示意图;
图2是根据本公开实施例的另一集群任务调度方法的流程示意图;
图3是根据本公开实施例的又一集群任务调度方法的流程示意图;
图4是根据本公开实施例的集群任务调度的任务分发原理示意图;
图5是根据本公开实施例的再一集群任务调度方法的流程示意图;
图6是根据本公开实施例的任务的资源用量变化曲线示意图;
图7是根据本公开实施例的任务特征与资源用量之间的映射关系示意图;
图8是根据本公开实施例的第一服务器上的一个任务(编号为jobid_1.1)的资源用量变化曲线示意图;
图9是根据本公开实施例的第一服务器上的另一任务(编号为jobid_1.2)的资源用量变化曲线示意图;
图10是根据本公开实施例的第一服务器上的又一任务(编号为jobid_1.3)的资源用量变化曲线示意图;
图11是根据本公开实施例的第一服务器上的再一任务(编号为jobid_1.4)的资源用量变化曲线示意图;
图12是根据本公开实施例的第一服务器的资源用量变化曲线示意图;
图13是根据本公开实施例的第一服务器的可用资源变化曲线示意图;
图14是根据本公开实施例的集群任务的资源用量变化曲线示意图;
图15是根据本公开实施例的第一服务器的可用资源变化曲线与集群任务的资源用量变化曲线对比示意图;
图16是根据本公开实施例的集群任务调度装置的结构框图;
图17是本公开实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
相关技术中,集群任务调度系统能够用于管理集群资源和自动化分配集群任务,从而实现集群任务作业调度和管理功能。以LSF(Load Sharing Facility,负载分担设施)和Slurm(Simple Linux Utility for Resource Management,用于资源管理的简单Linux系统实用程序)为例,可广泛地应用于科学计算、数据分析、机器学习及深度学习等领域。以LSF为例说明相关技术中所使用的集群任务调度方法:在用户提交任务时,需要预设资源需求用量,以确保集群任务调度系统可以按照预设资源需求用量表示的资源需求合理地调度任务。
例如,对于一台具有48CPU核/1T内存的服务器,集群任务调度系统LSF尝试向该服务器分配集群任务时,具体流程可包括:查看该服务器的总资源量(例如48CPU核/1T内存),查看该服务器已经使用的资源量,估计剩余资源量是否满足当前集群任务的预设资源量,若满足,则将当前集群任务分配到该服务器,若不满足,则不将当前集群任务分配到该服务器。相关技术中的集群任务调度方法存在以下问题:用户往往并不了解一个集群任务实际会使用多少资源,所以提交集群任务时很难精准地预设资源;如果预设资源过高,但很多资源未使用,则会造成资源浪费,服务器资源利用率变低;如果预设资源过低,会使同一台服务器上被分配过多的集群任务,集群任务之间相互挤占资源容易造成集群任务执行失败,最终结果还是导致了资源的浪费。而且,预设资源为一个常量资源,然而在集群任务的整个生命周期中的资源用量往往是变化的,若按照集群任务的资源峰值预设资源,集群任务执行的大多数时间内不会达到资源峰值的用量,造成了资源浪费;若不按照集群任务的资源峰值预设资源,集群任务之间相互挤占资源容易造成集群任务执行失败,同样是资源的浪费。因此,相关技术中依赖人工判断的任务资源预设方案以及常量的静态资源预设逻辑,均会造成严重的资源浪费问题。更严重的是,相关技术易造成集群任务执行失败的概率增大,影响了业务的正常开展。
根据本公开实施例,提供了一种集群任务调度方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种集群任务调度方法,可用于集群任务管理节点(该节点例如为集群的主节点Master),本公开实施例中的集群任务管理节点上可设置有集群任务调度系统。
图1是根据本公开实施例的集群任务调度方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取集群任务,集群任务为待进行调度的任务。
其中,集群任务包括数据分析任务、科学计算任务、机器学习任务、深度学习任务等任务中的一种或多种,集群任务例如可为集成电路设计任务。
本实施例对用户提交的集群任务进行监控,从而获取用户提交的新的集群任务。
结合图4所示,用户可通过客户端401提交新的集群任务至集群任务管理节点402,集群任务管理节点402获取新的集群任务。该集群任务管理节点402通过本公开的集群任务调度方法将该集群任务调度至合适的服务器403上。本公开一些实施例中,服务器403还能够用于将集群任务调度结果等信息反馈至客户端401。
步骤S102,生成集群任务的资源用量变化信息,资源用量变化信息表示集群任务的资源用量随时间变化的信息。
其中,本公开涉及的“资源”具体包括内存(Memory)资源、CPU(CentralProcessing Unit,中央处理器)资源、swap(交换分区)资源等集群任务执行所需资源中的一种或多种。
本实施例中,资源用量随时间变化的信息表示资源用量在预设时间段内的情况,预设时间段一般大于集群任务的生命周期,例如五十分钟,当然并不限于此。
步骤S103,比较资源用量变化信息与第一服务器的资源余量变化信息,判断资源用量变化信息与资源余量变化信息是否匹配;资源余量变化信息用于表示第一服务器上的可用资源随时间变化的信息。
在资源用量变化信息与第一服务器的资源余量变化信息比较的过程中,本实施例判断第一服务器的资源余量是否能够在集群任务的生命周期内始终满足集群任务的资源用量需求。
步骤S104,如果资源用量变化信息与资源余量变化信息相匹配,将集群任务调度至第一服务器上。
其中,“相匹配”是指第一服务器的资源余量能够在集群任务的生命周期内始终满足集群任务的资源用量需求,本实施例将集群任务分发至能够满足该集群任务的资源用量需求的服务器上。
本公开能够提供一种提升服务器资源利用率的集群任务调度策略,具体将集群任务的资源用量随时间变化的信息与第一服务器上的可用资源随时间变化的信息进行比较,以判断动态变化的资源用量变化信息与动态变化的资源余量变化信息是否匹配,并在匹配的情况下将集群任务调度至第一服务器上。可见本公开可根据集群任务的实际需要的动态变化的资源用量为其选择合适的服务器,以调度集群任务至该服务器上,避免用户预设的资源量过多或过少的问题,避免服务器资源浪费,提高服务器资源的利用率。由于本公开同时考虑了资源用量变化信息与资源余量变化信息,本公开在避免资源浪费的同时还能够避免不同集群任务之间相互挤占的问题,明显提高集群任务执行成功的概率,保证业务的正常开展。
在一些可选的实施方式中,资源余量变化信息包括可用资源变化曲线;生成集群任务的资源用量变化信息,包括:预测出集群任务的资源用量变化曲线;其中,资源用量变化信息包括资源用量变化曲线。
其中,资源余量变化信息为可用资源变化曲线,或者为表示资源余量的随时间分布的一系列的具体值;资源用量变化信息为资源用量变化曲线,或者为表示资源用量的随时间分布的一系列的具体值。
本实施例中,利用可用资源变化曲线表征资源余量变化信息,并利用资源用量变化曲线表征资源用量变化信息,该方式能够更精准地表示出任务的资源用量和服务器的资源余量的动态变化情况,进而保证集群任务的精准投递。
在本实施例中提供了一种集群任务调度方法,可用于集群任务管理节点,图2是根据本公开实施例的集群任务调度方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取集群任务,集群任务为待进行调度的任务。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S202,生成集群任务的资源用量变化信息,资源用量变化信息表示集群任务的资源用量随时间变化的信息。
具体地,上述步骤S202包括:
步骤S2021,对集群任务中的任务特征进行多次采样,得到多个目标任务特征。
本实施例通过获取集群任务的瞬时信息的方式对任务特征进行采样,采样得到的任务特征为目标任务特征,例如使用预设命令(例如bjobs-UF<jobid>)获取指定集群任务(通过不同任务编号jobid标识不同集群任务)的瞬时信息。
其中,任务特征包括但不限于任务名、命令、指令路径、用户名、队列、项目、资源需求中的一种或多种。任务名(Job Name),用于作为任务标识;命令(Command),与资源用量的多少具有直接关系;指令路径(CWD),用于与Command一起可以界定任务的重复性;用户名(User),同一用户一般可以执行同一类或几类集群任务;队列(Queue),一般相同流程或类型的任务会被丢到同一队列;项目(Project),同一项目的多个不同任务之间存在关联;资源需求(Requested Resources),表示可设置的资源用量。
步骤S2022,基于任务特征与资源用量之间的映射关系,预测出多个目标任务特征对应的资源用量变化曲线。
本实施例中,利用映射关系以及任务特征中的任务名、命令、指令路径、用户名、队列、项目预测出对应的资源用量变化曲线。
步骤S203,比较资源用量变化信息与第一服务器的资源余量变化信息,判断资源用量变化信息与资源余量变化信息是否匹配;资源余量变化信息用于表示第一服务器上的可用资源随时间变化的信息。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S204,如果资源用量变化信息与资源余量变化信息相匹配,将集群任务调度至第一服务器上。详细请参见图1所示实施例的步骤S104,在此不再赘述。
本实施例能够自动预测出集群任务的资源用量变化曲线,用户不需要关心每个集群任务的资源用量需求,而且通过资源用量变化曲线能够动态、精准地描述资源用量变化,从而更精准地确定资源用量,进而实现更精准的任务分配。
在一些可选的实施方式中,预测出集群任务的资源用量变化曲线之前,该方法还包括:
步骤a1,获取历史任务的任务特征和资源用量,历史任务为已调度完成的集群任务。
本实施例通过获取历史任务的瞬时信息的方式对任务特征进行采样,例如使用预设命令(例如bjobs-UF<jobid>)获取指定历史任务(通过不同任务编号jobid标识不同历史任务)的瞬时信息。
其中,任务特征包括但不限于任务名、命令、指令路径、用户名、队列、项目、采样时间、任务开始时间及资源用量瞬时值中的一种或多种。
本实施例的最后一次采样时间与任务开始时间的差值为任务运行时间段,以资源为内存资源为例,资源用量瞬时值为内存资源用量瞬时值。
本实施例通过采样得到的任务特征存储于数据库中,资源用量变化曲线可根据从数据库中提取的任务特征进行绘制。
如图6所示,图6的横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(Memory Usage),单位为吉字节(G)。图示中,按照每分钟采样一次绘制出同一个任务的内存资源用量变化曲线。
步骤a2,基于机器学习的方式构建任务特征与资源用量之间的映射关系。
其中,该映射关系用于基于任务特征预测资源用量。
本实施例中,基于任务信息统计分析的方式建立任务特征与资源用量之间的映射关系,具体通过机器学习(ML,Machine Learning)的方式构建任务特征与资源用量之间的映射关系。例如,基于分布式梯度增强库(例如XGBoost),利用Gradient Boosting(梯度提升)框架进行机器学习和数据分析,将集群任务的任务名、命令、指令路径、用户名、队列、项目等参数,按照预设的比重,与集群任务所使用的资源用量建立一个映射关系,该映射关系可用于基于旧的集群任务信息,进行新的集群任务的资源用量的预判。
如图7所示,集群任务的任务特征包括任务名、命令、指令路径、用户名、队列、项目等,这些任务特征作为自变量,并分配相应的权重,资源用量作为因变量,从而构建出任务特征与资源用量之间的映射关系。结合图5所示,本实施例按照指定的机器学习算法做训练后,得到训练后的机器学习模型,并将生成的模型文件保存到数据库中,以用于新的集群任务的资源用量的预测。
基于机器学习的方式,本公开实施例能够准确地确定任务特征与资源用量之间的映射关系,以实现准确地预测出多个目标任务特征对应的资源用量变化信息,进而准确地预测出当前集群任务的资源用量变化曲线,而且基于该映射关系准确地预测出第一服务器的可用资源变化曲线,为集群任务调度提供可靠的依据。
在本实施例中提供了一种集群任务调度方法,可用于集群任务管理节点,图3是根据本公开实施例的集群任务调度方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,获取集群任务,集群任务为待进行调度的任务。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S302,生成集群任务的资源用量变化信息,资源用量变化信息表示集群任务的资源用量随时间变化的信息。
具体地,上述步骤S302包括:
步骤S3021,对集群任务中的任务特征进行多次采样,得到多个目标任务特征。详细请参见图2所示实施例的步骤S2021,在此不再赘述。
步骤S3022,基于任务特征与资源用量之间的映射关系,预测出多个目标任务特征对应的资源用量变化曲线。详细请参见图2所示实施例的步骤S2022,在此不再赘述。
步骤S303,比较资源用量变化信息与第一服务器的资源余量变化信息,判断资源用量变化信息与资源余量变化信息是否匹配;资源余量变化信息用于表示第一服务器上的可用资源随时间变化的信息。
具体地,上述步骤S303包括:
步骤S3031,比较资源用量变化曲线与可用资源变化曲线。
本公开实施例中,可结合附图15所示的可用资源变化曲线与资源用量变化曲线对比示意图,如果资源用量变化曲线低于或等于可用资源变化曲线,说明资源用量变化曲线中的资源用量值小于或等于可用资源变化曲线中的可用资源值;如果资源用量变化曲线高于可用资源变化曲线,说明资源用量变化曲线中的资源用量值大于可用资源变化曲线中的可用资源值。
步骤S3032,对于集群任务运行时间段内的任一时间点,根据资源用量变化曲线中的资源用量值小于或等于可用资源变化曲线中的可用资源值,确定资源用量变化曲线与可用资源变化曲线相匹配。根据资源用量变化曲线中的资源用量值大于可用资源变化曲线中的可用资源值,确定资源用量变化曲线与可用资源变化曲线不匹配。
其中,任一时间点例如可以为本公开实施例中对集群任务进行采样的采样时间点,当然并不限于此。
步骤S304,如果资源用量变化信息与资源余量变化信息相匹配,将集群任务调度至第一服务器上。详细请参见图2所示实施例的步骤S204,在此不再赘述。
基于集群任务运行时间段内的任一时间点的资源用量值与可用资源值逐一比较,本实施例能够精确地判断出资源用量变化信息与资源余量变化信息是否匹配,从而实现集群任务的可靠调度。
在一些可选的实施方式中,该方法还包括:
步骤b1,如果资源用量变化信息与资源余量变化信息未匹配,则比较资源用量变化信息与至少一台第二服务器的资源余量变化信息;第二服务器和第一服务器均为当前集群中的服务器。
其中,本公开涉及的“服务器”具体指用于形成集群的具有相应运算能力的机器。
当然,在具体实施时,本实施例也可将当前集群任务的资源用量变化信息与多台不同的服务器的资源余量变化信息进行比较,从而有助于更高效地确定待分配任务的服务器,提高集群任务调度效率。
步骤b2,将集群任务调度至第三服务器上;其中,第三服务器为资源余量变化信息与资源用量变化信息相匹配的第二服务器。
本公开实施例通过上述方式能够在第一服务器不满足任务需求的情况下更快速地确定符合任务需求的服务器,该方式能够提高集群任务调度的有效性。
在一些可选的实施方式中,比较资源用量变化信息与第一服务器的资源余量变化信息之前,该方法还包括:
步骤c1,生成第一服务器上的每个已有任务的资源用量变化信息;其中,已有任务为已经调度至第一服务器上的任务。
本实施例中,步骤c1包括:基于映射关系预测出第一服务器上的每个已有任务的资源用量变化信息,该预设关系为本公开前述基于机器学习的方式构建任务特征与资源用量之间的映射关系。
其中,基于机器学习构建映射关系的过程在本说明书中已有详细说明,在此不再赘述。
具体实施时,本公开实施例能够生成包括第一服务器在内的多台服务器上的每个已有任务的资源用量变化信息。以第一服务器(host1)上的已有任务可包括集群任务jobid_1.1、集群任务jobid_1.2、集群任务jobid_1.3、集群任务jobid_1.4为例,资源用量以内存资源用量为例,图8示出了集群任务jobid_1.1的内存资源用量变化曲线示意图,图8的横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(MemoryUsage),单位为吉字节(G);图9示出了集群任务jobid_1.2的内存资源用量变化曲线示意图,图9的横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(Memory Usage),单位为吉字节(G);图10示出了集群任务jobid_1.3的内存资源用量变化曲线示意图,图10的横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(Memory Usage),单位为吉字节(G);图11示出了集群任务jobid_1.4的内存资源用量变化曲线示意图,图11的横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(Memory Usage),单位为吉字节(G)。
步骤c2,根据每个已有任务的资源用量变化信息和第一服务器的资源总量,生成第一服务器的资源余量变化信息。
其中,“已有任务的资源用量”既包括已经被实际占用的资源量,也包括未被使用但已经被预占的资源量。
本公开实施例中,每个已有任务的资源用量变化信息的总和表示第一服务器的资源用量。
结合上述的图8至图11的示例,图12示出了第一服务器的内存资源用量变化曲线示意图,图12的横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(Memory Usage),单位为吉字节(G)。
本公开实施例中,第一服务器的资源余量=第一服务器的资源总量-每个已有任务的资源用量,所以可理解为资源余量变化信息=资源总量-每个已有任务的资源用量变化信息。
结合上述的图8至图12的示例,图13示出了第一服务器的内存资源余量变化曲线示意图,图13的横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(Memory Usage),单位为吉字节(G)。
基于上述实施例,本公开还能够基于服务器上的每个已有任务的资源用量变化信息和服务器的资源总量更准确地预测出服务器的资源余量变化信息,本实施例在此基础上能够准确地预测出服务器的可用资源变化曲线。
结合图5所示,集群任务管理节点上的集群管理系统通过采集和分析历史任务,建立任务特征与任务(整个生命周期中)资源用量的映射关系,由此,预判新任务的资源用量,该过程具体包括:集群任务信息采集、任务关键信息解析、任务关键信息存储、绘制任务资源用量变化曲线、任务信息分析(ML,Machine Learning,机器学习)、存储为数据库等步骤。集群任务调度过程中,监控和分析用户提交的新的集群任务,分析任务资源用量需求,以内存资源为例,对于新任务(jobid_x),结合图14所示,示出了本实施例预测的新任务的内存资源用量变化曲线,横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(Memory Usage),单位为吉字节(G)。本公开实施例动态预测服务器上未来一段时间内的剩余资源情况,结合图15所示,示出了本实施例预测的某台服务器未来一段时间内的可用内存资源变化曲线与新任务的内存资源用量变化曲线对比图,横坐标为运行时间(Runtime),单位为分钟(Minutes),纵坐标为内存资源用量(Memory Usage),单位为吉字节(G);其中,下方的曲线表示内存资源用量变化曲线(Memory Usage),上方的曲线表示可用内存资源变化曲线(Memory Available),然后根据服务器上剩余可用资源的预测结果(基于服务器上已有的集群任务监控和机器资源用量分析得到),选取合适服务器,图15中可用内存资源变化曲线与内存资源用量变化曲线对照结果,说明该台服务器能够满足新任务(jobid_x)的要求,可将新任务调度到该台服务器上。可见本公开实施例实现了新的集群任务的动态和智能分配,以实现提升服务器资源利用率的目的。
在本实施例中还提供了一种集群任务调度装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种集群任务调度装置,如图16所示,包括:
任务获取模块1601,用于获取集群任务,集群任务为待进行调度的任务。
信息生成模块1602,用于生成集群任务的资源用量变化信息,资源用量变化信息表示集群任务的资源用量随时间变化的信息。
信息比较模块1603,用于比较资源用量变化信息与第一服务器的资源余量变化信息,资源余量变化信息用于表示第一服务器上的可用资源随时间变化的信息。
第一调度模块1604,用于根据资源用量变化信息与资源余量变化信息相匹配,将集群任务调度至第一服务器上。
在一些可选的实施方式中,资源余量变化信息包括可用资源变化曲线;信息生成模块1602,用于预测出集群任务的资源用量变化曲线;其中,资源用量变化信息包括资源用量变化曲线。
在一些可选的实施方式中,信息生成模块1602包括:
采样单元,用于对集群任务中的任务特征进行多次采样,得到多个目标任务特征。
预测单元,用于基于任务特征与资源用量之间的映射关系,预测出多个目标任务特征对应的资源用量变化曲线。
在一些可选的实施方式中,集群任务调度装置还包括:
信息获取模块,用于获取历史任务的任务特征和资源用量,历史任务为已调度完成的集群任务;
映射构建模块,用于基于机器学习的方式构建任务特征与资源用量之间的映射关系。
在一些可选的实施方式中,信息比较模块1603包括:
曲线比较单元,用于比较资源用量变化曲线与可用资源变化曲线。
匹配确定单元,用于对于集群任务运行时间段内的任一时间点,根据资源用量变化曲线中的资源用量值小于或等于可用资源变化曲线中的可用资源值,确定资源用量变化曲线与可用资源变化曲线相匹配。
在一些可选的实施方式中,集群任务调度装置还包括第二调度模块,第二调度模块包括信息比较单元和任务调度单元。
信息比较单元,用于根据资源用量变化信息与资源余量变化信息未匹配,则比较资源用量变化信息与至少一台第二服务器的资源余量变化信息;第二服务器和第一服务器均为当前集群中的服务器。
任务调度单元,用于将集群任务调度至第三服务器上;其中,第三服务器为资源余量变化信息与资源用量变化信息相匹配的第二服务器。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的集群任务调度装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本公开实施例还提供一种计算机设备,具有上述图16所示的集群任务调度装置。
请参阅图17,图17是本公开可选实施例提供的一种计算机设备的结构示意图,如图17所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图17中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本公开实施例还提供了一种计算机可读存储介质,上述根据本公开实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本公开的实施例,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种集群任务调度方法,其特征在于,所述方法包括:
获取集群任务,所述集群任务为待进行调度的任务;
生成所述集群任务的资源用量变化信息,所述资源用量变化信息表示所述集群任务的资源用量随时间变化的信息;
比较所述资源用量变化信息与第一服务器的资源余量变化信息,判断所述资源用量变化信息与所述资源余量变化信息是否匹配;所述资源余量变化信息用于表示所述第一服务器上的可用资源随时间变化的信息;
如果所述资源用量变化信息与所述资源余量变化信息相匹配,将所述集群任务调度至所述第一服务器上。
2.根据权利要求1所述的方法,其特征在于,所述资源余量变化信息包括可用资源变化曲线;所述生成所述集群任务的资源用量变化信息,包括:
预测出所述集群任务的资源用量变化曲线;其中,所述资源用量变化信息包括所述资源用量变化曲线。
3.根据权利要求2所述的方法,其特征在于,所述预测出所述集群任务的资源用量变化曲线,包括:
对所述集群任务中的任务特征进行多次采样,得到多个目标任务特征;
基于任务特征与资源用量之间的映射关系,预测出所述多个目标任务特征对应的资源用量变化曲线。
4.根据权利要求3所述的方法,其特征在于,所述预测出所述集群任务的资源用量变化曲线之前,还包括:
获取历史任务的任务特征和资源用量,所述历史任务为已调度完成的集群任务;
基于机器学习的方式构建任务特征与资源用量之间的所述映射关系。
5.根据权利要求2所述的方法,其特征在于,所述比较所述资源用量变化信息与第一服务器的资源余量变化信息,判断所述资源用量变化信息与所述资源余量变化信息是否匹配,包括:
比较所述资源用量变化曲线与所述可用资源变化曲线;
对于所述集群任务运行时间段内的任一时间点,根据所述资源用量变化曲线中的资源用量值小于或等于所述可用资源变化曲线中的可用资源值,确定所述资源用量变化曲线与所述可用资源变化曲线相匹配。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述资源用量变化信息与所述资源余量变化信息未匹配,则比较所述资源用量变化信息与至少一台第二服务器的资源余量变化信息;所述第二服务器和所述第一服务器均为当前集群中的服务器;
将所述集群任务调度至第三服务器上;其中,所述第三服务器为资源余量变化信息与所述资源用量变化信息相匹配的第二服务器。
7.根据权利要求1或6所述的方法,其特征在于,所述比较所述资源用量变化信息与第一服务器的资源余量变化信息之前,还包括:
生成所述第一服务器上的每个已有任务的资源用量变化信息;其中,所述已有任务为已经调度至所述第一服务器上的任务;
根据所述每个已有任务的资源用量变化信息和所述第一服务器的资源总量,生成所述第一服务器的资源余量变化信息。
8.一种集群任务调度装置,其特征在于,所述装置包括:
任务获取模块,用于获取集群任务,所述集群任务为待进行调度的任务;
信息生成模块,用于生成所述集群任务的资源用量变化信息,所述资源用量变化信息表示所述集群任务的资源用量随时间变化的信息;
信息比较模块,用于比较所述资源用量变化信息与第一服务器的资源余量变化信息,所述资源余量变化信息用于表示所述第一服务器上的可用资源随时间变化的信息;
第一调度模块,用于根据所述资源用量变化信息与所述资源余量变化信息相匹配,将所述集群任务调度至所述第一服务器上。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的集群任务调度方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的集群任务调度方法。
CN202310862755.1A 2023-07-13 2023-07-13 集群任务调度方法、装置、计算机设备及存储介质 Pending CN116962532A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310862755.1A CN116962532A (zh) 2023-07-13 2023-07-13 集群任务调度方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310862755.1A CN116962532A (zh) 2023-07-13 2023-07-13 集群任务调度方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN116962532A true CN116962532A (zh) 2023-10-27

Family

ID=88447117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310862755.1A Pending CN116962532A (zh) 2023-07-13 2023-07-13 集群任务调度方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN116962532A (zh)

Similar Documents

Publication Publication Date Title
US11150931B2 (en) Virtual workload migrations
US10719343B2 (en) Optimizing virtual machines placement in cloud computing environments
US8650298B2 (en) Resource allocation system
US9575810B2 (en) Load balancing using improved component capacity estimation
US9396008B2 (en) System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts
US8365182B2 (en) Method and system for provisioning of resources
CN111625331B (zh) 任务调度方法、装置、平台、服务器及存储介质
US20110320233A1 (en) Method and system for arbitraging computing resources in a cloud computing environment
US9037880B2 (en) Method and system for automated application layer power management solution for serverside applications
US20130138798A1 (en) Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems
US20140019964A1 (en) System and method for automated assignment of virtual machines and physical machines to hosts using interval analysis
US9870269B1 (en) Job allocation in a clustered environment
US8756307B1 (en) Translating service level objectives to system metrics
US9423957B2 (en) Adaptive system provisioning
JP2015011716A (ja) グリッドコンピューティングシステムの遊休リソースによるタスク実行
CN106557369A (zh) 一种多线程的管理方法及系统
US9875169B2 (en) Modeling real capacity consumption changes using process-level data
CN113515382B (zh) 云资源的分配方法、装置、电子设备及存储介质
US20180101404A1 (en) Resource and latency estimation-based scheduling
CN109558248B (zh) 一种用于确定面向海洋模式计算的资源分配参数的方法及系统
Han et al. Refining microservices placement employing workload profiling over multiple kubernetes clusters
CN113157379A (zh) 集群节点资源调度方法及装置
CN111381970A (zh) 集群任务的资源分配方法及装置、计算机装置及存储介质
CN113256108A (zh) 人力资源分配方法、装置、电子设备及存储介质
CN113485833B (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