CN113778610B - 用于确定资源的方法和装置 - Google Patents

用于确定资源的方法和装置 Download PDF

Info

Publication number
CN113778610B
CN113778610B CN202110038498.0A CN202110038498A CN113778610B CN 113778610 B CN113778610 B CN 113778610B CN 202110038498 A CN202110038498 A CN 202110038498A CN 113778610 B CN113778610 B CN 113778610B
Authority
CN
China
Prior art keywords
container
amount
resource
resources
containers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110038498.0A
Other languages
English (en)
Other versions
CN113778610A (zh
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 Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information 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 Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110038498.0A priority Critical patent/CN113778610B/zh
Publication of CN113778610A publication Critical patent/CN113778610A/zh
Application granted granted Critical
Publication of CN113778610B publication Critical patent/CN113778610B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了用于确定资源的方法和装置,具体实现方案为:响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合;基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一资源量和第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量;响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表;基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量。该方案通过周期性地对调度资源进行确定,找到最佳的资源分配给容器,提升了主机的资源利用率。

Description

用于确定资源的方法和装置
技术领域
本申请的实施例涉及计算机技术领域,具体涉及数据处理技术领域,尤其涉及用于确定资源的方法和装置。
背景技术
Apache Hadoop YARN(Yet Another Resource Negoitator)是当前大数据领域主流的集群管理与调度系统,也称其为数据中心操作系统,主要由资源管理ResourceManager、节点管理NodeManager以及应用程序主管ApplicationMaster等组件构成。其中NodeManager主要负责计算节点的资源汇报以及容器管理,容器负责执行ApplicationMaster分配的任务。NodeManager在启动容器时会根据容器所申请的资源量计算出对应的时间片,并通过cgroups技术实现容器的调度。然而现有Apache Hadoop YARN系统无法实现同一主机上容器资源的动态调度,导致主机资源利用率无法得到有效提升。
发明内容
本申请提供了一种用于确定资源的方法、装置、设备以及存储介质。
根据本申请的第一方面,提供了一种用于确定资源的方法,该方法包括:响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合,其中,第一容器集合用于表征业务中处于运行状态的各个容器的集合,第二容器集合用于表征业务中作为待启动的各个容器的集合;基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,其中,第一因子用于表征资源的调整范围,第一资源量和第二资源量基于容器的资源的使用量和相应容器对应的第一因子的第一取值计算得到;响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表;基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量,其中,第三资源量基于容器的资源的使用量和相应容器对应的第一因子的第二取值计算得到,目标资源总量用于表征容器列表中各个容器的资源的待释放的资源量的总和。
在一些实施例中,基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,包括:基于第一容器集合、第二容器集合和各个容器对应的第一因子的最大值,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,其中,各个容器对应的第一因子基于业务的优先级和各个容器对应的作业的优先级而动态调整。
在一些实施例中,基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量,包括:基于容器列表和选取后的各个容器的第一因子的最小值,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量。
在一些实施例中,各个容器的第一因子利用深度学习网络预先训练得到。
在一些实施例中,阈值基于超卖理论预先设定。
在一些实施例中,方法还包括:响应于资源总量不大于阈值,基于第二资源量和阈值,对第二容器集合中的各个容器的资源值进行调整。
在一些实施例中,在基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量之后,还包括:响应于资源总量与目标资源总量的差值不大于阈值,基于第三资源量和阈值,对容器列表中的各个容器的资源值进行调整。
在一些实施例中,在基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量之后,还包括:响应于资源总量与目标资源总量的差值大于阈值,跳转至基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表。
根据本申请的第二方面,提供了一种用于确定资源的装置,装置包括:获取单元,被配置成响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合,其中,第一容器集合用于表征业务中处于运行状态的各个容器的集合,第二容器集合用于表征业务中作为待启动的各个容器的集合;第一确定单元,被配置成基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,其中,第一因子用于表征资源的调整范围,第一资源量和第二资源量基于容器的资源的使用量和相应容器对应的第一因子的第一取值计算得到;选取单元,被配置成响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表;第二确定单元,被配置成基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量,其中,第三资源量基于容器的资源的使用量和相应容器对应的第一因子的第二取值计算得到,目标资源总量用于表征容器列表中各个容器的资源的待释放的资源量的总和。
在一些实施例中,第一确定单元进一步被配置成基于第一容器集合、第二容器集合和各个容器对应的第一因子的最大值,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,其中,各个容器对应的第一因子基于业务的优先级和各个容器对应的作业的优先级而动态调整。
在一些实施例中,第二确定单元进一步被配置成基于容器列表和选取后的各个容器的第一因子的最小值,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量。
在一些实施例中,各个容器的第一因子利用深度学习网络预先训练得到;阈值基于超卖理论预先设定。
在一些实施例中,装置还包括:第一执行单元,被配置成响应于资源总量不大于阈值,基于第二资源量和阈值,对第二容器集合中的各个容器的资源值进行调整。
在一些实施例中,装置还包括:第二执行操作,被配置成响应于资源总量与目标资源总量的差值不大于阈值,基于第三资源量和阈值,对容器列表中的各个容器的资源值进行调整。
在一些实施例中,装置还包括:跳转单元,被配置成响应于资源总量与目标资源总量的差值大于阈值,跳转至基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表。
根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。
根据本申请的第四方面,本申请提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。
根据本申请的技术采用响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合,其中,第一容器集合用于表征业务中处于运行状态的各个容器的集合,第二容器集合用于表征业务中作为待启动的各个容器的集合,基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表,基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量,解决了现有系统中无法实现同一主机上容器资源的动态调度,导致主机资源利用率无法有效提升的问题。利用第一因子对容器的资源量进行缩放,使资源的确定更加灵活、智能而富有针对性,通过周期性地对调度资源进行确定并实时调整容器的资源值达到资源调度的目的,找到最佳的资源分配给容器,在保证容器资源使用量的同时,提升了主机的资源利用率。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。
图1是根据本申请的用于确定资源的方法的第一实施例的示意图;
图2是可以实现本申请实施例的用于确定资源的方法的场景图;
图3是根据本申请的用于确定资源的方法的第二实施例的示意图;
图4是根据本申请的用于确定资源的装置的一个实施例的结构示意图;
图5是用来实现本申请实施例的用于确定资源的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了根据本申请的用于确定资源的方法的第一实施例的示意图100。该用于确定资源的方法,包括以下步骤:
步骤101,响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合。
在本实施例中,当执行主体(例如服务器)接收到某项业务中的某个资源的调度请求时,通过有线连接或无线连接的方式从本地或远端设备上获取业务的第一容器集合和第二容器集合。第一容器集合可以用于表征业务中处于运行状态的各个容器的集合,第二容器集合可以用于表征业务中作为待启动的各个容器的集合。需要指出的是,上述无线连接方式可以包括但不限于3G、4G、5G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
步骤102,基于步骤101中获取到的第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量。
在本实施例中,执行主体可以基于第一容器集合、第二容器集合和各个容器对应的第一因子,利用资源量算法确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并将第一资源量和第二资源量进行累计,生成与各个第一资源量和各个第二资源量相对应的资源总量。第一因子可以用于表征资源的调整范围,例如:资源的调整范围最小值为1.2,最大值为1.4,则第一因子表示为[1.2,1.4]。第一资源量和第二资源量可以利用资源量算法基于容器的资源的使用量和该容器对应的第一因子的第一取值计算得到。第一取值为调整范围中的任意值。
需要指出的是,该资源量算法的模型例如可以是数据表或计算公式等,本实施例不对此方面内容做任何限定,技术人员可以根据实际需求,自行设定模型的结构,本公开的实施例对此不做限定。
步骤103,响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表。
在本实施例中,执行主体可以将资源总量与阈值进行对比,当判定资源总量大于阈值时,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表。容器评分表示系统基于容器的重要等级为容器所打的分数。对第一容器集合和第二容器集合进行选取可以基于容器评分由低到高的顺序,对第一容器集合中的各个容器和第二容器集合中的各个容器进行选取。容器列表中容器的排列顺序为评分由低到高的各个容器顺序排列。阈值基于节点的总资源量而预先设定。容器评分可以根据业务优先级与作业优先级通过简易算法换算而来,具体算法为:业务优先级按照低中高,分别取基数为0、10、20,每一个级别之间的间距为10,作业优先级为数字。评分公式为:得分=基数+作业优先级%间距。
步骤104,基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量。
在本实施例中,执行主体可以基于步骤103生成的容器列表和选取后的各个容器的第一因子,利用待释放的资源量算法得到容器列表中各个容器的待释放资源量对应的第三资源量,并将各个容器的第三资源量进行累计,生成与各个第三资源量相对应的目标资源总量。第三资源量可以利用待释放的资源量算法基于容器的资源的使用量和相应容器对应的第一因子的第二取值计算得到,目标资源总量可以用于表征容器列表中各个容器的资源的待释放的资源量的总和。
在本实施例的一些可选的实现方式中,在基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量之后,还包括:响应于资源总量与目标资源总量的差值不大于阈值,基于第三资源量和阈值,对容器列表中的各个容器的资源值进行调整。当资源总量没有超过阈值时,即已满足了资源供给的条件,则基于选取的待释放的资源量,对容器列表中的各个容器进行资源调整,实现容器的调度。比如,NodeManager在启动容器时会根据容器所申请的资源计算出对应的时间片,并通过cgroups技术修改CPU控制器下的cpu.cfs_quota_us值实现容器的调度。
在本实施例的一些可选的实现方式中,在基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量之后,还包括:响应于资源总量与目标资源总量的差值大于阈值,跳转至基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表。当资源总量仍然超过阈值,即不满足资源供给的条件时,继续选取容器列表中的下一容器,并生成新的目标资源总量,以获得更多的释放资源。
在本实施例的一些可选的实现方式中,方法还包括:响应于资源总量不大于阈值,基于第二资源量和阈值,对第二容器集合中的各个容器的资源值进行调整。当资源总量没有超过阈值,即未达到资源调整的条件时,对待启动的各个容器进行资源调整,以实现容器的调度。
继续参见图2,本实施例的用于确定资源的方法200运行于电子设备201中。当电子设备201接收到业务中某个资源的调度请求后,获取业务的第一容器集合和第二容器集合202,然后电子设备201基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量203,当电子设备201判定资源总量大于阈值后,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表204,最后电子设备201基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量205。其中,第一容器集合用于表征业务中处于运行状态的各个容器的集合,第二容器集合用于表征业务中作为待启动的各个容器的集合。第一因子用于表征资源的调整范围,第一资源量和第二资源量基于容器的资源的使用量和相应容器对应的第一因子的第一取值计算得到。第三资源量基于容器的资源的使用量和相应容器对应的第一因子的第二取值计算得到,目标资源总量用于表征容器列表中各个容器的资源的待释放的资源量的总和。
本申请的上述实施例提供的用于确定资源的方法采用响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合,其中,第一容器集合用于表征业务中处于运行状态的各个容器的集合,第二容器集合用于表征业务中作为待启动的各个容器的集合,基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表,基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量,解决了现有系统中无法实现同一主机上容器资源的动态调度,导致主机资源利用率无法有效提升的问题。利用第一因子对容器的资源量进行缩放,使资源的确定更加灵活、智能而富有针对性,通过周期性地对调度资源进行确定并实时调整容器的资源值达到资源调度的目的,找到最佳的资源分配给容器,在保证容器资源使用量的同时,提升了主机的资源利用率。
进一步参考图3,其示出了用于确定资源的方法的第二实施例的示意图300。该方法的流程包括以下步骤:
步骤301,响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合。
步骤302,基于第一容器集合、第二容器集合和各个容器对应的第一因子的最大值,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量。
在本实施例中,执行主体可以基于第一容器集合、第二容器集合和各个容器对应的第一因子的最大值,利用资源量算法确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量。第一资源量和第二资源量可以利用资源量算法基于容器的资源的使用量和相应容器对应的第一因子的最大值计算得到。各个容器对应的第一因子与业务优先级和容器的作业优先级相对应,各个容器对应的第一因子基于业务的优先级和各个容器对应的作业的优先级而动态调整。例如,按照业务特点将业务划分为高中低等三种业务优先级,同一个业务优先级又划分成不同的作业优先级,基于每一种作业优先级为各个容器定义不同的第一因子,支持动态调整,譬如高优先级的第一因子范围为[1.2,1.4],中优先级的第一因子范围为[1,1],低优先级的第一因子范围为[0.8,1.0]。
在本实施例的一些可选的实现方式中,各个容器的第一因子利用深度学习网络预先训练得到。利用机器学习技术自身优势,为各个容器获得更加精准、范围更广的资源调整范围。
步骤303,响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表。
在本实施例的一些可选的实现方式中,阈值基于超卖理论预先设定。这里举例说明超卖理论,假设资源有100c,对外售卖的是200c,此时可以理解成对资源进行了超卖,即超出了固有资源量。利用超卖理论的特点,使资源的调度更加适应市场需求,进一步提升系统的资源利用率。
步骤304,基于容器列表和选取后的各个容器的第一因子的最小值,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量。
在本实施例中,执行主体可以基于容器列表和选取后的各个容器的第一因子的最小值,利用待释放的资源量算法确定容器列表中各个容器的待释放资源对应的第三资源量,并将容器列表中各个容器的第三资源量进行累计,生成与各个第三资源量相对应的目标资源总量。第三资源量可以利用待释放的资源量基于容器的资源的使用量和相应容器对应的第一因子的最小值计算得到。
在本实施例中,步骤301和303的具体操作与图1所示的实施例中的步骤101和103的操作基本相同,在此不再赘述。
从图3中可以看出,与图1对应的实施例相比,本实施例中的用于确定资源的方法的示意图300采用基于第一容器集合、第二容器集合和各个容器对应的第一因子的最大值,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,各个容器对应的第一因子基于业务的优先级和各个容器对应的作业的优先级而动态调整,基于容器列表和选取后的各个容器的第一因子的最小值,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量,为了更好的利用机器的计算资源,使用第一因子的最大值和第一因子的最小值确定资源量,根据优先级设定容器的第一因子,并根据第一因子缩放容器的资源使用量,计算出容器可使用资源的最小值或超卖值,实时调整容器的资源值达到资源调度的目的,在保证容器资源使用量的同时,提升了主机的资源利用率。
进一步参考图4,作为对上述图1~3所示方法的实现,本申请提供了一种用于确定资源的装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的用于确定资源的装置400包括:获取单元401、第一确定单元402、选取单元403和第二确定单元404,其中,获取单元,被配置成响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合,其中,第一容器集合用于表征业务中处于运行状态的各个容器的集合,第二容器集合用于表征业务中作为待启动的各个容器的集合;第一确定单元,被配置成基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,其中,第一因子用于表征资源的调整范围,第一资源量和第二资源量基于容器的资源的使用量和相应容器对应的第一因子的第一取值计算得到;选取单元,被配置成响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表;第二确定单元,被配置成基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量,其中,第三资源量基于容器的资源的使用量和相应容器对应的第一因子的第二取值计算得到,目标资源总量用于表征容器列表中各个容器的资源的待释放的资源量的总和。
在本实施例中,用于确定资源的装置400的获取单元401、第一确定单元402、选取单元403和第二确定单元404的具体处理及其所带来的技术效果可分别参考图1对应的实施例中的步骤101到步骤104的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,第一确定单元进一步被配置成基于第一容器集合、第二容器集合和各个容器对应的第一因子的最大值,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,其中,各个容器对应的第一因子基于业务的优先级和各个容器对应的作业的优先级而动态调整。
在本实施例的一些可选的实现方式中,第二确定单元进一步被配置成基于容器列表和选取后的各个容器的第一因子的最小值,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量。
在本实施例的一些可选的实现方式中,各个容器的第一因子利用深度学习网络预先训练得到;阈值基于超卖理论预先设定。
在本实施例的一些可选的实现方式中,装置还包括:第一执行单元,被配置成响应于资源总量不大于阈值,基于第二资源量和阈值,对第二容器集合中的各个容器的资源值进行调整。
在本实施例的一些可选的实现方式中,装置还包括:第二执行操作,被配置成响应于资源总量与目标资源总量的差值不大于阈值,基于第三资源量和阈值,对容器列表中的各个容器的资源值进行调整。
在本实施例的一些可选的实现方式中,装置还包括:跳转单元,被配置成响应于资源总量与目标资源总量的差值大于阈值,跳转至基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图5所示,是根据本申请实施例的用于确定资源的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的用于确定资源的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的用于确定资源的方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的用于确定资源的方法对应的程序指令/模块(例如,附图4所示的获取单元401、第一确定单元402、选取单元403和第二确定单元404)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于确定资源的方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于确定资源的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至用于确定资源的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于确定资源的方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与用于确定资源的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案采用响应于接收到业务中某个资源的调度请求,获取业务的第一容器集合和第二容器集合,其中,第一容器集合用于表征业务中处于运行状态的各个容器的集合,第二容器集合用于表征业务中作为待启动的各个容器的集合,基于第一容器集合、第二容器集合和各个容器对应的第一因子,确定第一容器集合中各个容器的第一资源量和第二容器集合中各个容器的第二资源量,并生成与各个第一资源量和各个第二资源量相对应的资源总量,响应于资源总量大于阈值,基于容器评分,对第一容器集合和第二容器集合进行选取,生成选取后的各个容器对应的容器列表,基于容器列表和选取后的各个容器的第一因子,确定容器列表中各个容器的第三资源量,并生成与各个第三资源量相对应的目标资源总量,解决了现有系统中无法实现同一主机上容器资源的动态调度,导致主机资源利用率无法有效提升的问题。利用第一因子对容器的资源量进行缩放,使资源的确定更加灵活、智能而富有针对性,通过周期性地对调度资源进行确定并实时调整容器的资源值达到资源调度的目的,找到最佳的资源分配给容器,在保证容器资源使用量的同时,提升了主机的资源利用率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (17)

1.一种用于确定资源的方法,所述方法包括:
响应于接收到业务中某个资源的调度请求,获取所述业务的第一容器集合和第二容器集合,其中,所述第一容器集合用于表征所述业务中处于运行状态的各个容器的集合,所述第二容器集合用于表征所述业务中作为待启动的各个容器的集合;
基于所述第一容器集合、所述第二容器集合和各个容器对应的第一因子,确定所述第一容器集合中各个容器的第一资源量和所述第二容器集合中各个容器的第二资源量,并生成与各个所述第一资源量和各个所述第二资源量相对应的资源总量,其中,所述第一因子用于表征所述资源的调整范围,所述第一资源量和所述第二资源量基于容器的所述资源的使用量和相应容器对应的所述第一因子的第一取值计算得到;
响应于所述资源总量大于阈值,基于容器评分,对所述第一容器集合和所述第二容器集合进行选取,生成选取后的各个容器对应的容器列表;
基于所述容器列表和选取后的各个容器的所述第一因子,确定所述容器列表中各个容器的第三资源量,并生成与各个所述第三资源量相对应的目标资源总量,其中,所述第三资源量基于容器的所述资源的使用量和相应容器对应的所述第一因子的第二取值计算得到,所述目标资源总量用于表征所述容器列表中各个容器的所述资源的待释放的资源量的总和。
2.根据权利要求1所述的方法,其中,所述基于所述第一容器集合、所述第二容器集合和各个容器对应的第一因子,确定所述第一容器集合中各个容器的第一资源量和所述第二容器集合中各个容器的第二资源量,并生成与各个所述第一资源量和各个所述第二资源量相对应的资源总量,包括:
基于所述第一容器集合、所述第二容器集合和各个容器对应的第一因子的最大值,确定所述第一容器集合中各个容器的第一资源量和所述第二容器集合中各个容器的第二资源量,并生成与各个所述第一资源量和各个所述第二资源量相对应的资源总量,其中,所述各个容器对应的第一因子基于所述业务的优先级和各个容器对应的作业的优先级而动态调整。
3.根据权利要求2所述的方法,其中,所述基于所述容器列表和选取后的各个容器的所述第一因子,确定所述容器列表中各个容器的第三资源量,并生成与各个所述第三资源量相对应的目标资源总量,包括:
基于所述容器列表和选取后的各个容器的所述第一因子的最小值,确定所述容器列表中各个容器的第三资源量,并生成与各个所述第三资源量相对应的目标资源总量。
4.根据权利要求1所述的方法,其中,所述各个容器的所述第一因子利用深度学习网络预先训练得到。
5.根据权利要求1所述的方法,其中,所述阈值基于超卖理论预先设定。
6.根据权利要求1所述的方法,还包括:
响应于所述资源总量不大于所述阈值,基于所述第二资源量和所述阈值,对所述第二容器集合中的各个容器的所述资源值进行调整。
7.根据权利要求1所述的方法,其中,在所述基于所述容器列表和选取后的各个容器的所述第一因子,确定所述容器列表中各个容器的第三资源量,并生成与各个所述第三资源量相对应的目标资源总量之后,还包括:
响应于所述资源总量与所述目标资源总量的差值不大于所述阈值,基于所述第三资源量和所述阈值,对所述容器列表中的各个容器的所述资源值进行调整。
8.根据权利要求1所述的方法,其中,在所述基于所述容器列表和选取后的各个容器的所述第一因子,确定所述容器列表中各个容器的第三资源量,并生成与各个所述第三资源量相对应的目标资源总量之后,还包括:
响应于所述资源总量与所述目标资源总量的差值大于所述阈值,跳转至基于容器评分,对所述第一容器集合和所述第二容器集合进行选取,生成选取后的各个容器对应的容器列表。
9.一种用于确定资源的装置,所述装置包括:
获取单元,被配置成响应于接收到业务中某个资源的调度请求,获取所述业务的第一容器集合和第二容器集合,其中,所述第一容器集合用于表征所述业务中处于运行状态的各个容器的集合,所述第二容器集合用于表征所述业务中作为待启动的各个容器的集合;
第一确定单元,被配置成基于所述第一容器集合、所述第二容器集合和各个容器对应的第一因子,确定所述第一容器集合中各个容器的第一资源量和所述第二容器集合中各个容器的第二资源量,并生成与各个所述第一资源量和各个所述第二资源量相对应的资源总量,其中,所述第一因子用于表征所述资源的调整范围,所述第一资源量和所述第二资源量基于容器的所述资源的使用量和相应容器对应的所述第一因子的第一取值计算得到;
选取单元,被配置成响应于所述资源总量大于阈值,基于容器评分,对所述第一容器集合和所述第二容器集合进行选取,生成选取后的各个容器对应的容器列表;
第二确定单元,被配置成基于所述容器列表和选取后的各个容器的所述第一因子,确定所述容器列表中各个容器的第三资源量,并生成与各个所述第三资源量相对应的目标资源总量,其中,所述第三资源量基于容器的所述资源的使用量和相应容器对应的所述第一因子的第二取值计算得到,所述目标资源总量用于表征所述容器列表中各个容器的所述资源的待释放的资源量的总和。
10.根据权利要求9所述的装置,其中,所述第一确定单元进一步被配置成基于所述第一容器集合、所述第二容器集合和各个容器对应的第一因子的最大值,确定所述第一容器集合中各个容器的第一资源量和所述第二容器集合中各个容器的第二资源量,并生成与各个所述第一资源量和各个所述第二资源量相对应的资源总量,其中,所述各个容器对应的第一因子基于所述业务的优先级和各个容器对应的作业的优先级而动态调整。
11.根据权利要求10所述的装置,其中,所述第二确定单元进一步被配置成基于所述容器列表和选取后的各个容器的所述第一因子的最小值,确定所述容器列表中各个容器的第三资源量,并生成与各个所述第三资源量相对应的目标资源总量。
12.根据权利要求9所述的装置,其中,所述各个容器的所述第一因子利用深度学习网络预先训练得到;所述阈值基于超卖理论预先设定。
13.根据权利要求9所述的装置,还包括:
第一执行单元,被配置成响应于所述资源总量不大于所述阈值,基于所述第二资源量和所述阈值,对所述第二容器集合中的各个容器的所述资源值进行调整。
14.根据权利要求9所述的装置,还包括:
第二执行操作,被配置成响应于所述资源总量与所述目标资源总量的差值不大于所述阈值,基于所述第三资源量和所述阈值,对所述容器列表中的各个容器的所述资源值进行调整。
15.根据权利要求9所述的装置,还包括:
跳转单元,被配置成响应于所述资源总量与所述目标资源总量的差值大于所述阈值,跳转至基于容器评分,对所述第一容器集合和所述第二容器集合进行选取,生成选取后的各个容器对应的容器列表。
16.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
17.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
CN202110038498.0A 2021-01-12 2021-01-12 用于确定资源的方法和装置 Active CN113778610B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110038498.0A CN113778610B (zh) 2021-01-12 2021-01-12 用于确定资源的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110038498.0A CN113778610B (zh) 2021-01-12 2021-01-12 用于确定资源的方法和装置

Publications (2)

Publication Number Publication Date
CN113778610A CN113778610A (zh) 2021-12-10
CN113778610B true CN113778610B (zh) 2024-04-09

Family

ID=78835408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110038498.0A Active CN113778610B (zh) 2021-01-12 2021-01-12 用于确定资源的方法和装置

Country Status (1)

Country Link
CN (1) CN113778610B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015197564A1 (en) * 2014-06-23 2015-12-30 Getclouder Ltd. Cloud hosting systems featuring scaling and load balancing with containers
CN109117265A (zh) * 2018-07-12 2019-01-01 北京百度网讯科技有限公司 在集群中调度作业的方法、装置、设备及存储介质
CN111831450A (zh) * 2020-07-20 2020-10-27 北京百度网讯科技有限公司 用于分配服务器资源的方法、装置、电子设备及存储介质
CN112020102A (zh) * 2019-05-28 2020-12-01 三星电子株式会社 用于执行无线电接入网络功能的方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572306B2 (en) * 2016-09-14 2020-02-25 Cloudera, Inc. Utilization-aware resource scheduling in a distributed computing cluster

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015197564A1 (en) * 2014-06-23 2015-12-30 Getclouder Ltd. Cloud hosting systems featuring scaling and load balancing with containers
CN109117265A (zh) * 2018-07-12 2019-01-01 北京百度网讯科技有限公司 在集群中调度作业的方法、装置、设备及存储介质
CN112020102A (zh) * 2019-05-28 2020-12-01 三星电子株式会社 用于执行无线电接入网络功能的方法和设备
CN111831450A (zh) * 2020-07-20 2020-10-27 北京百度网讯科技有限公司 用于分配服务器资源的方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Docker swarm集群的动态加权调度策略;黄凯;孟庆永;谢雨来;冯丹;秦磊华;;计算机应用;20171226(第05期);全文 *
视频云源站的资源调度系统设计与实现;杨继伟;;软件;20180515(第05期);全文 *

Also Published As

Publication number Publication date
CN113778610A (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
CN112165691B (zh) 内容分发网络调度方法、装置、服务器和介质
CN111694646B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN111461290B (zh) 模型参数更新方法及装置
CN111738446B (zh) 深度学习推理引擎的调度方法、装置、设备和介质
TWI773100B (zh) 神經網絡架構檢索方法以及裝置
US9130844B1 (en) Systems and methods for harvesting excess compute capacity across domains
CN111597028B (zh) 用于任务调度的方法和装置
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
CN111459645B (zh) 一种任务调度方法、装置和电子设备
CN111880914A (zh) 资源调度方法、资源调度装置、电子设备和存储介质
CN111488492B (zh) 用于检索图数据库的方法和装置
CN111970132B (zh) Ota数据包下发流量的控制方法、装置及服务器
CN112508768B (zh) 单算子多模型流水线推理方法、系统、电子设备及介质
US20210360058A1 (en) Job allocation support system and method
CN112527509B (zh) 一种资源分配方法、装置、电子设备及存储介质
CN114490048A (zh) 任务执行方法、装置、电子设备及计算机存储介质
CN113760527A (zh) 资源控制方法和装置
CN113419865A (zh) 云资源处理方法、相关装置及计算机程序产品
CN111796940B (zh) 一种资源分配方法、装置和电子设备
CN113778610B (zh) 用于确定资源的方法和装置
CN114327918B (zh) 调整资源量的方法、装置、电子设备和存储介质
CN113778973B (zh) 数据存储方法和装置
CN113765979B (zh) 信息传输方法、系统和装置
CN113971083A (zh) 任务调度方法、装置、设备、介质及产品
CN113971082A (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