CN117472564A - 资源调度方法、装置、计算机设备及存储介质 - Google Patents

资源调度方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN117472564A
CN117472564A CN202311329091.9A CN202311329091A CN117472564A CN 117472564 A CN117472564 A CN 117472564A CN 202311329091 A CN202311329091 A CN 202311329091A CN 117472564 A CN117472564 A CN 117472564A
Authority
CN
China
Prior art keywords
node
resource
container
determining
original
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
CN202311329091.9A
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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202311329091.9A priority Critical patent/CN117472564A/zh
Publication of CN117472564A publication Critical patent/CN117472564A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请属于大数据技术领域,涉及一种资源调度方法,包括确定各原始节点的资源指标信息,基于资源指标信息,确定容器在各原始节点的运行概率,基于运行概率,从原始节点中确定每个容器的分配节点,基于每个分配节点对应的资源指标信息,计算作业进度,其中,作业进度表示所有容器中的任务分配到的资源量占比,若作业进度达到最优,则确定分配节点为容器所运行的目标节点,即通过将节点的资源调度问题抽象为任务与资源间的分配问题,使得在对节点的资源分配结果进行评价时,引入了整体作业进度指标,有助于提升集群整体分配效益,使得任务分配更加均衡,分配更合理。

Description

资源调度方法、装置、计算机设备及存储介质
技术领域
本申请涉及大数据技术领域,尤其涉及一种资源调度方法、装置、计算机设备及存储介质。
背景技术
在传统的Hadoop(哈多普,一个开源的分布式计算平台,用于存储和处理大规模数据集的分布式计算框架)资源调度器中,Capacity和Fair等调度器是基于同构集群进行设计的,在调度的过程中没有考虑各个节点的性能差异和负载情况,而是对节点进行轮询,只要找到符合任务需求的节点就将任务分配给该节点运行。在这样的机制下,若集群中的任务被分配到性能相对不佳的节点上时,该任务将会耗费更长的时间,从而影响整体作业的完成进度。在现实生产中,由于集群资源受限、节约成本等因素限制,往往搭建的是异构集群,异构集群下的节点性能存在差异,容易造成任务分配的不合理和负载的不均衡。
发明内容
本申请实施例的目的在于提出一种资源调度方法、装置、计算机设备及存储介质,以解决异构集群下的节点性能存在差异容易造成任务分配的不合理和负载不均衡的问题。
为了解决上述技术问题,本申请实施例提供一种资源调度方法,采用了如下的技术方案:
确定各原始节点的资源指标信息;
基于资源指标信息,确定容器在各原始节点的运行概率;
基于运行概率,从原始节点中确定每个容器的分配节点;
基于每个分配节点对应的资源指标信息,计算作业进度;其中,作业进度表示所有容器中的任务分配到的资源量占比;
若作业进度达到最优,则确定分配节点为容器所运行的目标节点。
在一些实施方式中,上述确定各原始节点的资源指标信息,包括:
获取各原始节点的资源信息和运行信息;
基于预设的权重系数、资源信息和运行信息,确定各原始节点的资源指标信息,其中,权重系数与原始节点所运行的任务类型相关。
在一些实施方式中,上述基于资源指标信息,确定容器在各原始节点的运行概率,包括:
根据任务类型的优先级,对每个容器进行排序;
根据排序后的容器、资源指标信息和预设的分配权重值,确定容器在各原始节点的运行概率,其中,分配权重值与原始节点的分配倾向正相关。
在一些实施方式中,上述基于运行概率,从原始节点中确定每个容器的分配节点,包括:
确定随机概率值;
若运行概率大于或等于随机概率值,且运行概率对应的原始节点的资源信息满足容器请求的资源信息,则确认运行概率对应的原始节点为分配节点。
在一些实施方式中,上述在基于运行概率,从原始节点中确定每个容器的分配节点之后,上述方法还包括:
若运行概率小于随机概率值,则对容器重新搜索新的原始节点,并直至执行确认运行概率对应的原始节点为分配节点的步骤时,停止搜索新的原始节点。
在一些实施方式中,上述基于资源指标信息,确定容器在各原始节点的运行概率之后,上述方法还包括:
根据各原始节点的资源指标信息,构建启发因子矩阵;
根据容器在各原始节点的运行概率,构建概率矩阵;
基于启发因子矩阵和概率矩阵,构建信息素矩阵;
基于作业进度更新信息素矩阵。
在一些实施方式中,上述基于作业进度更新信息素矩阵,包括:
当容器存在分配节点时,根据作业进度确定信息素变化量;
根据预设的信息素挥发系数和信息素变化量,更新信息素矩阵。
为了解决上述技术问题,本申请实施例还提供一种资源调度装置,采用了如下的技术方案:
指标确定模块,用于确定各原始节点的资源指标信息;
概率确定模块,用于基于资源指标信息,确定容器在各原始节点的运行概率;
节点确定模块,用于基于运行概率,从原始节点中确定每个容器的分配节点;
进度计算模块,用于基于每个分配节点对应的资源指标信息,计算作业进度;其中,作业进度表示所有容器中的任务分配到的资源量占比;
目标确定模块,用于若作业进度达到最优,则确定分配节点为容器所运行的目标节点。
在一些实施方式中,上述指标确定模块包括:
获取子模块,用于获取各原始节点的资源信息和运行信息;
第一确定子模块,用于基于预设的权重系数、资源信息和运行信息,确定各原始节点的资源指标信息,其中,权重系数与原始节点所运行的任务类型相关。
在一些实施方式中,上述概率确定模块包括:
排序子模块,用于根据任务类型的优先级,对每个容器进行排序;
概率子模块,用于根据排序后的容器、资源指标信息和预设的分配权重值,确定容器在各原始节点的运行概率,其中,分配权重值与原始节点的分配倾向正相关。
在一些实施方式中,上述节点确定模块包括:
第二确定子模块,用于确定随机概率值;
第三确定子模块,用于若运行概率大于或等于随机概率值,且运行概率对应的原始节点的资源信息满足容器请求的资源信息,则确认运行概率对应的原始节点为分配节点。
在一些实施方式中,上述资源调度装置还包括:
搜索模块,用于若运行概率小于随机概率值,则对容器重新搜索新的原始节点,并直至执行确认运行概率对应的原始节点为分配节点的步骤时,停止搜索新的原始节点。
在一些实施方式中,上述资源调度装置还包括:
第一构建模块,用于根据各原始节点的资源指标信息,构建启发因子矩阵;
第二构建模块,用于根据容器在各原始节点的运行概率,构建概率矩阵;
第三构建模块,用于基于启发因子矩阵和概率矩阵,构建信息素矩阵;
矩阵更新模块,用于基于作业进度更新信息素矩阵。
在一些实施方式中,上述矩阵更新模块包括:
变化子模块,用于当容器存在分配节点时,根据作业进度确定信息素变化量;
更新子模块,用于根据预设的信息素挥发系数和信息素变化量,更新信息素矩阵。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,其中,计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,处理器执行计算机可读指令时实现如上述的资源调度方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时实现如上述的资源调度方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的资源调度方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的资源调度方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
通过确定各原始节点的资源指标信息,基于资源指标信息,确定容器在各原始节点的运行概率,基于运行概率,从原始节点中确定每个容器的分配节点,基于每个分配节点对应的资源指标信息,计算作业进度,其中,作业进度表示所有容器中的任务分配到的资源量占比,若作业进度达到最优,则确定分配节点为容器所运行的目标节点,即通过将节点的资源调度问题抽象为任务与资源间的分配问题,使得在对节点的资源分配结果进行评价时,引入了整体作业进度指标,有助于提升集群整体分配效益,使得任务分配更加均衡,分配更合理。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是本申请实施例提供的集群资源调度的场景示意图
图3是根据本申请的资源调度方法的一个实施例的流程图;
图4是根据本申请的资源调度装置的一个实施例的结构示意图;
图5是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的资源调度方法一般由服务器/终端设备执行,相应地,资源调度装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
在一实施方式中,如图2所示,图2为本申请实施例提供的集群资源调度的场景示意图,Yarn(Yet Another Resource Negotiator,在本申请实施例中可以表示为集群)是Apache Hadoop生态系统中的一个资源管理和作业调度框架。Yarn的主要功能是分配和管理在Hadoop集群中的计算资源,以便有效地运行各种应用程序,包括批处理作业、交互式查询、流式处理等。ResourceManager(资源管理),负责Yarn中所有资源的统一管理和分配,用于接收来自各个节点(NodeManager)的资源汇报信息,并将需要运行的任务分配到相应节点(NodeManager)上进行执行。其中,NodeManager是执行任务、应用程序的节点,实时监控应用程序或是任务的资源使用情况,资源使用情况包括CPU、内存、硬盘、网络等,并向ResourceManager汇报。
具体地,ResourceManager是由调度器和应用程序管理器构成的,用于接收客户端的任务运行请求,由调度器根据各个应用程序的资源需求进行资源分配,应用程序管理器负责管理所有的应用程序,包括应用程序分配给空闲的NodeManager进行执行、与调度器协商资源、监控应用程序的运行状态等。调度器根据应用程序的资源要求和集群机器的资源情况,为应用程序分配资源。NodeManager会通过心跳机制向ResourceManager汇报应用程序的运行状态、资源使用情况、当前NodeManager的健康状态等,比如NodeManager会定期通过心跳机制将节点健康状态汇报给ResourceManager,如果ResourceManager发现该NodeManager处于不健康状态下,则会将其状态置为UNHEALTHY(非健康状态),此后ResourceManager不会再为该NodeManager分配新的任务,直至该NodeManager重新变为健康状态。进一步地,NodeManager接收到ResourceManager分配的需要运行的任务后,是通过创建容器,并向ResourceManager申请容器运行资源后,在容器中执行任务的。
进一步地,本申请可以应用于异构环境下的资源调度。
继续参考图3,示出了根据本申请的资源调度方法的一个实施例的流程图。所述的资源调度方法,包括以下步骤:
步骤S301,确定各原始节点的资源指标信息。
其中,节点是指计算机集群中的一个单独的物理服务器或虚拟机,例如节点可以是物理设备或云计算环境中的虚拟实例。节点是计算资源的基本单元,它可以运行一个或多个容器。此处的原始节点为未分配任务的节点。
在本申请实施例中,资源指标信息包括节点的内存资源、CPU使用率、CPU运行速度、CPU核数、节点的空闲可用资源量、节点的当前负载量等。通过确定各个原始节点的资源指标信息,也就得到各个节点的运行性能和负载情况,便于后续将容器中的任务分配到合适的节点中。
步骤S302,基于资源指标信息,确定容器在各原始节点的运行概率。
其中,容器是一种虚拟化技术,允许应用程序及其所有依赖项(如库、配置文件等)在隔离的环境中运行。一个节点可以运行多个容器,每个容器都是相互隔离的运行环境。容器可以在同一个节点上运行,也可以在不同的节点上分布,这取决于集群的配置和容器编排工具的规划。
示例性地,设定容器1为Web服务,容器1用于负责处理用户的HTTP请求,提供网站前端和用户界面;设定容器2为订单服务,容器2用于负责处理用户的订单相关请求,包括下单、支付、订单状态查询等;设定容器3为商品服务,容器3用于负责处理商品相关请求,如商品列表、商品详情等;设定容器4为用户服务,容器4用于负责处理用户相关请求,如用户登录、注册等;假设一个集群有三个节点,分别为节点A、节点B和节点C;应用程序被拆分成四个微服务,每个微服务都运行在独立的容器中,分别部署在三个节点上,即容器1(Web服务)部署在节点A上,用于处理用户的HTTP请求并提供网站前端;容器2(订单服务)部署在节点B上,用于处理与订单相关的请求,如下单、支付等;容器3(商品服务)部署在节点C上,用于负责处理与商品相关的请求,如商品列表、商品详情等;容器4(用户服务)也部署在节点B上,用于处理与用户相关的请求,如用户登录、注册等。
由上述例子可知,通过将不同的微服务部署在不同的节点上,可以实现负载均衡和高可用性。当用户发送请求时,负载均衡器可以根据节点的负载情况选择合适的节点来处理请求。如果节点A出现故障,Web服务容器可以在其他可用的节点上重新部署,确保服务的持续可用性。
其中,运行概率可以用pi,j(t)表示,pi,j表示容器Ci在原始节点资源j上运行的概率。由于同一个容器只能选择一个原始节点资源指标信息资源来运行任务,即运行概率的值越大,代表容器Ci越倾向于选择原始节点资源j进行分配。
步骤S303,基于运行概率,从原始节点中确定每个容器的分配节点。
通过每个容器上的任务所对应的原始节点的运行概率,可以表示该容器被分配到相应的原始节点的可能性,即运行概率越高的原始节点即为容器的分配节点,该分配节点一般为运行容器任务的负载均衡较佳的节点。
步骤S304,基于每个分配节点对应的资源指标信息,计算作业进度;其中,作业进度表示所有容器中的任务分配到的资源量占比。
由于资源指标信息反映了分配节点的运行效率,即可以通过每次得到所有容器的分配节点时,可以将本次分配节点的资源指标信息来计算整个容器的作业进度,作业进度其中,assignk表示作业k被分配的资源量,totalk表示作业k需要的总资源量。
步骤S305,若作业进度达到最优,则确定分配节点为容器所运行的目标节点。
当作业进度达到最优时,说明本次的分配节点满足节点的资源指标信息的分配效益,此时可以确定分配节点为最终分配给容器的目标节点。
通过确定各原始节点的资源指标信息,基于资源指标信息,确定容器在各原始节点的运行概率,基于运行概率,从原始节点中确定每个容器的分配节点,基于每个分配节点对应的资源指标信息,计算作业进度,其中,作业进度表示所有容器中的任务分配到的资源量占比,若作业进度达到最优,则确定分配节点为容器所运行的目标节点,即通过将节点的资源调度问题抽象为任务与资源间的分配问题,使得在对节点的资源分配结果进行评价时,引入了整体作业进度指标,有助于提升集群整体分配效益,使得任务分配更加均衡,分配更合理。
在一些实施方式中,上述确定各原始节点的资源指标信息,包括:
获取各原始节点的资源信息和运行信息;
基于预设的权重系数、资源信息和运行信息,确定各原始节点的资源指标信息,其中,权重系数与原始节点所运行的任务类型相关。
其中,资源信息可以是CPU核数、原始节点的空闲可用资源量、内存资源、资源空闲率、当前负载量等,运行信息可以是原始节点的性能、负载、CPU运行速度。
进一步地,原始节点的资源指标信息可以表示为 其中,A,B,C,D分别为权重系数,且A+B+C+D=1;n表示集群中的原始节点资源数量,取决于集群中的主机数量(机器数量),用于构建集群的机器越多,节点数就越多;cpuj表示原始节点j的CPU资源量(CPU核数),cpuSpeedj表示原始节点j的CPU运行速度,memj表示原始节点j的内存资源,totalRj表示原始节点j的总资源量,idleRJ表示原始节点j的空闲资源量。本申请实施例将hmi,j定义为容器节点CPU核数、CPU运行速度、节点内存资源和资源空闲率(定义为1-节点负载率)的加权值,可以通过修改Yam中NodeManager模块和ResourceManager模块之间的心跳机制,使得调度器获取到原始节点的资源指标信息。
进一步地,可以根据任务类型调节权重系数,以计算出更加合适的资源效益,比如对于计算密集型任务,可以适当增加权重系数A和B,对于内存密集型任务,可以适当增加权重系数C。通过调节权重系数,可以对不同类型的任务计算比较合适的资源效益值。
进一步地,可以将每个原始节点的资源指标信息作为元素,并构建启发因子矩阵,记为HMc*n=(hmi,j)c*n,该启发因子矩阵表示容器在原始节点上获取的资源效益,由容器各节点的性能、负载、内存等因素决定,其中,c表示容器集合数量,n表示节点资源数量。
为了满足用户在不同集群环境下的高效率资源调度,可以将资源调度问题抽象为任务与资源间的分配问题,使用蚁群算法搜索最优解,即通过将蚂蚁作为资源调度者,将容器所申请到的分配节点方案视为蚁群路径,通过不断的信息素更新最终得出集群整体分配效益最高的方案,以提高异构环境下的调度效率。
在一些实施方式中,上述基于资源指标信息,确定容器在各原始节点的运行概率,包括:
根据任务类型的优先级,对每个容器进行排序;
根据排序后的容器、资源指标信息和预设的分配权重值,确定容器在各原始节点的运行概率,其中,分配权重值与原始节点的分配倾向正相关。
具体地,由于传统的蚁群算法是随机选择初始点的,但是在实际的资源分配中任务是具有优先级的,因此本申请采用优先级的方式选取对应容器的原始节点。当蚂蚁t选择容器Ci后,首先通过运行概率矩阵Pc*n=(pi,j)c*n计算将其分配给原始节点j的运行概率pi,j(t),具体计算公式为:
其中,α和β均为分配权重值,α表示信息素的权重,该值越大表示蚂蚁越依赖信息素做出选择,更倾向于群体的选择结果;β表示启发因子的权重,该值越大表示蚂蚁越依赖启发因子做出选择,更倾向于自身选择的结果。allowedx表示蚂蚁t下一步允许访问的节点集合,即蚂蚁t尚未访问过的节点集合,x表示下一个访问的节点。
在一些实施方式中,上述基于运行概率,从原始节点中确定每个容器的分配节点,包括:
确定随机概率值;
若运行概率大于或等于随机概率值,且运行概率对应的原始节点的资源信息满足容器请求的资源信息,则确认运行概率对应的原始节点为分配节点。
在蚂蚁t得到容器Ci各个原始节点的运行概率后,通过轮盘赌算法选择对应的原始节点的资源指标信息。具体地,随机生成一个随机概率值,对容器Ci各原始节点的运行概率依次累加;当累加得到的运行概率超过随机概率值时,选择当前概率对应的分配方案,即前面已经计算出来蚂蚁t在容器Ci到所有原始节点的运行概率,根据轮盘赌算法选择累加得到的运行概率超过随机概率值的原始节点作为容器Ci选择运行任务的节点。
进一步地,当蚂蚁t确定了选择运行任务的节点后,需要通过容器判断是否可以分配到该节点上,当原始节点j上的可用资源大于容器Ci的请求资源时则代表可分配,也就是满足容器请求的资源信息,此时修改禁忌矩阵(禁忌矩阵记录各节点的分配情况)相应的值,禁忌矩阵记为TAc×n=(yi,j)c×n,yi,j表示容器Ci是否已经在原始节点j进行了分配。若已进行了分配,则yi,j=1,否则yi,j=0。因为同一个容器只能选择一个原始节点,故需满足约束条件
在一些实施方式中,上述在基于运行概率,从原始节点中确定每个容器的分配节点之后,上述方法还包括:
若运行概率小于随机概率值,则对容器重新搜索新的原始节点,并直至执行确认运行概率对应的原始节点为分配节点的步骤时,停止搜索新的原始节点。
具体地,若运行概率小于随机概率值,则重新选择新的原始节点,直到选择到合适的原始节点或所有原始节点均不满足容器请求的资源信息时停止搜索。对每只蚂蚁都不断重复上述过程,直到所有原始节点都已遍历完成。
进一步地,如果根据轮盘赌算法能找到合适的节点进行容器任务的运行或是找不到符合容器运行所需资源需求的节点,则本次分配结束。
在一些实施方式中,上述基于资源指标信息,确定容器在各原始节点的运行概率之后,上述方法还包括:
根据各原始节点的资源指标信息,构建启发因子矩阵;
根据容器在各原始节点的运行概率,构建概率矩阵;
基于启发因子矩阵和概率矩阵,构建信息素矩阵;
基于作业进度更新信息素矩阵。
具体地,可以将每个原始节点hmi,j的资源指标信息作为元素,并构建启发因子矩阵,记为HMc*n=(hmi,j)c*n,将每个原始节点j的运行概率pi,j(t)作为元素构建概率矩阵Pc*n=(pi,j)c*n,其中,c表示容器集合数量,n表示节点资源数量,进而基于启发因子矩阵和概率矩阵,构建信息素矩阵,记为PHc*n=(phi,j)c*n
进一步地,先将信息素矩阵进行初始化,例如将PHc*n=(phi,j)c*n的矩阵元素的初始值设定为常数1,也就是将初始化后的信息素矩阵全部置为1,即初始信息素phi,j均取常数1。
在一些实施方式中,上述基于作业进度更新信息素矩阵,包括:
当容器存在分配节点时,根据作业进度确定信息素变化量;
根据预设的信息素挥发系数和信息素变化量,更新信息素矩阵。
具体地,通过蚂蚁算法搜索到容器的分配节点时,也就是完成了本轮的原始节点分配的过程,在每一轮的分配节点迭代结束后,都需要对信息素矩阵进行更新。本申请采用全局信息素更新方式,更新公式为:其中,信息素变化量为/>ρ表示信息素挥发系数,Q为常量,TPs为本轮迭代中蚂蚁s的整体作业进度,这部分中的s是指蚂蚁集合T中的任意蚂蚁s,m表示蚂蚁数量。信息素矩阵更新完成后,将会进入下一次迭代,不断重复上述搜索过程,直到迭代达到最大次数,最后一轮迭代中整体作业进度值最优的蚂蚁选择的分配方案就是算法得出的最优分配方案。
在本申请实施例中,将蚂蚁作为资源调度者,将任务资源申请容器某个节点的分配方案视为蚁群路径,基于自定义的启发因子矩阵和信息素矩阵,借助轮盘赌算法进行节点选择,增加了分配结果的随机性,防止蚂蚁算法过早收敛从而进入局部最优。在对分配结果进行评价时,引入了整体作业进度指标,帮助进行全局信息素的更新,有助于提升算法全局搜索的精确度和算法收敛速度,进而得到集群整体分配效益较高的方案。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图4,作为对上述图3所示方法的实现,本申请提供了一种资源调度装置的一个实施例,该装置实施例与图3所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的资源调度装置400包括:指标确定模块401、概率确定模块402、节点确定模块403、进度计算模块404以及目标确定模块405,其中:
指标确定模块401,用于确定各原始节点的资源指标信息;
概率确定模块402,用于基于资源指标信息,确定容器在各原始节点的运行概率;
节点确定模块403,用于基于运行概率,从原始节点中确定每个容器的分配节点;
进度计算模块404,用于基于每个分配节点对应的资源指标信息,计算作业进度;其中,作业进度表示所有容器中的任务分配到的资源量占比;
目标确定模块405,用于若作业进度达到最优,则确定分配节点为容器所运行的目标节点。
在一些实施方式中,上述指标确定模块401包括:
获取子模块,用于获取各原始节点的资源信息和运行信息;
第一确定子模块,用于基于预设的权重系数、资源信息和运行信息,确定各原始节点的资源指标信息,其中,权重系数与原始节点所运行的任务类型相关。
在一些实施方式中,上述概率确定模块402包括:
排序子模块,用于根据任务类型的优先级,对每个容器进行排序;
概率子模块,用于根据排序后的容器、资源指标信息和预设的分配权重值,确定容器在各原始节点的运行概率,其中,分配权重值与原始节点的分配倾向正相关。
在一些实施方式中,上述节点确定模块403包括:
第二确定子模块,用于确定随机概率值;
第三确定子模块,用于若运行概率大于或等于随机概率值,且运行概率对应的原始节点的资源信息满足容器请求的资源信息,则确认运行概率对应的原始节点为分配节点。
在一些实施方式中,上述资源调度装置还包括:
搜索模块,用于若运行概率小于随机概率值,则对容器重新搜索新的原始节点,并直至执行确认运行概率对应的原始节点为分配节点的步骤时,停止搜索新的原始节点。
在一些实施方式中,上述资源调度装置还包括:
第一构建模块,用于根据各原始节点的资源指标信息,构建启发因子矩阵;
第二构建模块,用于根据容器在各原始节点的运行概率,构建概率矩阵;
第三构建模块,用于基于启发因子矩阵和概率矩阵,构建信息素矩阵;
矩阵更新模块,用于基于作业进度更新信息素矩阵。
在一些实施方式中,上述矩阵更新模块包括:
变化子模块,用于当容器存在分配节点时,根据作业进度确定信息素变化量;
更新子模块,用于根据预设的信息素挥发系数和信息素变化量,更新信息素矩阵。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图5,图5为本实施例计算机设备基本结构框图。
所述计算机设备5包括通过系统总线相互通信连接存储器51、处理器52、网络接口53。需要指出的是,图中仅示出了具有组件51-53的计算机设备5,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器51至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D资源调度存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器51可以是所述计算机设备5的内部存储单元,例如该计算机设备5的硬盘或内存。在另一些实施例中,所述存储器51也可以是所述计算机设备5的外部存储设备,例如该计算机设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器51还可以既包括所述计算机设备5的内部存储单元也包括其外部存储设备。本实施例中,所述存储器51通常用于存储安装于所述计算机设备5的操作系统和各类应用软件,例如资源调度方法的计算机可读指令等。此外,所述存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制所述计算机设备5的总体操作。本实施例中,所述处理器52用于运行所述存储器51中存储的计算机可读指令或者处理数据,例如运行所述资源调度方法的计算机可读指令。
所述网络接口53可包括无线网络接口或有线网络接口,该网络接口53通常用于在所述计算机设备5与其他电子设备之间建立通信连接。
本实施例中提供的计算机设备可以执行上述资源调度方法。此处资源调度方法可以是上述各个实施例的资源调度方法。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的资源调度方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种资源调度方法,其特征在于,包括下述步骤:
确定各原始节点的资源指标信息;
基于所述资源指标信息,确定所述容器在各所述原始节点的运行概率;
基于所述运行概率,从所述原始节点中确定每个所述容器的分配节点;
基于每个所述分配节点对应的资源指标信息,计算作业进度;其中,所述作业进度表示所有容器中的任务分配到的资源量占比;
若所述作业进度达到最优,则确定所述分配节点为所述容器所运行的目标节点。
2.根据权利要求1所述的资源调度方法,其特征在于,所述确定各原始节点的资源指标信息,包括:
获取各所述原始节点的资源信息和运行信息;
基于预设的权重系数、所述资源信息和所述运行信息,确定各所述原始节点的资源指标信息,其中,所述权重系数与原始节点所运行的任务类型相关。
3.根据权利要求2所述的资源调度方法,其特征在于,所述基于所述资源指标信息,确定所述容器在各所述原始节点的运行概率,包括:
根据所述任务类型的优先级,对每个容器进行排序;
根据排序后的容器、资源指标信息和预设的分配权重值,确定所述容器在各所述原始节点的运行概率,其中,所述分配权重值与原始节点的分配倾向正相关。
4.根据权利要求1所述的资源调度方法,其特征在于,所述基于所述运行概率,从所述原始节点中确定每个所述容器的分配节点,包括:
确定随机概率值;
若所述运行概率大于或等于所述随机概率值,且所述运行概率对应的原始节点的资源信息满足所述容器请求的资源信息,则确认所述运行概率对应的原始节点为所述分配节点。
5.根据权利要求4所述的资源调度方法,其特征在于,在所述基于所述运行概率,从所述原始节点中确定每个所述容器的分配节点之后,所述方法还包括:
若所述运行概率小于所述随机概率值,则对所述容器重新搜索新的原始节点,并直至执行所述确认所述运行概率对应的原始节点为所述分配节点的步骤时,停止所述搜索新的原始节点。
6.根据权利要求1-5任意一项所述的资源调度方法,其特征在于,所述基于所述资源指标信息,确定所述容器在各所述原始节点的运行概率之后,所述方法还包括:
根据各原始节点的资源指标信息,构建启发因子矩阵;
根据所述容器在各所述原始节点的运行概率,构建概率矩阵;
基于所述启发因子矩阵和所述概率矩阵,构建信息素矩阵;
基于所述作业进度更新所述信息素矩阵。
7.根据权利要求6所述的资源调度方法,其特征在于,所述基于所述作业进度更新所述信息素矩阵,包括:
当所述容器存在分配节点时,根据所述作业进度确定信息素变化量;
根据预设的信息素挥发系数和所述信息素变化量,更新所述信息素矩阵。
8.一种资源调度装置,其特征在于,包括:
指标确定模块,用于确定各原始节点的资源指标信息;
概率确定模块,用于基于所述资源指标信息,确定所述容器在各所述原始节点的运行概率;
节点确定模块,用于基于所述运行概率,从所述原始节点中确定每个所述容器的分配节点;
进度计算模块,用于基于每个所述分配节点对应的资源指标信息,计算作业进度;其中,所述作业进度表示所有容器中的任务分配到的资源量占比;
目标确定模块,用于若所述作业进度达到最优,则确定所述分配节点为所述容器所运行的目标节点。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的资源调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的资源调度方法的步骤。
CN202311329091.9A 2023-10-12 2023-10-12 资源调度方法、装置、计算机设备及存储介质 Pending CN117472564A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311329091.9A CN117472564A (zh) 2023-10-12 2023-10-12 资源调度方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311329091.9A CN117472564A (zh) 2023-10-12 2023-10-12 资源调度方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117472564A true CN117472564A (zh) 2024-01-30

Family

ID=89638831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311329091.9A Pending CN117472564A (zh) 2023-10-12 2023-10-12 资源调度方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117472564A (zh)

Similar Documents

Publication Publication Date Title
Praveenchandar et al. RETRACTED ARTICLE: Dynamic resource allocation with optimized task scheduling and improved power management in cloud computing
Liu et al. A hierarchical framework of cloud resource allocation and power management using deep reinforcement learning
Deldari et al. CCA: a deadline-constrained workflow scheduling algorithm for multicore resources on the cloud
US20190324819A1 (en) Distributed-system task assignment method and apparatus
CN104915407B (zh) 一种基于Hadoop多作业环境下的资源调度方法
Wang et al. Adaptive scheduling for parallel tasks with QoS satisfaction for hybrid cloud environments
US20200007456A1 (en) Computerized methods and systems for managing cloud computer services
Masdari et al. Efficient task and workflow scheduling in inter-cloud environments: challenges and opportunities
Zuo et al. A multi-objective hybrid cloud resource scheduling method based on deadline and cost constraints
US8843929B1 (en) Scheduling in computer clusters
CN110209494B (zh) 一种面向大数据的分布式任务调度方法及Hadoop集群
US10756981B2 (en) Efficiency indexes
Bi et al. SLA-based optimisation of virtualised resource for multi-tier web applications in cloud data centres
US10228974B2 (en) Intelligent management of processing tasks on multi-tenant or other constrained data processing platform
US9184982B2 (en) Balancing the allocation of virtual machines in cloud systems
Heidari et al. Quality of Service (QoS)-driven resource provisioning for large-scale graph processing in cloud computing environments: Graph Processing-as-a-Service (GPaaS)
JP2021504780A (ja) 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け
CN109614227A (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
Zhou et al. Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments
CN113495779A (zh) 一种任务调度方法和装置、任务执行系统
Sharma et al. A Dynamic optimization algorithm for task scheduling in cloud computing with resource utilization
Leena Sri et al. An empirical model of adaptive cloud resource provisioning with speculation
JP7182836B2 (ja) 分散コンピューティング環境における作業負荷の自動対角スケーリング
Oliveira et al. Optimizing query prices for data-as-a-service
Ru et al. An efficient deadline constrained and data locality aware dynamic scheduling framework for multitenancy clouds

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