CN110879748A - 一种共享资源分配方法、装置和设备 - Google Patents

一种共享资源分配方法、装置和设备 Download PDF

Info

Publication number
CN110879748A
CN110879748A CN201811038282.9A CN201811038282A CN110879748A CN 110879748 A CN110879748 A CN 110879748A CN 201811038282 A CN201811038282 A CN 201811038282A CN 110879748 A CN110879748 A CN 110879748A
Authority
CN
China
Prior art keywords
level entity
service class
sub
shared resource
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811038282.9A
Other languages
English (en)
Other versions
CN110879748B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811038282.9A priority Critical patent/CN110879748B/zh
Publication of CN110879748A publication Critical patent/CN110879748A/zh
Application granted granted Critical
Publication of CN110879748B publication Critical patent/CN110879748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/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
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请提供一种共享资源分配方法、装置和设备,该方法包括:获取第一级实体的服务类标识;获取所述第一级实体运行的第二级实体的子服务类标识;获取与所述服务类标识和所述子服务类标识对应的共享资源参数;根据所述共享资源参数为所述第二级实体分配共享资源。通过本申请的技术方案,可以达到共享资源隔离的效果,避免多个第二级实体的互相影响,提高资源利用率。

Description

一种共享资源分配方法、装置和设备
技术领域
本申请涉及互联网技术领域,尤其是一种共享资源分配方法、装置和设备。
背景技术
被进程组(或者线程组)、虚拟机或者容器使用的系统资源,可以是共享资源,如高速缓存、内存带宽、网络带宽等。其中,高速缓存可以为LLC(Last Level Cache,最后一级高速缓存),即最后一级易失性高速缓存,高速缓存用于临时存取数据和指令;此外,内存带宽可以为每秒存取提供的访问吞吐量。
其中,可以将共享资源分配给进程组、虚拟机或者容器,并实现共享资源的隔离,如在物理机上实现进程组粒度、虚拟机粒度、或者容器粒度的资源隔离。但是,在进程组、虚拟机或者容器内部,不同进程(或线程)之间仍存在共享资源的竞争,不同进程占用的共享资源互相影响,容易造成性能不稳定。
发明内容
本申请提供一种共享资源分配方法,所述方法包括:
获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
根据所述共享资源参数为所述第二级实体分配共享资源。
本申请提供一种资源分配方法,所述方法包括:
获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的资源参数;
根据所述资源参数为所述第二级实体分配资源。
本申请提供一种共享资源分配装置,所述装置包括:
获取模块,用于获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
分配模块,用于根据所述共享资源参数为所述第二级实体分配共享资源。
本申请提供一种共享资源分配设备,所述设备包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
根据所述共享资源参数为所述第二级实体分配共享资源。
基于上述技术方案,本申请实施例中,在第一级实体内运行第二级实体时,可以根据第一级实体的服务类标识和第二级实体的子服务类标识确定共享资源参数,并根据该共享资源参数为第二级实体分配共享资源。显然,在上述方式中,可以为第一级实体内的第二级实体分配共享资源,实现共享资源的分配,避免第一级实体内的多个第二级实体共同竞争共享资源,能够在第一级实体内部实现第二级实体粒度的资源隔离,避免了第二级实体间的资源竞争,可以达到共享资源隔离的效果,避免多个第二级实体之间的互相影响,提高了共享资源的利用率,避免了共享资源竞争对业务性能的影响,提高性能的稳定性。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的共享资源分配方法的流程图;
图2A是本申请一种实施方式中的共享资源动态分配示意图;
图2B是本申请一种实施方式中的共享资源动态分配虚拟化示意图;
图3是本申请另一种实施方式中的共享资源分配方法的流程图;
图4是本申请一种实施方式中的共享资源动态监控虚拟化示意图;
图5是本申请一种实施方式中的共享资源分配装置的结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例提出一种共享资源分配方法,可以应用于共享资源分配设备,如数据中心内的任意设备,如PC(Personal Computer,个人计算机)、笔记本电脑、服务器、数据平台、电商平台、物理机、终端设备等,对此不做限制。
在一个例子中,共享资源可以包括但不限于高速缓存、内存带宽、网络带宽,对此不做限制。高速缓存可以为LLC,内存带宽可以为每秒内存取提供的访问吞吐量,网络带宽可以是在单位时间(如1秒钟)内能够能传输的数据量。
参见图1所示,为该共享资源分配方法的流程示意图,该方法可以包括:
步骤101,获取第一级实体的服务类标识。
步骤102,获取该第一级实体运行的第二级实体的子服务类标识。
其中,获取第一级实体的服务类标识,可以包括但不限于:当在该第一级实体运行第二级实体时,可以从第二存储介质中读取第一级实体的服务类标识。
其中,获取该第一级实体运行的第二级实体的子服务类标识,可以包括但不限于:当在该第一级实体运行第二级实体时,可以从第二存储介质中读取该第一级实体运行的第二级实体的子服务类标识。进一步的,从第二存储介质中读取该第一级实体运行的第二级实体的子服务类标识,可以包括但不限于:判断该第二存储介质中的标记位是否为特定标识,如果是,则可以从第二存储介质中读取该第一级实体运行的第二级实体的子服务类标识,如果否,则禁止从第二存储介质中读取该第一级实体运行的第二级实体的子服务类标识。
在一个例子中,在获取第一级实体的服务类标识之前,还可以包括:当在该第一级实体创建第二级实体时,可以为该第二级实体生成子服务类标识,并在第二存储介质记录该第一级实体的服务类标识和该子服务类标识。
进一步的,还可以将该第二存储介质中的标记位设置为特定标识;其中,该特定标识可以用于表示第二存储介质记录有第二级实体的子服务类标识。
在上述实施例中,该第一级实体可以包括但不限于:进程、虚拟机、容器、或进程组;该第二级实体可以包括但不限于:进程。例如,当第一级实体是进程时,则该进程内可以运行多个子进程,且第二级实体是该进程内运行的子进程;当第一级实体是虚拟机时,则该虚拟机内可以运行多个进程,且第二级实体是该虚拟机内运行的进程;当第一级实体是容器时,则该容器内可以运行多个进程,且第二级实体是该容器内运行的进程;当第一级实体是进程组时,则该进程组内可以运行多个进程,且第二级实体是该进程组内运行的进程。
在上述实施例中,不同的第一级实体可以对应相同或者不同的服务类标识;例如,第一级实体1可以对应服务类标识1,第一级实体2可以对应服务类标识2;或者,第一级实体1可以对应服务类标识1,第一级实体2可以对应服务类标识1。此外,针对同一个第一级实体运行的不同第二级实体,可以对应相同或者不同的子服务类标识;例如,第一级实体1运行的第二级实体1可以对应子服务类标识1,第一级实体1运行的第二级实体2可以对应子服务类标识2;或者,第二级实体1对应子服务类标识1,第二级实体2对应子服务类标识1。
步骤103,获取与该服务类标识和该子服务类标识对应的共享资源参数。
具体的,可以从第一存储介质中获取与该服务类标识和该子服务类标识对应的共享资源参数;其中,该第一存储介质可以用于记录第一级实体的服务类标识、第二级实体的子服务类标识与共享资源参数的对应关系。
在一个例子中,在获取第一级实体的服务类标识之前,还可以包括:当在第一级实体创建第二级实体时,则可以为该第二级实体生成子服务类标识,并为该第二级实体分配共享资源参数;然后,在第一存储介质中记录该第一级实体的服务类标识、该第二级实体的子服务类标识与该共享资源参数的对应关系。
进一步的,在步骤103中,通过服务类标识和子服务类标识查询第一存储介质,就可以得到与该服务类标识和该子服务类标识对应的共享资源参数。
其中,为第二级实体分配共享资源参数,可以包括但不限于:确定第一级实体的共享资源参数,并从第一级实体的共享资源参数中选择部分或者全部共享资源参数,然后,可以将选择的共享资源参数分配给第二级实体。
在上述实施例中,第一存储介质可以包括第一寄存器,且该第一寄存器可以由多个处理器共享;也就是说,多个处理器均可以访问该第一寄存器,并从该第一寄存器中获取与服务类标识和子服务类标识对应的共享资源参数。
在上述实施例中,第二存储介质可以包括第二寄存器,且第二寄存器可以由每个处理器独占;也就是说,每个处理器对应一个第二寄存器,处理器只访问自身的第二寄存器。例如,处理器1对应第二寄存器1,处理器2对应第二寄存器2;处理器1可以访问第二寄存器1,从第二寄存器1中读取第一级实体的服务类标识和第二级实体的子服务类标识;处理器2可以访问第二寄存器2,从第二寄存器2中读取第一级实体的服务类标识和第二级实体的子服务类标识。
步骤104,根据该共享资源参数为第二级实体分配共享资源。
在上述实施例中,共享资源参数可以包括但不限于:共享资源比例,进一步的,共享资源比例可以为共享资源的Capability Bit Mask(能力位掩码),所述Capability BitMask表示系统分配的共享资源的比例,本文称共享资源参数。
在一个例子中,可以将该共享资源参数分配给第二级实体,第二级实体可以使用该共享资源参数对应的共享资源。例如,若共享资源参数为25%,则可以将总资源的25%分配给第二级实体,即第二级实体可以使用总资源的25%。
在一个例子中,根据该共享资源参数为第二级实体分配共享资源之后,还可以包括:获取该第一级实体的资源监控标识,并获取该第一级实体运行的第二级实体的子资源监控标识;然后,可以根据该第一级实体的资源监控标识和该第二级实体的子资源监控标识,对该第二级实体使用的共享资源进行监控。
具体的,根据该第一级实体的资源监控标识和该第二级实体的子资源监控标识,对该第二级实体使用的共享资源进行监控,可以包括但不限于:将该资源监控标识和该子资源监控标识写入到第三存储介质,并将该第二级实体的共享资源的使用数据写入到第四存储介质;然后,在需要对共享资源进行监控时,可以从第四存储介质中读取该使用数据,并从第三存储介质中读取该资源监控标识和该子资源监控标识;然后,确定与该资源监控标识和该子资源监控标识对应的第二级实体;根据该使用数据对第二级实体使用的共享资源进行监控。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,在第一级实体内运行第二级实体时,可以为第一级实体内的第二级实体分配共享资源,实现共享资源的分配,避免第一级实体内的多个第二级实体共同竞争共享资源,能够在第一级实体内部实现第二级实体粒度的资源隔离,避免了第二级实体间的资源竞争,可以达到共享资源隔离的效果,避免多个第二级实体之间的互相影响,提高了共享资源的利用率,避免了共享资源竞争对业务性能的影响,提高性能的稳定性。
基于与上述方法同样的申请构思,本申请实施例中还提出一种资源分配方法,该方法可以包括:获取第一级实体的服务类标识,并获取该第一级实体运行的第二级实体的子服务类标识;然后,可以获取与该服务类标识和该子服务类标识对应的资源参数,并根据该资源参数为该第二级实体分配资源。
该资源可以包括但不限于共享资源和非共享资源;若该资源是共享资源,则处理流程参见上述实施例,在此不再赘述;若该资源是非共享资源,则将上述实施例中的共享资源替换为非共享资源,其实现流程类似,在此不再赘述。
综上所述,在第一级实体内运行第二级实体时,可以为第一级实体内的第二级实体分配资源,实现资源的分配,避免第一级实体内的多个第二级实体共同竞争资源,能够在第一级实体内部实现第二级实体粒度的资源隔离,避免第二级实体的资源竞争,达到资源隔离的效果,避免多个第二级实体的互相影响,提高了资源的利用率,避免了资源竞争对业务性能的影响,提高性能的稳定性。
以下结合具体应用场景,对上述技术方案进行详细说明。在本应用场景下,参见图2A所示,为共享资源动态分配的示意图,资源组(Resource Group)可以是共享资源隔离的最小粒度,每个资源组具有唯一的组标识,这个组标识也可以称为CLOSID(Class ofService ID,服务类标识),并可以通过CLOSID唯一表示某个资源组。而且,每个资源组还可以对应有共享资源参数,并可以记录该资源组的CLOSID与该资源组的共享资源参数之间的的对应关系。
参见图2A所示,每个CPU(Central Processing Unit,中央处理器)维护一个MSR寄存器(Model Specific Register,模型专用寄存器),并通过MSR寄存器记录第一级实体所属的资源组的CLOSID,如CLOSID1。可以针对每个共享资源维护MASK(掩码)寄存器,例如,针对共享资源“高速缓存”维护MASK寄存器1,并通过MASK寄存器1记录资源组的CLOSID与该资源组的共享资源参数之间的对应关系,这个共享资源参数表示该资源组能够占用的高速缓存的共享资源参数;针对共享资源“内存带宽”维护MASK寄存器2,并通过MASK寄存器2记录资源组的CLOSID与该资源组的共享资源参数之间的对应关系,这个共享资源参数表示该资源组能够占用的内存带宽的共享资源参数。
综上所述,在第一级实体运行时,则CPU可以从MSR寄存器中读取该第一级实体所属的资源组的CLOSID,并通过该CLOSID查询MASK寄存器1,从而得到高速缓存的共享资源参数,并根据该共享资源参数为该第一级实体分配高速缓存;此外,还可以通过该CLOSID查询MASK寄存器2,从而得到内存带宽的共享资源参数,并根据该共享资源参数为该第一级实体分配内存带宽。显然,经过上述处理,通过将不同的第一级实体加入到不同的资源组,使得不同的第一级实体可以使用自身的共享资源,可以达到共享资源隔离的效果。
但是,在上述方式中,在第一级实体内部,若第一级实体同时运行多个第二级实体,则第二级实体之间仍存在共享资源的竞争,互相影响,性能不稳定,而目前的CPU架构和技术,无法实现第一级实体内部不同的第二级实体之间的共享资源隔离。针对上述发现,本实施例中,可以在第一级实体内部,实现第二级实体粒度的资源动态分配,避免第一级实体内部不同的第二级实体之间的资源竞争,实现第一级实体内部不同的第二级实体之间的共享资源隔离。
本实施例中,第一级实体可以包括但不限于进程、进程组、虚拟机、或容器;第二级实体可以包括但不限于进程、容器,如进程组内的不同进程、进程内的不同线程、虚拟机内的不同进程、容器内的不同进程等。例如,当第一级实体是进程时,则进程内可以运行多个子线程,且第二级实体是进程内运行的子线程;当第一级实体是虚拟机时,则虚拟机内可以运行多个进程,且第二级实体是虚拟机内运行的进程,或者,虚拟机内可以运行多个容器,且第二级实体是虚拟机内运行的容器;当第一级实体是容器时,则容器内可以运行多个进程,且第二级实体是容器内运行的进程,或者,容器内可以运行多个子容器,且第二级实体是虚拟机内运行的子容器;当第一级实体是进程组时,则进程组内可以运行多个进程,且第二级实体是进程组内运行的进程。当然,上述只是第一级实体和第二级实体的示例,对此不做限制,如第二级实体可以是微服务。
为了方便描述,后续实施例中,以第一级实体是虚拟机,第二级实体是虚拟机内运行的进程为例,对于其它第一级实体和第二级实体,其实现流程类似。
参见图2B所示,为共享资源动态分配虚拟化的示意图,资源组不再是共享资源隔离的最小粒度,资源组下的子资源组是共享资源隔离的最小粒度。每个资源组具有唯一的组标识,该组标识可以称为服务类标识(即CLOSID),并通过服务类标识唯一表示某个资源组。每个子资源组具有唯一的组标识,该组标识可以称为子服务类标识,并通过子服务类标识唯一表示某个子资源组。
其中,不同的虚拟机可以加入到不同的资源组,这样,不同的虚拟机可以对应不同的服务类标识;例如,将虚拟机1加入到资源组1,将虚拟机2加入到资源组2,这样,虚拟机1对应的服务类标识是资源组1的服务类标识,虚拟机2对应的服务类标识是资源组2的服务类标识。或者,不同的虚拟机可以加入到相同的资源组,这样,不同的虚拟机可以对应相同的服务类标识;例如,将虚拟机1和虚拟机2加入到资源组1,这样,虚拟机1对应的服务类标识是资源组1的服务类标识,虚拟机2对应的服务类标识也是资源组1的服务类标识。
针对虚拟机1内运行的不同进程,可以加入到不同的子资源组,这样,不同进程可以对应不同的子服务类标识;例如,将虚拟机1内运行的进程1加入到资源组1下的资源组11,将虚拟机1内运行的进程2加入到资源组1下的资源组12,这样,进程1对应的子服务类标识是资源组11的子服务类标识,进程2对应的子服务类标识是资源组12的子服务类标识。或者,针对虚拟机1内运行的不同进程,可以加入到相同的子资源组,这样,不同进程对应相同的子服务类标识;例如,将进程1和进程2加入到资源组1下的资源组11,进程1对应的子服务类标识和进程2对应的子服务类标识,是资源组11的子服务类标识。
在一个例子中,每个资源组可以对应有共享资源参数,并可以记录该资源组的服务类标识与该资源组的共享资源参数之间的对应关系。而且,资源组下的每个子资源组也对应有共享资源参数,并可以记录该资源组的服务类标识、该子资源组的子服务类标识与该子资源组的共享资源参数之间的的对应关系。
例如,资源组1对应共享资源参数A,属于资源组1的资源组11可以对应共享资源参数A1,属于资源组2的资源组12可以对应共享资源参数A2,需要注意的是,共享资源参数A1和共享资源参数A2的和,不能超过共享资源参数A。进一步的,在CPU使用共享资源参数A1对应的共享资源时,实际上,就是使用共享资源参数A对应的部分共享资源;在CPU使用共享资源参数A2对应的共享资源时,实际上,就是使用共享资源参数A对应的部分共享资源。
参见图2B所示,每个CPU可以维护第二存储介质,第二存储介质可以为第二寄存器(如MSR寄存器),且第二寄存器由CPU独占,即CPU只访问自身的第二寄存器。其中,第二寄存器可以包括三个位域,第一个位域是标识域,通过标识域记录虚拟机所属的资源组的服务类标识。第二个位域是标记位域,通过标记位域表示是否使能进程对应的子服务类标识;例如,当标记位域为特定标识(如1)时,表示使能进程对应的子服务类标识,即,可以基于虚拟机内运行的进程对应的共享资源参数分配共享资源;当标记位域不为特定标识(如0)时,表示未使能进程对应的子服务类标识,即,可以基于虚拟机对应的共享资源参数分配共享资源。第三个位域是子标识域,在标记位域为特定标识的情况下,通过子标识域记录虚拟机内运行的进程所属的子资源组的子服务类标识。
参见图2B所示,可以针对每个共享资源维护第一存储介质,第一存储介质可以为第一寄存器(如MASK寄存器),且第一寄存器由多个CPU共享,即多个CPU均可以访问第一寄存器。其中,第一寄存器可以包括三个位域,第一个位域是标识域,可以通过标识域记录资源组的服务类标识。第二个位域是子标识域,可以通过子标识域记录子资源组的子服务类标识。第三个位域是共享资源域,可以通过共享资源域记录共享资源参数(如共享资源比例等),且该共享资源参数表示服务类标识和子服务类标识的组合,匹配的共享资源参数。
其中,可以针对每种共享资源维护一个第一寄存器,例如,针对共享资源“高速缓存”维护第一寄存器1,并通过第一寄存器1记录服务类标识、子服务类标识和共享资源参数之间的对应关系,这个共享资源参数表示能够占用的高速缓存的共享资源参数;针对共享资源“内存带宽”维护第一寄存器2,并通过第一寄存器2记录服务类标识、子服务类标识和共享资源参数之间的对应关系,这个共享资源参数表示能够占用的内存带宽的共享资源参数,以此类推。
综上所述,在虚拟机内的进程运行时,则CPU可以从第二寄存器中读取虚拟机的服务类标识、该虚拟机内运行的进程的子服务类标识,并通过该服务类标识和该子服务类标识查询第一寄存器1,从而得到高速缓存的共享资源参数,并根据该共享资源参数为该虚拟机内运行的进程分配高速缓存;可以通过该服务类标识和该子服务类标识查询第一寄存器2,从而得到内存带宽的共享资源参数,并根据该共享资源参数为该虚拟机内运行的进程分配内存带宽。
显然,经过上述处理,本实施例中,通过将不同的虚拟机加入到不同的资源组,并将虚拟机内运行的不同进程加入到不同的子资源组,从而使虚拟机内运行的不同进程可以使用自身的共享资源,可以达到共享资源隔离的效果。
在上述应用场景下,以共享资源“高速缓存”为例进行说明,参见图3所示,为本申请实施例中提出的共享资源分配方法的流程图,该方法可以包括:
步骤301,当在虚拟机(如虚拟机1)内创建进程(如进程12)时,为进程12生成子服务类标识(如子服务类标识A),并为进程12分配共享资源参数。
其中,为进程12生成子服务类标识A,可以包括但不限于如下方式:当在虚拟机1内创建进程12时,判断虚拟机1的资源组内是否已经存在子资源组。
如果否,则创建子资源组,并为该子资源组分配子服务类标识,对此分配过程不做限制,只要子服务类标识具有唯一性即可;然后,将进程12加入到该子资源组,这样,进程12的子服务类标识就是该子资源组的子服务类标识。
如果是,如之前已经为虚拟机1内创建的进程11分配子资源组1,则判断是否将进程12加入到子资源组1;如果加入到子资源组1,则进程12的子服务类标识就是子资源组1的子服务类标识;如果不加入到子资源组1,则创建新的子资源组2,并为该子资源组2分配子服务类标识;然后,将进程12加入到子资源组2,这样,进程12的子服务类标识就是该子资源组2的子服务类标识。
在一个例子中,为进程12分配共享资源参数,可以包括但不限于如下方式:确定虚拟机1的共享资源参数,并从虚拟机1的共享资源参数中选择部分或者全部共享资源参数,然后,可以将选择的共享资源参数分配给进程12。
其中,为进程12分配共享资源参数,可以包括但不限于如下方式:当在虚拟机1内创建进程12时,判断虚拟机1的资源组内是否已经存在子资源组。
如果否,则创建子资源组,并为子资源组分配共享资源参数,假设虚拟机1的共享资源参数为50%,表示将总资源的50%分配给虚拟机1,则可以从虚拟机1的共享资源参数中选择部分或者全部共享资源参数,如选择的共享资源参数为10%、25%、或50%等,对此不做限制,将选择的共享资源参数分配给子资源组。然后,将进程12加入到该子资源组,这样,进程12的共享资源参数就是该子资源组的共享资源参数。例如,假设分配给该子资源组的共享资源参数为25%,则进程12的共享资源参数为25%,表示将总资源的25%分配给进程12。
如果是,如之前已经为虚拟机1内创建的进程11分配子资源组1,则判断是否将进程12加入到子资源组1。如果加入到子资源组1,则进程12和进程11共同使用子资源组1的共享资源参数,如资源组1的共享资源参数为25%,则将总资源的25%分配给进程12和进程11,即进程12和进程11共享这部分资源。
如果不加入到子资源组1,则可以创建新的子资源组2,并为该子资源组2分配共享资源参数,假设虚拟机1的共享资源参数为50%,且子资源组1的共享资源参数为25%,则可以从虚拟机1的剩余共享资源参数(如25%)中选择部分或者全部共享资源参数,如选择的共享资源参数为10%、或25%等,对此不做限制,并可以将选择的共享资源参数分配给子资源组2。然后,可以将进程12加入到该子资源组2,这样,进程12的共享资源参数就是该子资源组2的共享资源参数。例如,假设分配给该子资源组2的共享资源参数为10%,则进程12的共享资源参数可以为10%,表示将总资源的10%分配给进程12。
步骤302,在第二寄存器内记录虚拟机1的服务类标识和进程12的子服务类标识。进一步的,还可以将第二寄存器内的标记位设置为特定标识(如1)。
参见上述实施例,CPU维护第二寄存器,第二寄存器包括三个位域,第一个位域是标识域,第二个位域是标记位域,第三个位域是子标识域,因此,将虚拟机1的服务类标识记录到第二寄存器的标识域,将进程12的子服务类标识记录到第二寄存器的子标识域,并将第二寄存器的标记位域设置为特定标识。
步骤303,在第一寄存器(如高速缓存对应的第一寄存器1)内记录虚拟机1的服务类标识、进程12的子服务类标识与进程12的共享资源参数的对应关系。
参见上述实施例,多个CPU可以访问高速缓存对应的第一寄存器1,且第一寄存器1可以包括三个位域,第一个位域是标识域,第二个位域是子标识域,第三个位域是共享资源域,因此,可以将虚拟机1的服务类标识记录到第一寄存器1的标识域,可以将进程12的子服务类标识记录到第一寄存器1的子标识域,并可以将进程12的共享资源参数记录到第一寄存器1的共享资源域。
其中,上述步骤301-步骤303的执行主体可以是CPU。当在虚拟机1内创建新进程(如上述进程12)时,可以执行步骤301-步骤303。假设创建进程12后,CPU不再执行进程12,而是在虚拟机1内创建新进程13,则针对进程13执行步骤301-步骤303;然后,当从进程13切换回进程12时,由于已经执行过步骤301-步骤303,因此,可以不再重新执行步骤301-步骤303,而是删除第二寄存器中的内容,并在第二寄存器内重新记录虚拟机1的服务类标识和进程12的子服务类标识,并将第二寄存器内的标记位设置为特定标识(如1)。
步骤304,当在虚拟机1内运行进程12时,从第二寄存器内读取虚拟机1的服务类标识,并从第二寄存器内读取进程12的子服务类标识。
其中,由于在虚拟机1内创建进程12时,已经在第二寄存器内记录虚拟机1的服务类标识和进程12的子服务类标识,因此,当在虚拟机1内运行进程12时,可以从第二寄存器内读取虚拟机1的服务类标识,并从第二寄存器内读取进程12的子服务类标识,例如,可以从第二寄存器的标识域中读取虚拟机1的服务类标识,并从第二寄存器的子标识域中读取进程12的子服务类标识。
其中,在从第二寄存器内读取进程12的子服务类标识之前,还可以判断第二寄存器中的标记位(如标记位域)是否为特定标识;如果是,则可以从第二寄存器内读取进程12的子服务类标识;如果否,则不再从第二寄存器内读取进程12的子服务类标识,而是利用虚拟机1的服务类标识进行后续处理。
步骤305,从第一寄存器中获取与该服务类标识(即虚拟机1的服务类标识)和该子服务类标识(即进程12的子服务类标识)对应的共享资源参数。
在一个例子中,由于在虚拟机1内创建进程12时,已经在第一寄存器内记录虚拟机1的服务类标识、进程12的子服务类标识和进程12的共享资源参数的对应关系,因此,当在虚拟机1内运行进程12时,在从第二寄存器内读取虚拟机1的服务类标识和进程12的子服务类标识后,可以从第一寄存器中获取与该虚拟机1的服务类标识和该进程12的子服务类标识对应的共享资源参数。
步骤306,根据该共享资源参数为进程12分配共享资源。其中,该共享资源参数可以包括但不限于共享资源比例,且该共享资源比例可以为共享资源的Capability BitMask,所述Capability Bit Mask表示系统分配的共享资源的比例。
例如,假设共享资源参数为25%,则将高速缓存的总资源的25%分配给虚拟机1内运行的进程12,也就是说,进程12占用高速缓存的总资源的25%。
在一个例子中,还可以将共享资源参数通知给对应的CHA(Channel,信道),由CHA根据共享资源参数实施特定约束的共享资源访问,如使用固定比例的内存带宽,使用固定的高速缓存进行读写,以达到共享资源隔离的效果。
其中,上述步骤304-步骤306的执行主体可以是CPU,与步骤301-步骤303相比,步骤304-步骤306是进程12的运行过程,即CPU真正执行进程12的过程,而步骤301-步骤303是CPU创建进程12的过程,并没有真正执行进程12。
本实施例中,在根据共享资源参数为进程12分配共享资源后,在进程12使用共享资源的过程中,还可以对进程12的共享资源使用情况进行监控。
参见图4所示,为共享资源动态监控虚拟化的示意图,每个CPU可以维护第三存储介质,第三存储介质可以为第三寄存器(如MSR寄存器),且第三寄存器由CPU独占,即CPU只访问自身的第三寄存器。其中,第三寄存器可以包括三个位域,第一个位域是标识域,通过标识域记录虚拟机所属的资源组的资源监控标识。第二个位域是标记位域,通过标记位域表示是否使能进程对应的子资源监控标识;例如,当标记位域为特定标识(如1)时,表示使能进程对应的子资源监控标识;当标记位域不为特定标识(如0)时,表示未使能进程对应的子资源监控标识。第三个位域是子标识域,在标记位域为特定标识的情况下,通过子标识域记录虚拟机内运行的进程所属的子资源组的子资源监控标识。
针对每个资源组来说,具有唯一的RMID(Resource Monitoring ID,资源监控标识),资源监控标识用于唯一表示资源组。针对资源组内的每个子资源组来说,具有唯一的子资源监控标识,子资源监控标识用于唯一表示子资源组。
在一个例子中,在进程12使用共享资源的过程中,还可以对进程12的共享资源使用情况进行监控。具体的,当需要监控进程12的共享资源使用情况时,可以获取虚拟机1的资源监控标识(如虚拟机1所属的资源组的资源监控标识),并获取虚拟机1运行的进程12的子资源监控标识(如进程12所属的子资源组的子资源监控标识)。然后,将虚拟机1的资源监控标识和进程12的子资源监控标识写入到第三寄存器,并将第三寄存器内的标记位设置为特定标识(如1)。
在进程12使用共享资源的过程中,可以获取进程12的共享资源的使用数据,如进程12使用高速缓存的总资源的24%时,共享资源的使用数据是高速缓存的总资源的24%,对使用数据的获取过程不做限制。在获取到共享资源的使用数据后,可以将共享资源的使用数据写入到第四存储介质。其中,第四存储介质可以为DATA寄存器(即数据寄存器),用于记录共享资源的使用数据。
进一步的,在需要对进程12使用的共享资源进行监控时,即需要获知进程12使用的共享资源时,可以从DATA寄存器中读取该共享资源的使用数据,并可以从第三寄存器中读取该虚拟机1的资源监控标识和该进程12的子资源监控标识;然后,可以确定与该资源监控标识和该子资源监控标识对应的是进程12,并可以根据该使用数据对进程12使用的共享资源进行监控,也就是说,当使用数据是高速缓存的总资源的24%时,则监控结果可以是:进程12使用高速缓存的总资源的24%,这样,就可以成功监控到进程12的共享资源使用情况。
在一个例子中,还可以设置事件选择寄存器,事件选择寄存器用于记录待监控的共享资源,如高速缓存、内存带宽。例如,当事件选择寄存器为高速缓存对应的第一标识时,则需要监控高速缓存的使用数据,即DATA寄存器中记录高速缓存的使用数据。当事件选择寄存器为内存带宽对应的第二标识时,则需要监控内存带宽的使用数据,即DATA寄存器中记录内存带宽的使用数据。
在监控到进程12的共享资源使用情况后,就可以利用该共享资源使用情况进行处理,对此处理不做限制。例如,为进程12分配高速缓存的总资源的25%时,若根据进程12的共享资源使用情况,确定进程12长时间使用总资源的25%,则表示总资源的25%可能不够用,因此,可以增加为进程12分配的高速缓存。若根据进程12的共享资源使用情况,确定进程12长时间使用总资源的10,则表示总资源的25%长时间剩余,因此,可以减少为进程12分配的高速缓存。
在一个例子中,针对虚拟化场景,虚拟机1可以是基于KVM(Kernel-based VirtualMachine,虚拟化管理层)或者QEMU(模拟处理开源代码)的虚拟机,且虚拟机1内运行的进程12可以是QEMU进程,虚拟机1可以加入到某个资源组中,并利用系统软件为该资源组分配一个服务类标识,并利用系统软件为该资源组分配共享资源参数。当需要为虚拟机1中运行的不同进程(如进程12)进行共享资源隔离时,则可以将进程12加入到虚拟机1所属的资源组的某个子资源组中,并利用系统软件为该子资源组分配一个子服务类标识,并利用系统软件为该子资源组分配共享资源参数。其它实现过程可以参见上述实施例,在此不再重复赘述。综上所述,在虚拟化场景下,可以提供从软件到硬件的完整实现方案,促使本实施例中的共享资源分配方法在公有云/私有云场景下实现。
基于上述技术方案,本实施例中,在虚拟机内运行多个进程时,可以为多个进程分配共享资源,实现共享资源的分配,避免多个进程共同竞争共享资源,能够在虚拟机内部实现进程粒度的资源隔离,避免虚拟机内部进程间的资源竞争,可以达到共享资源隔离的效果,避免多个进程之间的互相影响,提高共享资源的利用率,避免共享资源竞争对业务性能的影响,提高性能稳定性。
在数据中心内,业务的混合部署是提高资源利用率的有效手段,也是未来发展的趋势,而上述方式可以在混合部署场景中,实现共享资源的动态分配和隔离,是二层嵌套的资源隔离技术,即共享资源的第二层动态分配和隔离技术,从而能够在虚拟机内部实现以进程粒度的资源隔离,进一步避免了内部不同进程间的资源竞争,为数据中心提供了更加完善的底层共享资源隔离技术。
基于与上述方法同样的申请构思,本申请实施例还提供一种共享资源分配装置,如图5所示,为所述共享资源分配装置的结构图,所述装置包括:
获取模块51,用于获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
分配模块52,用于根据所述共享资源参数为所述第二级实体分配共享资源。
所述获取模块51获取第一级实体的服务类标识时具体用于:当在所述第一级实体运行所述第二级实体时,从第二存储介质中读取所述第一级实体的服务类标识;所述获取模块51获取所述第一级实体运行的第二级实体的子服务类标识时具体用于:当在所述第一级实体运行所述第二级实体时,则从所述第二存储介质中读取所述第一级实体运行的所述第二级实体的子服务类标识。
所述获取模块51获取第一级实体的服务类标识之前还用于:
当在第一级实体创建第二级实体时,为所述第二级实体生成子服务类标识;
在第二存储介质记录所述第一级实体的服务类标识和所述子服务类标识。
所述获取模块51获取与所述服务类标识和所述子服务类标识对应的共享资源参数时具体用于:从第一存储介质中获取与所述服务类标识和所述子服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录第一级实体的服务类标识、第二级实体的子服务类标识与共享资源参数的对应关系;
所述获取模块51获取第一级实体的服务类标识之前还用于:
当在所述第一级实体创建所述第二级实体时,则为所述第二级实体生成子服务类标识,并为所述第二级实体分配共享资源参数;
在所述第一存储介质中记录所述第一级实体的服务类标识、所述第二级实体的子服务类标识与所述共享资源参数的对应关系。
所述获取模块51还用于:获取所述第一级实体的资源监控标识;获取所述第二级实体的子资源监控标识;
所述装置还包括监控模块,用于根据所述第一级实体的资源监控标识和所述第二级实体的子资源监控标识,对所述第二级实体使用的共享资源进行监控。
基于与上述方法同样的申请构思,本申请实施例还提供一种共享资源分配设备,包括:处理器和机器可读存储介质;其中,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
根据所述共享资源参数为所述第二级实体分配共享资源。
本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
根据所述共享资源参数为所述第二级实体分配共享资源。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (20)

1.一种共享资源分配方法,其特征在于,所述方法包括:
获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
根据所述共享资源参数为所述第二级实体分配共享资源。
2.根据权利要求1所述的方法,其特征在于,
获取与所述服务类标识和所述子服务类标识对应的共享资源参数,包括:
从第一存储介质中获取与所述服务类标识和所述子服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录第一级实体的服务类标识、第一级实体运行的第二级实体的子服务类标识与共享资源参数的对应关系。
3.根据权利要求1所述的方法,其特征在于,
所述获取第一级实体的服务类标识,包括:当在所述第一级实体运行所述第二级实体时,从第二存储介质中读取所述第一级实体的服务类标识;
所述获取所述第一级实体运行的第二级实体的子服务类标识,包括:
当在所述第一级实体运行所述第二级实体时,则从所述第二存储介质中读取所述第一级实体运行的所述第二级实体的子服务类标识。
4.根据权利要求3所述的方法,其特征在于,所述从所述第二存储介质中读取所述第一级实体运行的所述第二级实体的子服务类标识,包括:
判断所述第二存储介质中的标记位是否为特定标识,如果是,则从所述第二存储介质中读取所述第一级实体运行的所述第二级实体的子服务类标识。
5.根据权利要求3或4所述的方法,其特征在于,
所述获取第一级实体的服务类标识之前,所述方法还包括:
当在第一级实体创建第二级实体时,为所述第二级实体生成子服务类标识;
在第二存储介质记录所述第一级实体的服务类标识和所述子服务类标识。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述第二存储介质中的标记位设置为特定标识;其中,所述特定标识用于表示所述第二存储介质记录有所述第二级实体的子服务类标识。
7.根据权利要求2所述的方法,其特征在于,
所述获取第一级实体的服务类标识之前,所述方法还包括:
当在所述第一级实体创建所述第二级实体时,则为所述第二级实体生成子服务类标识,并为所述第二级实体分配共享资源参数;
在所述第一存储介质中记录所述第一级实体的服务类标识、所述第二级实体的子服务类标识与所述共享资源参数的对应关系。
8.根据权利要求7所述的方法,其特征在于,
所述为所述第二级实体分配共享资源参数,包括:
确定所述第一级实体的共享资源参数;
从所述第一级实体的共享资源参数中选择部分或者全部共享资源参数;
将选择的共享资源参数分配给所述第二级实体。
9.根据权利要求1所述的方法,其特征在于,所述根据所述共享资源参数为所述第二级实体分配共享资源之后,所述方法还包括:
获取所述第一级实体的资源监控标识;
获取所述第二级实体的子资源监控标识;
根据所述第一级实体的资源监控标识和所述第二级实体的子资源监控标识,对所述第二级实体使用的共享资源进行监控。
10.根据权利要求9所述的方法,其特征在于,
所述根据所述第一级实体的资源监控标识和所述第二级实体的子资源监控标识,对所述第二级实体使用的共享资源进行监控,包括:
将所述资源监控标识和所述子资源监控标识写入到第三存储介质,并将所述第二级实体的共享资源的使用数据写入到第四存储介质;
在需要对共享资源进行监控时,从所述第四存储介质中读取所述使用数据,并从所述第三存储介质中读取所述资源监控标识和所述子资源监控标识;
确定与所述资源监控标识和所述子资源监控标识对应的第二级实体;
根据所述使用数据对所述第二级实体使用的共享资源进行监控。
11.根据权利要求1所述的方法,其特征在于,所述第一级实体具体包括:进程、虚拟机、容器、或进程组;所述第二级实体具体包括:进程;
其中,不同的第一级实体对应相同或者不同的服务类标识;针对同一个第一级实体运行的不同第二级实体,对应相同或者不同的子服务类标识。
12.根据权利要求2或3所述的方法,其特征在于,
第一存储介质包括第一寄存器,所述第一寄存器由多个处理器共享;
第二存储介质包括第二寄存器,所述第二寄存器由每个处理器独占。
13.根据权利要求1所述的方法,其特征在于,
所述共享资源包括:高速缓存、内存带宽、网络带宽;
所述共享资源参数包括:共享资源比例。
14.一种资源分配方法,其特征在于,所述方法包括:
获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的资源参数;
根据所述资源参数为所述第二级实体分配资源。
15.一种共享资源分配装置,其特征在于,所述装置包括:
获取模块,用于获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
分配模块,用于根据所述共享资源参数为所述第二级实体分配共享资源。
16.根据权利要求15所述的装置,其特征在于,所述获取模块获取第一级实体的服务类标识时具体用于:当在所述第一级实体运行所述第二级实体时,从第二存储介质中读取所述第一级实体的服务类标识;
所述获取模块获取所述第一级实体运行的第二级实体的子服务类标识时具体用于:当在所述第一级实体运行所述第二级实体时,则从所述第二存储介质中读取所述第一级实体运行的所述第二级实体的子服务类标识。
17.根据权利要求16所述的装置,其特征在于,
所述获取模块获取第一级实体的服务类标识之前还用于:
当在第一级实体创建第二级实体时,为所述第二级实体生成子服务类标识;
在第二存储介质记录所述第一级实体的服务类标识和所述子服务类标识。
18.根据权利要求15所述的装置,其特征在于,
所述获取模块获取与所述服务类标识和所述子服务类标识对应的共享资源参数时具体用于:从第一存储介质中获取与所述服务类标识和所述子服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录第一级实体的服务类标识、第二级实体的子服务类标识与共享资源参数的对应关系;
所述获取模块获取第一级实体的服务类标识之前还用于:
当在所述第一级实体创建所述第二级实体时,则为所述第二级实体生成子服务类标识,并为所述第二级实体分配共享资源参数;
在所述第一存储介质中记录所述第一级实体的服务类标识、所述第二级实体的子服务类标识与所述共享资源参数的对应关系。
19.根据权利要求15所述的装置,其特征在于,所述获取模块还用于:获取所述第一级实体的资源监控标识;获取所述第二级实体的子资源监控标识;
所述装置还包括监控模块,用于根据所述第一级实体的资源监控标识和所述第二级实体的子资源监控标识,对所述第二级实体使用的共享资源进行监控。
20.一种共享资源分配设备,其特征在于,所述设备包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
获取第一级实体的服务类标识;
获取所述第一级实体运行的第二级实体的子服务类标识;
获取与所述服务类标识和所述子服务类标识对应的共享资源参数;
根据所述共享资源参数为所述第二级实体分配共享资源。
CN201811038282.9A 2018-09-06 2018-09-06 一种共享资源分配方法、装置和设备 Active CN110879748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811038282.9A CN110879748B (zh) 2018-09-06 2018-09-06 一种共享资源分配方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811038282.9A CN110879748B (zh) 2018-09-06 2018-09-06 一种共享资源分配方法、装置和设备

Publications (2)

Publication Number Publication Date
CN110879748A true CN110879748A (zh) 2020-03-13
CN110879748B CN110879748B (zh) 2023-06-13

Family

ID=69727583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811038282.9A Active CN110879748B (zh) 2018-09-06 2018-09-06 一种共享资源分配方法、装置和设备

Country Status (1)

Country Link
CN (1) CN110879748B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532419A (zh) * 2020-09-25 2021-03-19 南京大学 一种数据中心多用户混合资源请求的部署方法
CN112769629A (zh) * 2021-02-26 2021-05-07 北京百度网讯科技有限公司 带宽分配方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1848095A (zh) * 2004-12-29 2006-10-18 英特尔公司 在多核心/多线程处理器中高速缓存的公平共享
CN1853166A (zh) * 2003-09-30 2006-10-25 英特尔公司 用于多线程的线程管理的方法和装置
CN102455943A (zh) * 2010-10-19 2012-05-16 上海聚力传媒技术有限公司 一种基于内存池来进行数据共享的方法和计算机设备
US20140201017A1 (en) * 2008-06-19 2014-07-17 Servicemesh, Inc. Systems and methods for providing repeated use of computing resources
CN105446841A (zh) * 2015-11-24 2016-03-30 无锡江南计算技术研究所 缓存一致性测试方法
US20170371712A1 (en) * 2016-06-24 2017-12-28 International Business Machines Corporation Hierarchical process group management
CN108334396A (zh) * 2017-01-19 2018-07-27 阿里巴巴集团控股有限公司 一种数据处理方法和装置、资源组的创建方法和装置
CN108491278A (zh) * 2018-03-13 2018-09-04 网宿科技股份有限公司 一种处理业务数据的方法和网络设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1853166A (zh) * 2003-09-30 2006-10-25 英特尔公司 用于多线程的线程管理的方法和装置
CN1848095A (zh) * 2004-12-29 2006-10-18 英特尔公司 在多核心/多线程处理器中高速缓存的公平共享
US20140201017A1 (en) * 2008-06-19 2014-07-17 Servicemesh, Inc. Systems and methods for providing repeated use of computing resources
CN102455943A (zh) * 2010-10-19 2012-05-16 上海聚力传媒技术有限公司 一种基于内存池来进行数据共享的方法和计算机设备
CN105446841A (zh) * 2015-11-24 2016-03-30 无锡江南计算技术研究所 缓存一致性测试方法
US20170371712A1 (en) * 2016-06-24 2017-12-28 International Business Machines Corporation Hierarchical process group management
CN108334396A (zh) * 2017-01-19 2018-07-27 阿里巴巴集团控股有限公司 一种数据处理方法和装置、资源组的创建方法和装置
CN108491278A (zh) * 2018-03-13 2018-09-04 网宿科技股份有限公司 一种处理业务数据的方法和网络设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
万虎;徐远超;孙凤芸;闫俊峰;: "面向大数据应用的众核处理器缓存结构设计" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532419A (zh) * 2020-09-25 2021-03-19 南京大学 一种数据中心多用户混合资源请求的部署方法
CN112769629A (zh) * 2021-02-26 2021-05-07 北京百度网讯科技有限公司 带宽分配方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110879748B (zh) 2023-06-13

Similar Documents

Publication Publication Date Title
US11704144B2 (en) Creating virtual machine groups based on request
CN109075988B (zh) 任务调度和资源发放系统和方法
US8695079B1 (en) Allocating shared resources
CN105183565A (zh) 计算机、服务质量控制方法及装置
CN108319496B (zh) 资源访问方法、业务服务器、分布式系统及存储介质
US9858117B2 (en) Method and system for scheduling input/output resources of a virtual machine
CN110069346B (zh) 多进程间资源共享方法、装置、电子设备
CN112000463B (zh) 一种基于cuda的gpu资源分配方法、系统、终端及存储介质
CN112463363B (zh) 一种资源编排方法、装置、设备及存储介质
US11915051B2 (en) Allocating resources for network function virtualization
CN103049328A (zh) 计算机系统中内存资源分配方法
WO2017000645A1 (zh) 一种分配宿主机资源的方法和装置
CN108073423A (zh) 一种加速器加载方法、系统和加速器加载装置
CN113674131A (zh) 硬件加速器设备管理方法、装置及电子设备和存储介质
Yousif et al. Clustering cloud workload traces to improve the performance of cloud data centers
CN110879748B (zh) 一种共享资源分配方法、装置和设备
CN105677481B (zh) 一种数据处理方法、系统及电子设备
CN112596669A (zh) 一种基于分布式存储的数据处理方法及装置
Caruana et al. gSched: a resource aware Hadoop scheduler for heterogeneous cloud computing environments
CN114860460B (zh) 一种数据库加速的方法、装置、计算机设备
US8689230B2 (en) Determination of running status of logical processor
WO2017133421A1 (zh) 一种多租户资源共享的方法及装置
CN110096355B (zh) 一种共享资源分配方法、装置和设备
CN115686746A (zh) 访问方法、任务处理方法、计算设备及计算机存储介质
WO2023012595A1 (en) Accessing topological mapping of cores

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