CN117056064A - 资源分配方法、装置、服务器、存储介质和程序产品 - Google Patents

资源分配方法、装置、服务器、存储介质和程序产品 Download PDF

Info

Publication number
CN117056064A
CN117056064A CN202210492620.6A CN202210492620A CN117056064A CN 117056064 A CN117056064 A CN 117056064A CN 202210492620 A CN202210492620 A CN 202210492620A CN 117056064 A CN117056064 A CN 117056064A
Authority
CN
China
Prior art keywords
priority
resource
resource usage
resources
process group
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
CN202210492620.6A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210492620.6A priority Critical patent/CN117056064A/zh
Publication of CN117056064A publication Critical patent/CN117056064A/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • 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/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种资源分配方法、装置、服务器、存储介质和程序产品,可用于云服务器;本申请实施例获取多个进程组以及进程组的优先级;若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,级资源使用量为优先级对应的资源使用量;若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级;释放待释放资源,以便至少一个优先级对应的进程组使用待释放资源。在本申请实施例中,利用预设的资源阈值将优先级划分为两部分,将优先级较低的进程组占用的资源分配给优先级较高的进程组,使无序的资源抢占过程变为定向的资源分配过程,提升资源分配的合理性。

Description

资源分配方法、装置、服务器、存储介质和程序产品
技术领域
本申请涉及计算机技术领域,具体涉及一种资源分配方法、装置、服务器、存储介质和程序产品。
背景技术
计算机设备例如云服务器,可以包括CPU、IO、网络以及内存等资源。现有技术中,可以在单一设备上部署用于执行不同业务的多个进程组,设备可以对不同进程组所使用的资源进行分配和调度,例如,可以基于资源抢占策略,将更多地资源分配给繁忙的进程组,而分配给空闲的进程组更少的资源。
然而,由于进程组之间是平等的,可能会导致进程组之间无序抢占,导致资源分配不合理。
发明内容
本申请实施例提供一种资源分配方法、装置、服务器、存储介质和程序产品,可以提升资源分配的合理性。
本申请实施例提供一种资源分配方法,包括:获取多个进程组以及所述进程组的优先级;若任意所述进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,所述级资源使用量为所述优先级对应的资源使用量;若所述总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,所述目标优先级的优先级低于所述至少一个所述优先级;释放所述待释放资源,以便所述至少一个所述优先级对应的所述进程组使用所述待释放资源。
本申请实施例还提供一种资源分配装置,包括:获取单元,用于获取多个进程组以及所述进程组的优先级;加和单元,用于若任意所述进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,所述级资源使用量为所述优先级对应的资源使用量;确定单元,用于若所述总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,所述目标优先级的优先级低于所述至少一个所述优先级;释放单元,用于释放所述待释放资源,以便所述至少一个所述优先级对应的所述进程组调用所述待释放资源。
本申请实施例还提供一种服务器,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种资源分配方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种资源分配方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现本申请实施例所提供的任一种资源分配方法中的步骤。
本申请实施例可以获取多个进程组以及所述进程组的优先级;若任意所述进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,所述级资源使用量为所述优先级对应的资源使用量;若所述总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,所述目标优先级的优先级低于所述至少一个所述优先级;释放所述待释放资源,以便所述至少一个所述优先级对应的所述进程组使用所述待释放资源。
在本申请中,通过合并至少一个级资源使用量,以统计系统中部分优先级对应的进程组所占的总资源使用量,在该部分优先级所占的总资源使用量高于预设的资源阈值时,可以释放低于该部分优先级的优先级对应的全部或部分资源,以此利用预设的资源阈值将优先级划分为两部分,可以将优先级较低的进程组占用的资源分配给优先级较高的进程组,使无序的资源抢占过程变为定向的资源分配过程,提升资源分配的合理性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的资源分配方法的场景示意图;
图1b是本申请实施例提供的资源分配方法的流程示意图;
图1c是本申请实施例提供的同一优先级对应的多个进程组的示意图;
图1d是本申请实施例提供的为同一进程组的多个子进程组设置不同优先级的示意图;
图1e是本申请实施例提供的高优先级对应的CGroup抢占低优先级对应的CGroup资源的示意图;
图2a是本申请另一个实施例提供的资源分配方法的流程示意图;
图2b是本申请实施例提供的CGroup的优先级的设置方法的示意图;
图2c是本申请实施例提供的单个高优先级CGroup的资源使用量高于警戒水位线的示意图;
图2d是本申请实施例提供的多个高优先级CGroup的资源使用量高于警戒水位线的示意图;
图3是本申请实施例提供的资源分配装置的结构示意图;
图4是本申请实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种资源分配方法、装置、服务器、存储介质和程序产品。
其中,该资源分配装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(Personal Computer,PC)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一些实施例中,该资源分配装置还可以集成在多个电子设备中,该方案可用于服务器侧,比如,资源分配装置可以集成在多个服务器中,由多个服务器来实现本申请的资源分配方法。再如,资源分配装置可以集成在云服务器中,由多个云服务器来实现本申请的资源分配方法。
在一些实施例中,服务器也可以以终端的形式来实现。
例如,参考图1a,该资源分配方法集成在服务器中,客户端可以连接服务器,并向服务发起业务请求,该服务器可以根据业务请求创建业务进程,该业务进程可以加入服务器已有的进程组,或新建进程组,并获取服务器上运行的多个进程组以及进程组的优先级;若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,级资源使用量为优先级对应的资源使用量;若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级;释放待释放资源,以便至少一个优先级对应的进程组使用待释放资源。在服务器通过进程组处理业务请求后,可以将处理结果发生至客户端。
以下分别进行详细说明。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
在本实施例中,提供了一种资源分配方法,如图1b所示,该资源分配方法的具体流程可以如下:
110、获取多个进程组以及进程组的优先级。
其中,进程组可以为一个或多个进程的集合。通过对进程分组,可以按组分配资源,例如,A业务有16个进程,B业务有2个进程,如果按照进程的个数来分配CPU资源,显然A业务会占据大量的CPU资源,这对于B业务是不公平的,因此可以分别将A业务和B业务的进程划分成组,在给定周期内,当业务组消耗CPU的资源超过了上限值,该业务组内的任务将会受到限制。
例如,在本申请应用于云服务器时,可以通过CGroup(ControlGroups)限制进程组所使用的物理资源以及优先级,CGroup是Linux内核用于资源管理与隔离的技术,每个CGroup代表一个资源管理单元,管理着一部分内存或IO等系统资源。一个CGroup可以为一个进程组,在CGroup内可以为该进程组划分相应的资源。例如,可以使用CGroup对进程组使用的资源总额进行限制,如可以设定应用运行时使用内存的上限,一旦超过这个配额就发出OOM(OutofMemory),也可以通过分配的CPU时间片数量及硬盘IO带宽大小等资源,实际上就相当于控制了进程组运行的优先级,还可以统计的资源使用量,如CPU使用时长、内存用量等等,还可以对进程组执行挂起、恢复等操作。此外,CGroup可以以树状结构排列多个CGroup,CGroup的排列顺序与其优先级对应,优先级越高越靠近树状结构的根节点。
例如,可以根据与业务相关的优先级参数或应用场景等为进程组设置优先级。在一些实施方式中,通常不同进程组之间是平等的,因此可以根据时延敏感度以及业务优先级为进程组设置优先级,以根据进程组的优先级分配资源,对不同类型的业务所使用的资源进行合理分配。具体地,获取多个进程组以及进程组的优先级之前,还可以包括:
获取进程组的优先级参数,优先级参数包括时延敏感度以及业务优先级中的至少一种;
根据优先级参数确定进程组的优先级。
例如,一个进程组通常与一组作业相关联,因此,可以理解的是,进程组可以与业务相关,由于不同类型的业务可以具有不同的重要程度,由此,可以根据业务的重要程度对业务设置不同的优先级,针对于重要程度较高的业务,其对应的业务优先级以及进程组的优先级越高,若重要程度较低,则其对应的业务优先级以及进程组的优先级越低。再如,时延敏感度可以表示业务对时延的敏感性,如可以以平均时延或丢包率等指标来确定进程组对应业务的时延敏感度,业务的时延敏感度越高,其对应的进程组的优先级越高,时延敏感度越低,则其对应的进程组的优先级越低。由此,可以优先保证优先级较高或时延敏感度高的业务的资源需求,以能够对不同类型的业务所使用的资源进行合理分配,从而保证不同类型的业务的资源需求。
例如,可以以文字标识表示进程组的优先级,例如,“重要”表示优先级较高,“普通”表示优先级较低,等等。也可以以数字标识表示进程组的优先级,例如数字“001”表示优先级较高,数字“002”表示优先级较低,等等。还可以以字母标识表示进程组的优先级,例如字母“A”表示优先级较高,字母“B”表示优先级较低,等等。本领域技术人员可以根据实现需要,以不同形式表示进程组的优先级,本申请对此不作特殊限定。
在一些实施方式中,为了更合理地为相同优先级的进程组进行资源分配,获取多个进程组以及进程组的优先级之后,还可以包括:
针对每个优先级,若优先级对应的进程组有多个,获取优先级对应的预设的权重系数以及优先级对应的资源分配量;
根据预设的权重系数以及资源分配量,为优先级对应的每个进程组的进行资源分配。
其中,预设的权重系数可以指预先设置的用来确定同一优先级对应的多个进程组的权重的系数。本领域技术人员可以根据实现需要设置预设的权重系数,本申请对此不作特殊限定。
其中,资源分配量可以指系统为分配的资源的上限值,优先级对应的资源分配量可以指系统为优先级对应的进程组分配的资源的上限值。
本申请在计算总资源使用量以及根据总资源使用量确定对应目标优先级的待释放资源的过程中,都是以优先级为单位,将同一优先级对应的进程组作为整体计算资源使用量,并未考虑同一优先级对应的进程组之间如何分配资源。以此,可以通过预设的权重系数对同一优先级对应的进程组进行资源分配。例如,进程组A、进程组B、进程组A1、进程组A2、进程组B1、进程组B2、进程组A11以及进程组A12的优先级均为优先级1,如图1c所示,进程组A1以及进程组A2为进程组A的子进程组,进程组B1以及进程组B2为进程组B的子进程组,进程组A11以及进程组A12为进程组A1的子进程组,可以按照优先级1中的各进程组之间的父子关系,从父进程组至子进程组的顺序按照预设的权重系数逐级为对应优先级1的多个进程组进行资源分配,其中,相同级别的子进程的资源分配量的和等于其父进程的资源分配量,具体地,预设的权重系数可以为:进程组A:进程组B=1:2,进程组A1:进程组A2=3:2,进程组B1:进程组B2=1:1,进程组B11:进程组B12=2:1,如,系统分配给优先级1的资源分配量为9Gbps,则进程组A以及进程组B的资源分配量分别为3Gbps和6Gbps,进程组A1以及进程组A2的资源分配量为1.8Gbps和1.2Gbps,则进程组A、进程组B、进程组A1以及进程组A2的资源使用量分别不能高于3Gbps、6Gbp、1.8Gbps和1.2Gbps s,若进程组的资源使用量高于其资源分配量,则拒绝该进程组的资源申请。
在创建进程组的子进程时,可以设置子进程的优先级与其父进程的优先级相同,以此可以通过预设的权重系数以及资源分配量为优先级对应的进程组进行资源分配。在一些实施方式中,还可以设置子进程的优先级低于其父进程的优先级,以此在同一进程组内,高优先级的进程组可以抢占低优先级的进程组的资源,以提升资源分配的合理性。具体地,获取多个进程组以及进程组的优先级之后,还可以包括:
创建任意进程组的子进程组,子进程组的优先级等于或低于任意进程组的优先级。
例如,在创建任意进程组的子进程组,可以默认继承其父进程组的优先级,也可以将该子进程组的优先级修改为等于或低于其父进程组的优先级,以此可以为同一进程组的不同子进程组灵活设置不同优先级,提升资源分配的合理性。如图1d所示,进程组B的优先级为1,其子进程组B1和子进程组B2的优先级分别为1和2,子进程组B1的子进程组B11和子进程组B12的优先级分别为2和3,子进程组B2的子进程组B21和子进程组B22的优先级分别为5和7,子进程组B11的子进程组B111和子进程组B112的优先级分别为7和7,其中优先级数字越大,优先级越低。此时,子进程组B111和子进程组B112的优先级相同,可以根据预设的权重系数进行资源分配,且子进程组B111和子进程组B112的资源分配量之和等于子进程组B11的资源分配量。
在一些实施方式中,获取多个进程组以及进程组的优先级之后,还可以包括:
响应于任意进程组的资源需求,任意进程组抢占目标进程组的资源,目标进程组为优先级低于任意进程组的进程组。
当任意进程组需求的资源增加时,该进程组可以抢占低于其优先级的进程组的资源,以满足其资源需求,在抢占后,该任意进程组的资源使用量发生了变化。如图1e所示,在本申请应用于云服务器,一个CGroup可以为一个进程组,在t0时刻,优先级7对应的CGroup使用了大部分资源,在t1时刻,优先级1对应的CGroup有新的资源需求,需要申请更多的资源,在t2时刻,优先级1对应的CGroup完成了对优先级7对应的CGroup的资源抢占。
120、若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,级资源使用量为优先级对应的资源使用量。
其中,资源使用量可以指占用CPU资源、IO资源、网络资源以及内存资源等中至少一种资源的量。例如,若资源为CPU资源,资源使用量可以指CPU占有率;若资源为IO资源,资源使用量可以指磁盘读写速率;若资源为网络资源,资源使用量可以指占用的网络带宽;若资源为内存资源,资源使用量可以指占用的内存空间大小。进程组的资源使用量可以指进程组中所有进程占用的资源的量,级资源使用量可以指该优先级的进程组占用的资源的总和。
在系统中任意进程组的资源使用量变化时,可以任意获取一个或多个级资源使用量,并求和得到总资源使用量。例如,进程组A和进程组B为优先级1,进程组C为优先级2,进程组D和进程组E为优先级3,进程组F为优先级4,此时若进程组C的资源使用量变化,可以合并优先级1和优先级2对应的资源使用量,得到总资源使用量,也可以合并优先级1和优先级3对应的资源使用量,得到总资源使用量,还可以合并优先级1~优先级3对应的资源使用量,得到总资源使用量。
在一些实施方式中,为了提升资源分配的合理性,若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,可以包括:
若任意进程组的资源使用量变化,根据优先级,获取至少一个级资源使用量;
合并至少一个级资源使用量,得到总资源使用量。
在系统中任意进程组的资源使用量变化时,可以获取优先级较高的一个或多个级资源使用量,以此,通过统计优先级较高的进程组占用的资源,能快速确定优先级较高的进程组占用的资源是否超过上限值,以此可以判断是否要优先级较高的进程组分配资源,提升资源分配的合理性。
在一些实施方式中,为了提升资源分配的合理性,至少一个级资源使用量包括最高优先级至任意优先级的级资源使用量,合并至少一个级资源使用量,得到总资源使用量,可以包括:
根据优先级顺序,合并最高优先级至任意优先级的级资源使用量,得到总资源使用量。
其中,最高优先级可以为根据进程组的优先级排序规则确定的优先级最高的优先级。例如,可以将业务重要程度最高或时延敏感度的业务对应的进程组的优先级作为最高优先级。
通过将最高优先级至任意优先级的级资源使用量进行累加,以按照优先级顺序从高到底累加一个或多个优先级的级资源使用量,直至累加得到的总资源使用量高于预设的资源阈值。例如,如前述举例,可以将优先级1对应的资源使用量作为总资源使用量,也可以将优先级1和优先级2对应的资源使用量作为总资源使用量,还可以将优先级1和优先级2对应的资源使用量作为总资源使用量。
在一些实施方式中,为了提升资源分配的合理性的同时提升处理效率,可以将最高级资源使用量作为总资源使用量,并判断该总资源使用量是否高于预设的资源阈值,若是,则执行步骤130,若否,则可以按照优先级从高到底的顺序合并最高优先级以下一级的级资源使用量,得到总资源使用量,判断合并得到的总资源使用量是否高于预设的资源阈值,若是,则执行步骤130,若否则按照优先级从高到底的顺序合并最高优先级至再一级的级资源使用量,以更新总资源使用量,直至得到的总资源使用量是否高于预设的资源阈值或合并所有级资源使用量。其中,下一优先级可以为按照优先级从高到底的顺序排列的最高优先级的下一个优先级,再一优先级可以为按照优先级从高到底的顺序排列的下一优先级的下一个优先级。
在一些实施方式中,为了提升计算总资源使用量的效率,若任意进程组的资源使用量变化,获取至少一个级资源使用量,得到总资源使用量之前,还可以包括:
针对每个优先级,合并对应优先级的各进程组的资源使用量,得到每个优先级的级资源使用量;
若任意进程组的资源使用量变化,根据优先级,获取至少一个级资源使用量,可以包括:
若任意进程组的资源使用量变化,更新待更新优先级的级资源使用量,待更新优先级为任意进程组的优先级;
根据优先级,获取至少一个级资源使用量。
通过预先计算得到每个优先级的级资源使用量,在任意进程组的资源使用量变化时,可以直接获取未发生变化的优先级的级资源使用量,同时可以更新该发生变化的进程组对应的优先级的级资源使用量。以此,若该至少一个优先级中不包括任意进程组的优先级,可以立即提取得到要提取的优先级对应资源使用量,若该至少一个优先级中包括任意进程组的优先级,只需更新任意进程组的级资源使用量,就可以提取得到要提取的优先级对应资源使用量,以此,可以提升计算总资源使用量的效率。
例如,在本申请应用于云服务器时,可以通过CGroup记录每个进程组对应的资源使用量以及每个级资源使用量。若任意CGroup中进程组的资源使用量变化,首先根据资源使用量变化更新该CGroup记录的资源使用量,并重现计算该CGroup对应的级资源使用量。然后根据优先级从高到底的顺序逐级累加各优先级的CGroup记录的资源使用量,如:其中i为优先级,resource(i)为优先级i对应的资源使用量,n为累加的级资源使用量的个数。
130、若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级。
其中,预设的资源阈值可以指预先设置的资源量,例如,若资源为网络资源,网口为10Gbp,可以设置预设的资源阈值为8Gbps。可以理解的是,本领域技术人员可以根据实现需要设置预设的资源阈值,本申请对此不作特殊限定。例如,在有多种类型的资源时,可以为不同类型的资源设置不同的预设的资源阈值,可以分别计算不同类型的资源的总资源使用量,若任意类型的总资源使用量高于其对应的预设的资源阈值,则确定该类型资源对应的待释放资源,如总资源使用量可以包括CPU资源总使用量、IO资源总使用量、网络资源总使用量以及内存资源总使用量,资源阈值可以包括CPU资源阈值、IO资源阈值、网络资源阈值以及内存资源阈值,若其中CPU资源总使用量高于CPU资源阈值,则可以确定待释放的CPU资源;再如,若多种类型资源中有一种资源高于其对应的预设的资源阈值,则可以确定所有类型资源对应的待释放资源,如若其中CPU资源总使用量高于CPU资源阈值,则可以确定待释放的CPU资源、待释放的IO资源、待释放的网络资源以及待释放的内存资源。
其中,目标优先级可以指低于至少一个优先级的一个或多个优先级。例如,进程组的优先级可以包括优先级1~优先级7,若合并优先级1~优先级3对应的资源使用量得到的总资源使用量高于预设的资源阈值,可以将优先级4~优先级7中的部分或全部优先级确定为目标优先级。
其中,待释放资源可以指目标优先级对应的资源中的部分或全部资源,目标优先级对应的资源可以指优先级为目标优先级的进程组占用的资源。例如,若将优先级4~优先级7确定为目标优先级,可以将其中较低优先级如优先级6以及优先级7对应的全部资源确定为待释放资源,以及将其中较高优先级如优先级4和优先级5对应的部分资源确定为待释放资源。再如,可以将优先级4~优先级7对应的全部资源确定为待释放资源。需说明的是,可以根据预设的资源基准值、或预设比值等将目标优先级对应的部分资源确定为待释放资源,例如,若要将优先级4对应的部分资源确定为待释放资源,可以根据优先级4的级资源使用量A与预设比值B的乘积得到优先级4对应的资源释放量C,如C=A×B,其中,0<B<1,以此可以从优先级4的使用的资源中释放资源释放量为C的资源(即待释放资源)。在实际应用中,可以通过多种方式释放待释放资源,例如可以通过限制优先级的资源使用量以释放待释放资源,如将优先级4对应的资源分配量调整为A-C,即可通过延长等待时间、减少并发执行的任务数等方式降低优先级4对应的进程组的系统开销,以释放资源释放量为C的资源。再如,由于进程组中通常会有多个线程,可以根据优先级4对应的进程组中线程的优先级从低到高的顺序,优先结束或挂起优先级低的线程,以释放该线程占用的资源,直至释放的资源的量达到C,线程的优先级可以为线程占用资源的量、线程创建的时间以及预设的重要程度等等,占用资源的量越大、线程创建的时间越早或预设的重要程度越低,则优先级越低。
在统计系统中部分优先级对应的进程组所占的总资源使用量后,可以理解的是,在该部分优先级所占的总资源使用量高于预设的资源阈值时,可以认为该部分优先级占用的资源超过上限值,此时,可以释放低于该部分优先级的优先级对应的全部或部分资源。以此,利用预设的资源阈值将优先级划分为两部分,可以将优先级较低的进程组占用的资源分配给优先级较高的进程组,使无序的资源抢占过程变为定向的资源分配过程,提升资源分配的合理性。
在一些实施方式,为了维持目标优先级对应的进程组的基本功能运行,若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,可以包括:
若总资源使用量高于预设的资源阈值,根据目标级资源使用量以及预设的资源基准值,确定资源释放量,目标级资源使用量为目标优先级的级资源使用量;
根据资源释放量,从目标优先级对应的资源中确定待释放资源。
其中,预设的资源基准值可以指预先设置的资源量,可以理解的是,本领域技术人员可以根据实现需要设置预设的资源基准值,本申请对此不作特殊限定。例如,预设的资源基准值可以为用于维持优先级对应进程组的基本功能运行的资源使用量,若优先级的级资源使用量为预设的资源基准值时,该优先级对应进程组的只能维持其基本功能运行,若级资源使用量低于预设的资源基准值时,该优先级对应进程组的不能维持其基本功能运行。
不同优先级设置的资源基准值可以相同,也可以不同。例如,为了更合理的为不同优先级的进程组分配资源,对于不同的优先级可以设置不同的预设的资源基准值。
在总资源使用量高于预设的资源阈值时,可以认为系统中部分优先级对应的进程组要占用更多的资源,此时为了满足该部分优先级对应的进程组的资源需求,可以对目标级资源使用量以及预设的资源基准值进行计算得到资源释放量,并将目标优先级中与资源释放量对应的资源确定为待释放资源。例如,若资源为网络资源,网口为10Gbp,可以设置预设的资源基准值为100Mbps。
在一些实施方式,为了快速确定资源释放量,提高处理效率,资源释放量为目标级资源使用量以及预设的资源基准值之间的差值。在计算资源释放量之前,还可以判断目标级资源使用量是否高于预设的资源基准值,例如,若目标级资源使用量为A,预设的资源基准值为B,且A大于B,则资源释放量=A-B,若A小于等于B则不计算资源释放量。
140、释放待释放资源,以便至少一个优先级对应的进程组使用待释放资源。
可以通过降低分配给目标优先级的资源量来释放待释放资源,例如可以通过实时调整目标优先级对应的资源使用量至预设的资源基准值,以此,目标优先级仅可以使用预设的资源基准值的资源量来维持进程组的基本功能运行。
可以为不同资源设置不同的释放方式,来降低目标优先级的级资源使用量,例如,若资源为CPU资源,可以限制目标优先级对应的进程组的可以使用的CPU的个数;如若资源为IO资源,可以限制IO数据传输的速度;如若资源为网络资源,可以为降低分配给目标优先级对应的进程组的带宽;如若资源为内存资源,可以通过限制目标优先级对应的进程组的最大内存使用量;
可以将目标优先级对应进程组占用待释放资源释放回收,以使得较高优先级对应的进程组在需要时可以使用该资源。在一些实施方式中,也可以将待释放资源转移至较高优先级对应的进程组,以避免该资源被其他进程组抢占,影响较高优先级对应的进程组的稳定运行。具体地,释放待释放资源,可以包括:
将待释放资源分配至对应至少一个优先级的进程组。
例如,在本申请应用于云服务器时,可以通过CGroup调整至少一个优先级对应的资源分配量,将待释放资源的量累加在该配额上,以使得至少一个优先级对应的进程组被分配了更多的资源。再如,也可以将待释放资源直接分配给至少一个优先级对应的进程组使用。
在一些实施方式,为了使较高优先级对应的进程组能持续、稳定运行,释放待释放资源之后,还可以包括:
控制目标级资源使用量低于或等于预设的资源基准值。
例如,在本申请应用于云服务器时,可以通过CGroup将目标优先级对应的资源分配量设置为预设的资源基准值,以此,当目标优先级对应的进程组需要申请高于预设的资源基准值的配额时,就会触发CGroup检测目标优先级的级资源使用量,若该级资源使用量超过其对应的资源分配量,则拒绝该进程组的资源申请,以此,可以控制目标优先级的级资源使用量低于或等于预设的资源基准值,以维持目标优先级对应的进程组的资源使用量较低,使较高优先级对应的进程组能持续有更多可使用的资源,使较高优先级对应的进程组能持续、稳定运行。在一些实施方式中,当控制目标级资源使用量低于或等于预设的资源基准值时,目标优先级对应的所有进程组共享低于或等于预设的资源基准值的资源使用量。
通过控制目标级资源使用量低于或等于预设的资源基准值,可以避免目标优先级对应的进程组抢占其他优先级对应的资源,以使高优先级对应的进程组能稳定运行。在一些实施方式中,为了使较高以及较低优先级对应的进程组能运行,可以控制目标优先级的资源使用量等于预设的资源基准值。
本申请实施例提供的资源分配方案可以应用在各种资源分配场景中。比如,以服务器为例,获取多个进程组以及进程组的优先级;若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,级资源使用量为优先级对应的资源使用量;若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级;释放待释放资源,以便至少一个优先级对应的进程组使用待释放资源。
本申请实施例提供的方案通过合并至少一个级资源使用量,以统计系统中部分优先级对应的进程组所占的总资源使用量,在该部分优先级所占的总资源使用量高于预设的资源阈值时,可以释放低于该部分优先级的优先级对应的全部或部分资源,以此利用预设的资源阈值将优先级划分为两部分,可以将优先级较低的进程组占用的资源分配给优先级较高的进程组,使无序的资源抢占过程变为定向的资源分配过程,提升资源分配的合理性。
根据上述实施例所描述的方法,以下将作进一步详细说明。
在本实施例中,将以云服务器为例,对本申请实施例的方法进行详细说明。
如图2a所示,一种资源分配方法具体流程如下:
210、获取多个CGroup以及CGroup的优先级。
在本申请应用于云服务器时,可以通过CGroup(Control Groups)限制进程组所使用的物理资源以及优先级,CGroup是Linux内核用于资源管理与隔离的技术,每个CGroup代表一个资源管理单元,管理着一部分内存或IO等系统资源。一个CGroup可以为一个进程组。以此,可以根据业务特点设置业务进程所在CGroup的优先级。对延迟敏感,重要程度高的业务设置为较高优先级,对延迟不敏感,重要程度低的业务设置为较低优先级。例如,可以在Linux内核的structCGroup数据结构中添加prio成员用于标识一个CGroup的优先级,并在CGroup文件系统中提供CGroup.prio文件,用于设置某个CGroup的优先级。可以设置8个优先级,0级为最高优先级,7级为最低优先级。如图2b所示,可以将不同的业务混合部署到同一云服务器上,由客户端将优先级配置信息下发给云服务器的调度层,调度层可以为K8S等容器编排调度平台,也可采用Linux原生CGroup方式,设置CGroup配置接口,云服务器根据优先级进行资源分配与调度,可以为不同优先级提供不同的资源QoS服务,优先保证优先级高的CGroup对资源的需求,并为上层监测系统提供QoS指标,方便调度层掌握各优先级的服务质量,并据此进行任务调度。
在设置CGroup的优先级时,还可以根据需要设置警戒水位线(预设的资源阈值)以及最低保障水位线(预设的资源基准值)。以网络资源为例,警戒水位线的设置值一般与网口性能相关,例如10Gbps网口,可以将警戒水位线设置为8Gbps,可以将各优先级的最低保障水位设置为100Mbps,这样优先级0的最高带宽为9Gbps以上。每个优先级里的CGroup共享最低保障水位线之内的资源,不同优先级的最低保障水位不冲突,比如网络最低保障水位线为100Mbps,则优先级1到5的最低保障水位分别为100Mbps。
220、响应于任意CGroup的资源需求,任意CGroup抢占目标CGroup的资源,目标CGroup为优先级低于任意CGroup的CGroup。
高优先级的CGroup可以抢占低优先级的CGroup的资源,以使得高优先级的CGroup的资源使用量变化。例如,如图1e所示,在t0时刻,优先级7的CGroup使用了大部分资源;在t1时刻,优先级1CGroup有新的资源需求,需要申请更多的资源;在t2时刻,优先级1完成了对优先级7的资源抢占。由于抢占后优先级0和优先级1的资源使用量之和未超过警戒水位线,所以优先级7的CGroup仍可使用剩余的资源。
230、获取最高优先级至任意优先级的级资源使用量,级资源使用量为优先级对应的资源使用量。
若某个CGroup的资源使用量(如网络、IO带宽等)有变化时,可以更新该CGroup的资源使用量和其所在优先级的CGroup使用量(级资源使用量)。
240、合并最高优先级至任意优先级的级资源使用量,得到总资源使用量。
在更新CGroup的资源使用量和其所在优先级的CGroup使用量后,可以从高到低逐级累加资源使用量,如:其中i为优先级,resource(i)为优先级i对应的资源使用量,n为当前累加到哪一优先级。
250、判断总资源使用量是否高于预设的资源阈值。
例如,可以比较Sum(n)与警戒水位线,若是则执行步骤260,若否则继续累加下一优先级的级资源使用量。若累加至最后一个优先级得到的总资源使用量高于预设的资源阈值,因为没有比累加的优先级更低的优先级,因此不执行步骤260~步骤280。
260、若总资源使用量高于预设的资源阈值,根据目标级资源使用量以及预设的资源基准值,确定资源释放量。
270、从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级。
例如,若步骤240累加至优先级4得到的总资源使用量高于预设的资源阈值,则目标优先级可以为低于优先级4的所有优先级。
280、释放待释放资源,以便至少一个优先级对应的CGroup使用待释放资源。
例如,当sum(n)大于警戒水位线时,可以压制n+1优先级之后(优先级比n低的)的优先级(即目标优先级)的级资源使用量,将其压制到最低保障水位线之下。
例如,如图2c所示,在t0时刻,高优先级CGroup的资源使用量较低,空闲资源分配给相对低优先级1和优先级7的CGroup使用;在t1时刻,优先级0的资源使用量超过警戒水位线,优先级1和优先级7都被限制在最低保障资源使用量。
再如,如图2d所示,在t0时刻,高优先级CGroup的资源使用量较低,空闲资源分配给相对低优先级1和优先级7的CGroup使用;在t1时刻,优先级0和优先级1的资源使用量都未超过警戒水位线,但它们的总和超过警戒水位线。因此,优先级比1低的CGroup都需要限制资源的使用量,所以优先级7被限制在最低保障资源使用量。
步骤210~步骤280中都是以优先级为单位,将同一优先级的CGroup作为一个整体与警戒水位线以及最低保障水位线进行比较,并未考虑同一优先级的CGroup之间以及同一CGroup内如何分配资源。例如,在实际应用中可以根据预设的权重系数对同一优先级内的CGroup进行资源分配,预设的权重系数可以为权重比例,如图1c所示,该优先级有CGroup A和CGroup B,由于该优先级的CGroup A、CGroup B以及所有子CGroup均为相同优先级,可以以权重比例对CGroup A和CGroup B进行资源分配,以及以权重比例对CGroup的子CGroup进行资源分配。因此,一个CGroup可以创建子CGroup,但该CGroup的子CGroup的资源使用总和需要限制在其权重比例之内,即限制在根据权重比例确定的资源分配量内。
再如,在实际应用中,在创建CGroup的子CGroup时,默认继承父CGroup的优先级,也可以修改子CGroup的优先级,但修改后的优先级只能等于或低于其父CGroup的优先级,否则会造成资源计算的混乱。如图1d所示,优先级为1的CGroup下同时可以设置有优先级为1、2、3、5以及7的子CGroup。而且,同一CGroup内高优先级的子CGroup可以抢占低优先级的子CGroup的资源。
由上可知,本申请实施例通过设置警戒水位,当高优先级的CGroup的总资源使用量超过警戒水位线后,限制其他低优先级CGroup的资源使用量,同时为低优先级CGroup设置最低保障水位线,在限制其资源使用量时,保证资源使用量为最低保障水位线的水平,以为其分配较少的系统资源,维持低优先级CGroup的基本功能可以运行,避免低优先级CGroup饿死,因此可以保证不同优先级CGroup的服务质量,使资源利用率最大化,并根据优先级实现动态的资源分配与共享。
因此,本申请实施例可以解决将不同的业务混合部署到同一台云服务器上的资源分配问题,当资源空闲时,可以将空闲资源分配给低优先级的CGroup使用,当高优先级CGroup需要资源时,又能够快速的将资源抢占过来,既提高了资源使用率,又保证了高优CGroup的服务质量。通过提升资源使用效率,还可以有效降低业务运营成本,同时节省IDC数据中心的耗电量,减少碳排放。
为了更好地实施以上方法,本申请实施例还提供一种资源分配装置,该资源分配装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以资源分配装置具体集成在服务器为例,对本申请实施例的方法进行详细说明。
例如,如图3所示,该资源分配装置可以包括获取单元310、加和单元320、确定单元330以及释放单元340,如下:
(一)获取单元310
用于获取多个进程组以及进程组的优先级。
在一些实施方式中,获取单元310还可以用于如下步骤:
获取进程组的优先级参数,优先级参数包括时延敏感度以及业务优先级中的至少一种;
根据优先级参数确定进程组的优先级。
在一些实施方式中,获取单元310还可以用于如下步骤:
针对每个优先级,若优先级对应的进程组有多个,获取优先级对应的预设的权重系数以及优先级对应的资源分配量;
根据预设的权重系数以及资源分配量,为优先级对应的每个进程组的进行资源分配。
在一些实施方式中,获取单元310还可以用于如下步骤:
创建任意进程组的子进程组,子进程组的优先级等于或低于任意进程组的优先级。
(二)加和单元320
用于若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,级资源使用量为优先级对应的资源使用量。
在一些实施方式中,加和单元320具体可以用于如下步骤:
若任意进程组的资源使用量变化,根据优先级,获取至少一个级资源使用量;
合并至少一个级资源使用量,得到总资源使用量。
在一些实施方式中,至少一个级资源使用量包括最高优先级至任意优先级的级资源使用量,合并至少一个级资源使用量,得到总资源使用量,包括:
根据优先级顺序,合并最高优先级至任意优先级的级资源使用量,得到总资源使用量。
在一些实施方式中,加和单元320还可以用于如下步骤:
针对每个优先级,合并对应优先级的各进程组的资源使用量,得到每个优先级的级资源使用量;
若任意进程组的资源使用量变化,根据优先级,获取至少一个级资源使用量,包括:
若任意进程组的资源使用量变化,更新待更新优先级的级资源使用量,待更新优先级为任意进程组的优先级;
根据优先级,获取至少一个级资源使用量。
(三)确定单元330
用于若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级。
在一些实施方式中,确定单元330具体可以用于如下步骤:
若总资源使用量高于预设的资源阈值,根据目标级资源使用量以及预设的资源基准值,确定资源释放量,目标级资源使用量为目标优先级的级资源使用量;
根据资源释放量,从目标优先级对应的资源中确定待释放资源。
在一些实施方式中,资源释放量为目标级资源使用量以及预设的资源基准值之间的差值。
在一些实施方式中,确定单元330还可以用于如下步骤:
控制目标级资源使用量低于或等于预设的资源基准值。
(四)释放单元340
用于释放待释放资源,以便至少一个优先级对应的进程组调用待释放资源。
在一些实施方式中,释放单元340具体可以用于如下步骤:
将待释放资源分配至对应至少一个优先级的进程组。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的资源分配装置包括获取单元,用于获取多个进程组以及进程组的优先级;加和单元,用于若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,级资源使用量为优先级对应的资源使用量;确定单元,用于若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级;释放单元,用于释放待释放资源,以便至少一个优先级对应的进程组调用待释放资源。
由此,本申请实施例通过合并至少一个级资源使用量,以统计系统中部分优先级对应的进程组所占的总资源使用量,在该部分优先级所占的总资源使用量高于预设的资源阈值时,可以释放低于该部分优先级的优先级对应的全部或部分资源,以此利用预设的资源阈值将优先级划分为两部分,可以将优先级较低的进程组占用的资源分配给优先级较高的进程组,使无序的资源抢占过程变为定向的资源分配过程,提升资源分配的合理性。
本申请实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。
在一些实施例中,该资源分配装置还可以集成在多个电子设备中,比如,资源分配装置可以集成在多个服务器中,由多个服务器来实现本申请的xx方法。
在本实施例中,将以本实施例的电子设备是服务器为例进行详细描述,比如,如图4所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器410、一个或一个以上计算机可读存储介质的存储器420、电源430、输入模块440以及通信模块450等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器410是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行服务器的各种功能和处理数据。在一些实施例中,处理器410可包括一个或多个处理核心;在一些实施例中,处理器410可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
存储器420可用于存储软件程序以及模块,处理器410通过运行存储在存储器420的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器420还可以包括存储器控制器,以提供处理器410对存储器420的访问。
服务器还包括给各个部件供电的电源430,在一些实施例中,电源430可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源430还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入模块440,该输入模块440可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该服务器还可包括通信模块450,在一些实施例中通信模块450可以包括无线模块,服务器可以通过该通信模块450的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块450可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器410会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器420中,并由处理器410来运行存储在存储器420中的应用程序,从而实现各种功能,如下:
获取多个进程组以及进程组的优先级;
若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,级资源使用量为优先级对应的资源使用量;
若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级;
释放待释放资源,以便至少一个优先级对应的进程组使用待释放资源。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本申请实施例通过合并至少一个级资源使用量,以统计系统中部分优先级对应的进程组所占的总资源使用量,在该部分优先级所占的总资源使用量高于预设的资源阈值时,可以释放低于该部分优先级的优先级对应的全部或部分资源,以此利用预设的资源阈值将优先级划分为两部分,可以将优先级较低的进程组占用的资源分配给优先级较高的进程组,使无序的资源抢占过程变为定向的资源分配过程,提升资源分配的合理性。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种资源分配方法中的步骤。例如,该指令可以执行如下步骤:
获取多个进程组以及进程组的优先级;
若任意进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,级资源使用量为优先级对应的资源使用量;
若总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,目标优先级的优先级低于至少一个优先级;
释放待释放资源,以便至少一个优先级对应的进程组使用待释放资源。
由上可知,本申请实施例通过合并至少一个级资源使用量,以统计系统中部分优先级对应的进程组所占的总资源使用量,在该部分优先级所占的总资源使用量高于预设的资源阈值时,可以释放低于该部分优先级的优先级对应的全部或部分资源,以此利用预设的资源阈值将优先级划分为两部分,可以将优先级较低的进程组占用的资源分配给优先级较高的进程组,使无序的资源抢占过程变为定向的资源分配过程,提升资源分配的合理性。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random AccessMemory)、磁盘或光盘等。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序/指令,该计算机程序/指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序/指令,处理器执行该计算机程序/指令,使得该计算机设备执行上述实施例中提供各种可选实现方式中提供的方法。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种资源分配方法中的步骤,因此,可以实现本申请实施例所提供的任一种资源分配方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种资源分配方法、装置、服务器、存储介质和程序产品进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (15)

1.一种资源分配方法,其特征在于,包括:
获取多个进程组以及所述进程组的优先级;
若任意所述进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,所述级资源使用量为所述优先级对应的资源使用量;
若所述总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,所述目标优先级的优先级低于所述至少一个所述优先级;
释放所述待释放资源,以便所述至少一个所述优先级对应的所述进程组使用所述待释放资源。
2.如权利要求1所述的资源分配方法,其特征在于,所述若任意所述进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,包括:
若所述任意所述进程组的资源使用量变化,根据所述优先级,获取所述至少一个级资源使用量;
合并所述至少一个所述级资源使用量,得到所述总资源使用量。
3.如权利要求2所述的资源分配方法,其特征在于,所述若任意所述进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量之前,还包括:
针对每个所述优先级,合并对应所述优先级的各所述进程组的资源使用量,得到每个所述优先级的所述级资源使用量;
所述若所述任意所述进程组的资源使用量变化,根据所述优先级,获取所述至少一个所述级资源使用量,包括:
若所述任意所述进程组的资源使用量变化,更新待更新优先级的所述级资源使用量,所述待更新优先级为所述任意所述进程组的优先级;
根据所述优先级,获取所述至少一个所述级资源使用量。
4.如权利要求2所述的资源分配方法,其特征在于,所述至少一个级资源使用量包括最高优先级至任意所述优先级的所述级资源使用量,所述合并所述至少一个所述级资源使用量,得到所述总资源使用量,包括:
根据所述优先级顺序,合并最高优先级至任意所述优先级的所述级资源使用量,得到所述总资源使用量。
5.如权利要求1所述的资源分配方法,其特征在于,所述若所述总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,包括:
若所述总资源使用量高于预设的资源阈值,根据所述目标级资源使用量以及预设的资源基准值,确定资源释放量,所述目标级资源使用量为所述目标优先级的所述级资源使用量;
根据所述资源释放量,从所述目标优先级对应的资源中确定待释放资源。
6.如权利要求5所述的资源分配方法,其特征在于,所述资源释放量为所述目标级资源使用量以及所述预设的资源基准值之间的差值。
7.如权利要求5所述的资源分配方法,其特征在于,所述释放所述待释放资源之后,还包括:
控制所述目标级资源使用量低于或等于预设的资源基准值。
8.如权利要求1所述的资源分配方法,其特征在于,所述获取多个进程组以及所述进程组的优先级之前,还包括:
获取所述进程组的优先级参数,所述优先级参数包括时延敏感度以及业务优先级中的至少一种;
根据所述优先级参数确定所述进程组的优先级。
9.如权利要求1所述的资源分配方法,其特征在于,所述获取多个进程组以及所述进程组的优先级之后,还包括:
针对每个所述优先级,若所述优先级对应的所述进程组有多个,获取所述优先级对应的预设的权重系数以及所述优先级对应的资源分配量;
根据预设的权重系数以及所述资源分配量,为所述优先级对应的每个所述进程组的进行资源分配。
10.如权利要求1所述的资源分配方法,其特征在于,所述获取多个进程组以及所述进程组的优先级之后,还包括:
创建任意进程组的子进程组,所述子进程组的优先级等于或低于所述任意进程组的优先级。
11.如权利要求1所述的资源分配方法,其特征在于,所述释放所述待释放资源,包括:
将所述待释放资源分配至对应所述至少一个所述优先级的所述进程组。
12.一种资源分配装置,其特征在于,包括:
获取单元,用于获取多个进程组以及所述进程组的优先级;
加和单元,用于若任意所述进程组的资源使用量变化,合并至少一个级资源使用量,得到总资源使用量,所述级资源使用量为所述优先级对应的资源使用量;
确定单元,用于若所述总资源使用量高于预设的资源阈值,从目标优先级对应的资源中确定待释放资源,所述目标优先级的优先级低于所述至少一个所述优先级;
释放单元,用于释放所述待释放资源,以便所述至少一个所述优先级对应的所述进程组调用所述待释放资源。
13.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~11任一项所述的资源分配方法中的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~11任一项所述的资源分配方法中的步骤。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1~11任一项所述的资源分配方法中的步骤。
CN202210492620.6A 2022-05-07 2022-05-07 资源分配方法、装置、服务器、存储介质和程序产品 Pending CN117056064A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210492620.6A CN117056064A (zh) 2022-05-07 2022-05-07 资源分配方法、装置、服务器、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210492620.6A CN117056064A (zh) 2022-05-07 2022-05-07 资源分配方法、装置、服务器、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN117056064A true CN117056064A (zh) 2023-11-14

Family

ID=88667980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210492620.6A Pending CN117056064A (zh) 2022-05-07 2022-05-07 资源分配方法、装置、服务器、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN117056064A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785487A (zh) * 2024-02-27 2024-03-29 融科联创(天津)信息技术有限公司 一种算力资源调度方法、装置、设备和介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785487A (zh) * 2024-02-27 2024-03-29 融科联创(天津)信息技术有限公司 一种算力资源调度方法、装置、设备和介质
CN117785487B (zh) * 2024-02-27 2024-05-24 融科联创(天津)信息技术有限公司 一种算力资源调度方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
US11275609B2 (en) Job distribution within a grid environment
US8832063B1 (en) Dynamic request throttling
CN112269641B (zh) 一种调度方法、装置、电子设备及存储介质
CN110221920B (zh) 部署方法、装置、存储介质及系统
CN110166507B (zh) 多资源调度方法和装置
CN107977271B (zh) 一种数据中心综合管理系统负载均衡方法
Bok et al. An efficient MapReduce scheduling scheme for processing large multimedia data
WO2020134133A1 (zh) 一种资源配置方法、变电站及计算机可读存储介质
CN112749002A (zh) 一种集群资源动态管理的方法和装置
CN115629865B (zh) 一种基于边缘计算的深度学习推理任务调度方法
CN116662020B (zh) 应用服务动态管理方法、系统、电子设备及存储介质
CN112600761A (zh) 一种资源分配的方法、装置及存储介质
KR101613513B1 (ko) 네트워크 대역폭 및 cpu 이용률을 고려한 가상머신 배치 방법 및 시스템
Pereira et al. Increasing the efficiency of fog nodes through of priority-based load balancing
CN110493317B (zh) 处理云平台资源碎片的方法及相关设备
CN117056064A (zh) 资源分配方法、装置、服务器、存储介质和程序产品
WO2022062981A1 (zh) 资源调度方法和系统、电子设备及计算机可读存储介质
CN114138428A (zh) 多优先级任务的slo保障方法、装置、节点及存储介质
CN115562841B (zh) 一种云视频服务自适应资源调度系统和方法
CN113014408A (zh) 分布式系统及其管理方法
Patel et al. An improved approach for load balancing among heterogeneous resources in computational grids
CN112231096B (zh) 一种fpga池化资源任务均衡的方法、系统、设备及介质
CN112148449B (zh) 一种局域网的基于边缘计算的调度算法及系统
CN115033355A (zh) 任务调度方法、电子设备及存储介质
CN115237595A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40097784

Country of ref document: HK