CN105988872A - 一种cpu资源分配的方法、装置及电子设备 - Google Patents

一种cpu资源分配的方法、装置及电子设备 Download PDF

Info

Publication number
CN105988872A
CN105988872A CN201510055803.1A CN201510055803A CN105988872A CN 105988872 A CN105988872 A CN 105988872A CN 201510055803 A CN201510055803 A CN 201510055803A CN 105988872 A CN105988872 A CN 105988872A
Authority
CN
China
Prior art keywords
cpu
process group
resource
preset time
time range
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
CN201510055803.1A
Other languages
English (en)
Other versions
CN105988872B (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 CN201510055803.1A priority Critical patent/CN105988872B/zh
Priority to TW104128806A priority patent/TW201629759A/zh
Priority to PCT/US2016/016457 priority patent/WO2016126880A1/en
Priority to EP16747236.4A priority patent/EP3254192A4/en
Priority to JP2017540825A priority patent/JP6725521B2/ja
Priority to KR1020177021601A priority patent/KR102514478B1/ko
Priority to US15/014,744 priority patent/US10089150B2/en
Publication of CN105988872A publication Critical patent/CN105988872A/zh
Application granted granted Critical
Publication of CN105988872B publication Critical patent/CN105988872B/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/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/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/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
    • 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/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种CPU资源分配的方法和装置以及一种电子设备。其中,所述CPU资源分配的方法用于多处理器设备,包括:获取所述多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述多处理器设备中各个CPU在所述预设时间范围内的空闲资源值;根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。采用本申请提供的方法,能够为每一个进程组动态分配CPU资源,使得CPU资源在多个进程组之间尽量平衡分配,有利于资源高效利用,从而达到改善系统整体性能的效果。

Description

一种CPU资源分配的方法、装置及电子设备
技术领域
本申请涉及计算机硬件领域,具体涉及一种CPU资源分配的方法和装置。本申请还具体涉及一种电子设备。
背景技术
服务器是网络中的重要设备,要接受少至几十人、多至成千上万人的访问,因此对服务器具有大数据量的快速吞吐、超强的稳定性、长时间运行等严格要求。面对超大运算量,部门级、企业级的服务器应支持CPU(Central ProcessingUnit,中央处理器)并行处理技术。并行处理是指一台服务器有多个CPU同时工作。并行处理能够大大提升服务器的数据处理能力。目前,许多高端服务器器都配备多个CPU。
一种典型的CPU并行处理技术应用场景,是在一台服务器上部署多个应用程序,多个应用程序能够同时运行。在一台部署多个应用程序的服务器中,每个应用程序对应一个进程组,该进程组可能包括一个或多个进程。多个进程组共享一台服务器中的硬件资源。在多个应用程序同时运行过程中,为防止进程组之间相互影响和产生性能抖动,需要将各个应用程序对应的进程组进行CPU资源隔离。在理想情况下,为每个进程组分配独占的CPU资源,能够保证进程组之间CPU资源隔离。然而,独占CPU资源的方法将导致部分CPU资源不能被充分利用,因此造成CPU资源浪费。
为了提高CPU资源利用率,通常将一个CPU分配给两个或更多的进程组使用,即某些CPU会被多个进程组共享,即:资源超配。资源超配能够使得CPU资源在隔离性与资源利用率上达到平衡。
现有技术在使用资源超配的方法为进程组分配CPU资源时,是将进程组绑定到固定的CPU集合上执行。由于不同的应用程序对于CPU的实际需求不同,并且同一个进程组在不同时间段对于CPU资源的需求也不同,因此,这种固定绑定的方法,可能导致某些CPU因为承载了多个忙碌的应用程序而满负载,而另外一些CPU负载较轻,即:各个CPU的利用率不均衡。多进程环境中CPU资源被多个进程组共享使用,当一个或多个CPU负载较重时,对应的应用程序的性能容易出现抖动。
因此,现有技术存在进程并发环境下各个CPU的利用率不均衡的问题。
发明内容
本申请提供一种CPU资源分配的方法和装置,以解决现有技术存在进程并发环境下各个CPU的利用率不均衡的问题。本申请另外提供一种电子设备。
本申请提供一种CPU资源分配的方法,用于多处理器设备,包括:
获取所述多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述多处理器设备中各个CPU在所述预设时间范围内的空闲资源值;
根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
可选的,所述进程组在预设时间范围内的CPU资源需求量,是指所述预设时间范围内所述进程组在每个CPU上的运行时间之和。
可选的,所述进程组在预设时间范围内的CPU资源需求量,采用如下步骤获取:
获取所述预设时间范围内所述进程组在每个CPU上的运行时间;
将所述预设时间范围内所述进程组在每个CPU上的运行时间求和,作为所述进程组在预设时间范围内的CPU资源需求量。
可选的,所述预设时间范围内所述进程组在每个CPU上的运行时间,采用如下方式获取:
读取cgroup目录下cpuacct.usage_per_cpu,获取预设时间范围内所述进程组在每个CPU上的运行时间。
可选的,所述CPU在预设时间范围内的空闲资源值,是指所述预设时间范围内的CPU空闲时间长度。
可选的,所述CPU在预设时间范围内的空闲资源值,采用如下步骤获取:
获取所述预设时间范围内所述CPU处于运行状态的时间;
将所述预设时间范围和所述预设时间范围内所述CPU处于运行状态的时间之差,作为所述CPU在所述预设时间范围内的空闲资源值。
可选的,通过性能监测工具,获取所述预设时间范围内所述CPU处于运行状态的时间;所述性能监测工具包括vmstat、ps或top。
可选的,所述根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器,包括:
根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,生成CPU资源分配方案;
配置所述CPU资源分配方案,将每一个进程组绑定到为其分配的处理器。
可选的,所述根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,生成CPU资源分配方案,包括:
根据所述各个进程组在预设时间范围内的CPU资源需求量,以所述进程组的CPU资源需求量的降序方式,对所述进程组排序,获得进程组序列;以及,根据所述各个CPU在所述预设时间范围内的空闲资源值,以所述CPU的空闲资源值的降序方式,对各个CPU进行排序,获得CPU序列;
将所述进程组序列中排在第一位的进程组作为当前进程组;
根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组;
根据所述当前进程组在每个CPU上的运行时间,更新被分配的CPU的空闲资源值;
重新根据各个CPU的空闲资源值,以所述CPU的空闲资源值的降序方式,更新所述CPU序列;
判断所述当前进程组是否是所述进程组序列的最后一个进程组;
若是,则所述CPU资源分配方案生成完毕;
若否,则根据所述进程组排序,重新确定所述当前进程组后一位的进程组为当前进程组;并返回所述根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组的步骤。
可选的,当预设的执行条件成立时,执行所述CPU资源分配的方法。
可选的,所述预设的执行条件,采用如下条件:
当前时间与上次执行所述CPU资源分配的方法的时间间隔大于预设的时间间隔。
可选的,所述预设的执行条件,采用如下条件:
各个CPU的CPU利用率的最大值大于预设阈值。
可选的,所述预设的执行条件,采用如下条件:
各个CPU的CPU利用率的最大值大于各个CPU的CPU利用率的最小值的N倍。
可选的,所述预设的执行条件,采用如下条件:
各个CPU的CPU利用率的最大值大于预设阈值;并且各个CPU的CPU利用率的最大值大于各个CPU的CPU利用率的最小值的N倍。
相应的,本申请还提供一种CPU资源分配的装置,包括:
获取单元,用于获取所述多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述多处理器设备中各个CPU在所述预设时间范围内的空闲资源值;
分配单元,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
可选的,所述获取单元包括:
第一获取子单元,用于获取所述各个进程组在预设时间范围内的CPU资源需求量;
所述第一获取子单元包括:
监测子单元,用于获取所述预设时间范围内所述各个进程组在每个CPU上的运行时间;
计算子单元,用于将所述预设时间范围内所述各个进程组在每个CPU上的运行时间以进程组为单位分别求和,作为所述各个进程组在预设时间范围内的CPU资源需求量。
可选的,所述获取单元包括:
第二获取子单元,用于获取所述各个CPU在预设时间范围内的空闲资源值;
所述第二获取子单元包括:
监测子单元,用于获取所述预设时间范围内所述各个CPU处于运行状态的时间;
计算子单元,用于将所述预设时间范围和所述预设时间范围内所述各个CPU处于运行状态的时间之差,作为所述各个CPU在所述预设时间范围内的空闲资源值。
可选的,所述分配单元包括:
生成子单元,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,生成CPU资源分配方案;
配置子单元,用于配置所述CPU资源分配方案,将每一个进程组绑定到为其分配的处理器。
可选的,所述生成子单元包括:
初始排序子单元,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以所述进程组的CPU资源需求量的降序方式,对所述进程组排序,获得进程组序列;以及,根据所述各个CPU在所述预设时间范围内的空闲资源值,以所述CPU的空闲资源值的降序方式,对各个CPU进行排序,获得CPU序列;
第一定位子单元,用于将所述进程组序列中排在第一位的进程组作为当前进程组;
分配子单元,用于根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组;
更新子单元,用于根据所述当前进程组在每个CPU上的运行时间,更新被分配的CPU的空闲资源值;
重新排序子单元,用于重新根据各个CPU的空闲资源值,以所述CPU的空闲资源值的降序方式,更新所述CPU序列;
判断子单元,用于判断所述当前进程组是否是所述进程组序列的最后一个进程组;
结束子单元,用于若上述判断结果为是,则所述CPU资源分配方案生成完毕;
第二定位子单元,用于若上述判断结果为否,则根据所述进程组排序,重新确定所述当前进程组后一位的进程组为当前进程组;并返回所述根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组的步骤。
可选的,所述装置还包括:
启动单元,用于当预设的执行条件成立时,执行所述CPU资源分配的方法。
此外,本申请还提供一种电子设备,所述电子设备包括:
存储器;以及
多个处理器,在所述多个处理器中运行多个进程组,所述进程组被所述多个处理器执行时,采用如下方式为各个进程组分配处理器资源:
获取所述电子设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述电子设备中各个CPU在所述预设时间范围内的空闲资源值;
根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
与现有技术相比,本申请具有以下优点:
本申请提供的CPU资源分配的方法、装置及电子设备,通过获取多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及各个CPU在预设时间范围内的空闲资源值;根据各个进程组在预设时间范围内的CPU资源需求量,以及各个CPU在预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。由于本申请提供的方法是根据各个进程组的CPU资源需求量和各个CPU的当前空闲资源值,为每一个进程组动态分配CPU资源,使得CPU资源在多个进程组之间尽量平衡分配,均衡了各个CPU的资源利用率,保证各个应用程序的性能表现,有利于资源高效利用,从而达到改善系统整体性能的效果。
附图说明
图1是本申请的CPU资源分配的方法实施例的流程图;
图2是本申请的CPU资源分配的方法实施例多处理器设备的示意图;
图3是本申请的CPU资源分配的方法实施例获取进程组在预设时间范围内的CPU资源需求量的具体流程图;
图4是本申请的CPU资源分配的方法实施例获取CPU在预设时间范围内的空闲资源值的具体流程图;
图5是本申请的CPU资源分配的方法实施例步骤S1031的具体流程图;
图6是本申请的CPU资源分配的装置实施例的示意图;
图7是本申请的CPU资源分配的装置实施例获取单元101的具体示意图;
图8是本申请的CPU资源分配的装置实施例分配单元103的具体示意图;
图9是本申请的CPU资源分配的装置实施例生成子单元1031的具体示意图;
图10是本申请的CPU资源分配的装置实施例的具体示意图;
图11是本申请的电子设备实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,提供了一种CPU资源分配的方法和装置,以及一种电子设备。在下面的实施例中逐一进行详细说明。
本申请提供的CPU资源分配的方法,是基于这样一种设计构思,即:对于在多处理器设备中运行的多个进程组,根据各个进程组在预设时间范围内的CPU资源需求量,以及各个CPU在预设时间范围内的当前空闲资源值,为每一个进程组分配其所需数量的处理器。由于本申请提供的方法是根据各个处理器的当前空闲资源,以及各个进程组的CPU资源需求量,为各个进程组分配处理器资源,因此本申请提供的方法是一种动态的CPU资源分配方法。
请参考图1,其为本申请的CPU资源分配的方法实施例的流程图。所述方法用于多处理器设备,包括如下步骤:
步骤S101:获取所述多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述多处理器设备中各个CPU在所述预设时间范围内的空闲资源值。
请参考图2,其为本申请的CPU资源分配的方法实施例多处理器设备的示意图。多处理器设备是指包含两台或多台功能相近的处理器,处理器之间彼此可以交换数据,所有处理器共享内存,I/O设备,控制器,及外部设备,整个硬件系统由统一的操作系统控制,在处理器和程序之间实现作业、任务、程序、数组及其元素各级的全面并行。采用多处理器设备,能够提高设备的可靠性及处理能力。
本申请实施例所述的多处理器设备包括但不限于具有多个处理器的计算机、PAD、iPad等终端设备,还包括具有多个处理器的移动通讯设备。以计算机为例,多处理器结构已成为各档计算机流行的设计方法,高档个人电脑采用2~4个处理器,大型机可使用多达数十个处理器,巨型计算机则可能采用上百甚至成千上万个处理器。
多处理器设备是专为并行处理技术设计的。并行处理是计算机系统中能同时执行两个或更多个处理器的一种计算方法。处理器可同时工作于同一程序的不同方面,例如:为了节省大型和复杂问题的解决时间,对同一程序进行并行化处理,也就是说将工作各部分分配到不同处理器中,经过并行化处理的同一程序的各个部分在运行过程中分别对应各自的进程。在多处理器设备中,一般将一组业务相关的进程分为一组,因此上述同一程序对应一个进程组。采用并行处理技术,使得一个在n个处理器上执行的程序速度可能会是在单一处理器上执行的速度的n倍。
相对于上述处理器可同时工作于同一程序的不同方面,处理器还可以同时工作于不同的程序,其中的每一个程序分别对应各自不同的进程组。可见,多处理器设备工作在一个进程并发的环境中,多个进程共享一个多处理器设备中的硬件资源。
本申请实施例所述的进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理器上顺序执行时所发生的活动。多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质,人们引入“进程”概念。
本申请实施例所述的进程组包括一个或多个进程,通常将一组业务相关的进程分为一组。由于多处理器设备可以同时工作于不同的程序,一个程序对应一个进程组,为了隔离各个程序,本申请实施例提供的CPU资源分配的方法是以进程组为单位进行CPU资源分配的,以达到不同程序之间CPU资源隔离的目的。
由于本申请提供的方法是根据多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及各个CPU在预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。因此,要实施本申请提供的方法,首先要获取多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及多处理器设备中各个CPU在预设时间范围内的空闲资源值两方面数据。
本申请实施例所述的进程组在预设时间范围内的CPU资源需求量,是指在预设时间范围内进程组在每个CPU上的运行时间之和。其中,预设时间范围是一个预先设置好的用于观察CPU运行状况的时间范围值。预设时间范围的取值与启动CPU资源分配方法的时间间隔有关,预设时间范围过小,则启动CPU资源分配方法的时间间隔可以越短;反之则越长。在实际应用中,可以根据具体的应用需求,设置时间范围值。
请参考图3,其为本申请的CPU资源分配的方法实施例获取进程组在预设时间范围内的CPU资源需求量的具体流程图。在本实施例中,获取进程组在预设时间范围内的CPU资源需求量,包括:
步骤S1011:获取所述预设时间范围内所述进程组在每个CPU上的运行时间。
要获取进程组在预设时间范围内的CPU资源需求量,首先需要获取预设时间范围内进程组在每个CPU上的运行时间数据。通过使用多处理器设备上运行的操作系统提供的监测工具,可以获得在预设时间范围内的各个进程组在每个CPU上的运行时间数据。以Linux操作系统为例,该系统默认情况下不提供直接获取各个进程组在每个CPU上的运行时间数据的工具,为此可以通过对Linux内核打补丁的方法来收集该数据。
在本实施例中,所述获取预设时间范围内所述进程组在每个CPU上的运行时间,采用如下方式:
读取cgroup目录下cpuacct.usage_per_cpu,获取预定时间范围内所述进程组在每个CPU上的运行时间数据。
cgroup是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(例如:cpu,memory,I/O等等)的机制。最初由google的工程师提出,后来被整合进Linux内核。cgroup也是LXC(LinuxContainer,Linux容器工具)为实现虚拟化所使用的资源管理手段,可以说没有cgroups就没有LXC。
步骤S1012:将所述预设时间范围内所述进程组在每个CPU上的运行时间求和,作为所述进程组在预设时间范围内的CPU资源需求量。
通过步骤S1011获取到预设时间范围内所述进程组在每个CPU上的运行时间后,将它们求和,就得到本申请实施例所述的进程组的CPU资源需求量。
本申请实施例所述的CPU在预设时间范围内的当前空闲资源值,是指预设时间范围内的CPU空闲时间长度。请参考图4,其为本申请的CPU资源分配的方法实施例获取CPU在预设时间范围内的空闲资源值的具体流程图。在本实施例中,获取CPU在预设时间范围内的当前空闲资源值,包括:
步骤S1011’:获取所述预设时间范围内所述CPU处于运行状态的时间。
Linux操作系统默认环境下提供了性能监测工具,通过性能监测工具,能够获取预设时间范围内的各个CPU处于运行状态的时间。常见的性能监测工具包括vmstat,ps和top等。其中,监测工具vmstat命令报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息。由vmstat命令生成的报告可以用于平衡系统负载活动。监测工具ps和top命令是系统分析最常用的基本命令,ps命令提供了一个正在运行的进程的列表,列出进程的数量取决于命令所附加的参数。例如:ps–A命令列出所有进程和它们相应的进程ID(PID),进程的PID是使用其他一些工具之前所必须了解的,例如pmap或者renice。
步骤S1012’:将所述预设时间范围和所述预设时间范围内所述CPU处于运行状态的时间之差,作为所述CPU在所述预设时间范围内的空闲资源值。
在本实施例中,计算CPU在所述预设时间范围内的空闲资源值,采用如下计算公式:T2j=T–T1j,其中T为预设时间范围,T1j为处理器Pj在预设时间范围T内处于运行状态的时间,T2j为处理器Pj在预设时间范围T内的空闲资源值。
通过上述步骤获取到多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及多处理器设备中各个CPU在预设时间范围内的空闲资源值两方面数据后,就可以继续执行步骤S103,为每一个进程组分配其所需数量的处理器。
步骤S103:根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
本申请实施例提供的CPU资源分配方法是一个CPU资源的动态分配方法。在实际应用中,可以采用两种具体实施方式实施本申请实施例提供的方法,分别为:方式一、首先生成一个包括所有进程组的CPU资源分配的整体方案,然后再统一配置该方案;方式二、为一个进程组分配CPU资源后,立即通过配置工具将该进程组绑定到为其所分配的CPU,然后再对其它进程组做同样的处理,即:分配一个就配置一个。上述两种不同的方式只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
在本实施例中,采用上述方式一将每一个进程组绑定到为其分配的处理器。步骤S103具体包括:
步骤S1031:根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,生成CPU资源分配方案。
根据各个进程组在预设时间范围内的CPU资源需求量,以及各个CPU在预设时间范围内的空闲资源值,生成CPU资源分配方案,可以采用多种具体实施方式。不同的实施方式将得到不同的CPU资源分配方案。各种不同的方式都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
不同的CPU资源分配方案对CPU资源的动态均衡效果不同。评估一种CPU资源分配方案的动态均衡效果可以采用多种指标,包括均方差等指标。理论上,一个绝对均衡的CPU资源分配方案应该满足两个条件:1)满足各个进程组的实际CPU资源需求量;2)各个CPU的利用率相互之间最接近,只有满足上述两个条件的CPU资源分配方案才是一个最佳方案。下面以均方差指标为例,用均方差来代表各个CPU利用率的均衡度,说明一个CPU资源分配方案的动态均衡效果。
均方差公式为:其中n为CPU数量,Vi=Ti/T,Ti为第i个CPU在预设时间范围T内处于运行状态的时间,Vi为第i个CPU在预设时间范围T内的CPU利用率, 为n个CPU的CPU利用率的均值,mse为均方差。
理论上,在各种CPU资源分配方案中存在一种方案,该方案对应的上述均方差值最小,记为msemin,msemin所对应的CPU分配方案为最优解,即:满足上述两个条件。在实际应用中,出于效率的考虑,不可能遍历所有的CPU资源分配方案,本实施例提供一种具体实施方式可以得到一个近似最佳的CPU资源分配方案。
请参考图5,其为本申请的CPU资源分配的方法实施例步骤S1031的具体流程图。步骤S1031包括:
步骤S10311:根据所述各个进程组在预设时间范围内的CPU资源需求量,以所述进程组的CPU资源需求量的降序方式,对所述进程组排序,获得进程组序列;以及,根据所述各个CPU在所述预设时间范围内的空闲资源值,以所述CPU的空闲资源值的降序方式,对各个CPU进行排序,获得CPU序列。
本申请实施例提供的CPU资源分配的方法,作为一种动态资源分配方法,基于这样一种设计构思,即:对于在多处理器设备中运行的多个进程组,按照各个进程组在预设时间范围内的CPU资源需求量的从大到小的顺序,为每一个进程组分配其所需数量的处理器。在具体为一个进程组分配CPU资源时,按照各个CPU在预设时间范围内的空闲资源值的从大到小的顺序,为一个进程组分配其所需数量的处理器。因此,要实施本申请实施例提供的方法,首先要获得:1)以进程组的CPU资源需求量的降序方式,排序后的进程组序列;2)以CPU的空闲资源值的降序方式,排序后的CPU序列。
通过步骤S10311获取到排序后的进程组序列和CPU序列后,就可以继续执行后续步骤,为每一个进程组分配其所需数量的处理器。
步骤S10312:将所述进程组序列中排在第一位的进程组作为当前进程组。
步骤S10313:根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组。
在具体为一个进程组分配CPU资源时,按照各个CPU的空闲资源值的从大到小的顺序,为一个进程组分配其所需数量的处理器。
步骤S10314:根据所述当前进程组在每个CPU上的运行时间,更新被分配的CPU的空闲资源值。
为当前进程组分配了CPU资源,因此被分配给当前进程组的CPU的当前空闲资源值发生了变化,需要根据当前进程组在每个CPU上的运行时间数据,更新被分配的CPU的空闲资源值。其中,获取当前进程组在每个CPU上的运行时间数据在步骤S1011中已经进行了详细说明,此处不再赘述。
步骤S10315:重新根据各个CPU的空闲资源值,以所述CPU的空闲资源值的降序方式,更新所述CPU序列。
为当前进程组分配了CPU资源后,还需要继续为进程组序列中排在当前进程组后的下一个进程组分配CPU资源。因此,首先需要根据步骤S10314更新的被分配的CPU的空闲资源值,以及其他CPU的空闲资源值,重新对各个CPU进行排序,更新CPU序列,以便总能够将最空闲的CPU分配给进程组。
步骤S10316:判断所述当前进程组是否是所述进程组序列的最后一个进程组。
在为进程组序列中排在当前进程组后的下一个进程组分配CPU资源前,首先要判断当前进程组是否是进程组序列的最后一个进程组,如果是,则进入步骤S10317,CPU资源分配方案生成完毕;否则,进入步骤S10318,确定要处理的下一个进程组,并返回到步骤S10313,为下一个进程组分配CPU资源。
步骤S10317:若是,则所述CPU资源分配方案生成完毕;
步骤S10318:若否,则根据所述进程组排序,重新确定所述当前进程组后一位的进程组为当前进程组;并返回所述根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组的步骤。
通过上述步骤S10311至S10318生成CPU资源分配方案后,就可以进入步骤S1032配置该方案。
步骤S1032:配置所述CPU资源分配方案,将每一个进程组绑定到为其分配的处理器。
在通过步骤S1031生成CPU资源分配方案后,还需要根据CPU资源分配方案,将各个进程组和为其分配的CPU进行绑定操作。在Linux操作系统中,将进程和CPU绑定的方法包括taskset命令和cgroup功能的cpuset的子系统,还包括nice和renice等命令。其中,使用taskset命令启用进程时可以指定执行进程的CPU,例如:$taskset-C<cpunr><command>。使用cgroup的cpuset子系统可以指定执行进程的CPU编号,例如:#echo 0,2,4,6>/cgroup/<进程组名>/cpuset.cpus,表示该进程组只允许使用编号为0,2,4,6的CPU。
在本实施例中,CPU资源分配方案包括每一个进程组和为其分配的CPU资源之间的对应关系。根据CPU资源分配方案,逐个为每一个进程组和为其分配的CPU资源进行绑定,完成整个方案的配置处理。
上述实施例为采用方式一的具体实现过程,方式二是每为一个进程组分配CPU资源后,立即通过配置工具将该进程组绑定到为其所分配的CPU,然后再对其它进程组做同样的处理。方式二与方式一的区别仅在于将该进程组绑定到为其所分配的CPU的时间不同,因此对方式二与方式一的相同之处不再赘述,详见方式一的实施例的相关部分。
由于本申请实施例提供的CPU资源分配方法是动态分配方法,考虑到各个程序运行中的动态性特点,因此在多处理器设备运行过程中,需要预先设定启动执行本申请提供的方法的条件。当预设的执行条件成立时,执行所述CPU资源分配的方法。执行条件可以采用多种具体条件,本实施例给出四种可选的执行条件。
执行条件一:当前时间与上次执行所述CPU资源分配的方法的时间间隔大于预设的时间间隔。
采用执行条件一,设定每隔固定时间间隔执行一次本申请实施例提供的方法,使得多处理器设备一直处于各个CPU资源较为均衡的状态。在实际应用中,通常将预设的时间间隔设定为分钟级的时间,通常将时间间隔设定在1至5分钟之间。
执行条件二:各个CPU的CPU利用率的最大值大于预设阈值。
采用执行条件二,判断各个CPU的CPU利用率的最大值是否大于预设阈值;若上述判断结果为是,则所述预设的执行条件成立。执行条件二为不固定期启动执行本申请实施例提供的方法,为了避免不必要的CPU资源均衡动作,同时还要保证执行条件具有一定的敏感度,因此需要将预设阈值设定一个适当的值。
本申请实施例所述的预设阈值是经过大量试验后确定的一个经验值。预设阈值用来表示当一个CPU的利用率超过某个上限时,说明该CPU已经或接近满负荷运行,应该进行CPU资源均衡操作。通常,对于开启了超线程的多处理器设备,预设阈值设置为60%左右;对于未开启超线程的多处理器设备,预设阈值设置为80%左右。
执行条件三:各个CPU的CPU利用率的最大值大于各个CPU的CPU利用率的最小值的N倍。
采用执行条件三,判断各个CPU的CPU利用率的最大值是否大于各个CPU的CPU利用率的最小值的N倍;若上述判断结果为是,则所述预设的执行条件成立。
执行条件四:各个CPU的CPU利用率的最大值大于预设阈值;并且各个CPU的CPU利用率的最大值大于各个CPU的CPU利用率的最小值的N倍。
执行条件四综合考虑了上述执行条件二和执行条件三,只有两个条件同时满足时,才执行本申请提供的CPU资源配置方法。
在实际应用中,根据具体需求选择采用上述执行条件之一。执行条件一是固定时间间隔启动执行本申请实施例提供的方法;执行条件二至四均为根据多处理器设备具体运行状况,不固定期启动执行本申请实施例提供的方法,即:允许出现CPU资源不均衡的状态。设置该执行条件二至四的理论依据是:如果没有CPU处于满负载的现象,各个程序的CPU资源需求量也均能够得到满足,则程序的性能表现能够得到保证,因此无需进行CPU资源均衡操作。
在本实施例中,采用执行条件四,控制启动执行本申请实施例提供的方法,进行CPU资源均衡操作。具体情况为:假设在被多个进程组共享的CPU中,CPU利用率最大值为x,CPU利用率最小值为y;当x大于预设阈值,并且x与y的关系满足x>ny时,则执行本申请实施例提供的方法。在本实施例中,将n设置为2,即:当CPU利用率最大值大于两倍的CPU利用率最小值时,则判定当前CPU资源配置不均衡。
在上述的实施例中,提供了一种CPU资源分配的方法,与之相对应的,本申请还提供一种CPU资源分配的装置。该装置是与上述CPU资源分配的方法的实施例相对应。
请参看图6,其为本申请的CPU资源分配的装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种CPU资源分配的装置,包括:
获取单元101,用于获取所述多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述多处理器设备中各个CPU在所述预设时间范围内的空闲资源值;
分配单元103,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
请参看图7,其为本申请的CPU资源分配的装置实施例获取单元101的具体示意图。可选的,所述获取单元101包括:
第一获取子单元1011,用于获取所述各个进程组在预设时间范围内的CPU资源需求量;
所述第一获取子单元1011包括:
监测子单元10111,用于获取所述预设时间范围内所述各个进程组在每个CPU上的运行时间;
计算子单元10112,用于将所述预设时间范围内所述各个进程组在每个CPU上的运行时间以进程组为单位分别求和,作为所述各个进程组在预设时间范围内的CPU资源需求量。
可选的,所述获取单元101包括:
第二获取子单元1012,用于获取所述各个CPU在预设时间范围内的空闲资源值;
所述第二获取子单元1012包括:
监测子单元10121,用于获取所述预设时间范围内所述各个CPU处于运行状态的时间;
计算子单元10122,用于将所述预设时间范围和所述预设时间范围内所述各个CPU处于运行状态的时间之差,作为所述各个CPU在所述预设时间范围内的空闲资源值。
请参看图8,其为本申请的CPU资源分配的装置实施例分配单元103的具体示意图。可选的,所述分配单元103包括:
生成子单元1031,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,生成CPU资源分配方案;
配置子单元1032,用于配置所述CPU资源分配方案,将每一个进程组绑定到为其分配的处理器。
请参看图9,其为本申请的CPU资源分配的装置实施例生成子单元1031的具体示意图。可选的,
所述生成子单元1031包括:
初始排序子单元10311,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以所述进程组的CPU资源需求量的降序方式,对所述进程组排序,获得进程组序列;以及,根据所述各个CPU在所述预设时间范围内的空闲资源值,以所述CPU的空闲资源值的降序方式,对各个CPU进行排序,获得CPU序列;
第一定位子单元10312,用于将所述进程组序列中排在第一位的进程组作为当前进程组;
分配子单元10313,用于根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组;
更新子单元10314,用于根据所述当前进程组在每个CPU上的运行时间,更新被分配的CPU的空闲资源值;
重新排序子单元10315,用于重新根据各个CPU的空闲资源值,以所述CPU的空闲资源值的降序方式,更新所述CPU序列;
判断子单元10316,用于判断所述当前进程组是否是所述进程组序列的最后一个进程组;
结束子单元10317,用于若上述判断结果为是,则所述CPU资源分配方案生成完毕;
第二定位子单元10318,用于若上述判断结果为否,则根据所述进程组排序,重新确定所述当前进程组后一位的进程组为当前进程组;并返回所述根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组的步骤。
请参看图10,其为本申请的CPU资源分配的装置实施例的具体示意图。可选的,所述装置还包括:
所述装置还包括:
启动单元201,用于当预设的执行条件成立时,执行所述CPU资源分配的方法。
本申请还提供一种电子设备,请参看图11,其为本申请的电子设备实施例的示意图。本申请提供的电子设备包括:
存储器301;以及
多个处理器302,在所述多个处理器302中运行多个进程组,所述进程组被所述多个处理器302执行时,采用如下方式为各个进程组分配处理器资源:
获取所述电子设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述电子设备中各个CPU在所述预设时间范围内的空闲资源值;
根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
本申请提供的CPU资源分配的方法、装置及电子设备,通过获取多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及各个CPU在预设时间范围内的空闲资源值;根据各个进程组在预设时间范围内的CPU资源需求量,以及各个CPU在预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。由于本申请提供的方法是根据各个进程组的CPU资源需求量和各个CPU的当前空闲资源值,为每一个进程组动态分配CPU资源,使得CPU资源在多个进程组之间尽量平衡分配,均衡了各个CPU的资源利用率,保证各个应用程序的性能表现,有利于资源高效利用,从而达到改善系统整体性能的效果。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (21)

1.一种CPU资源分配的方法,用于多处理器设备,其特征在于,包括:
获取所述多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述多处理器设备中各个CPU在所述预设时间范围内的空闲资源值;
根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
2.根据权利要求1所述的CPU资源分配的方法,其特征在于,所述进程组在预设时间范围内的CPU资源需求量,是指所述预设时间范围内所述进程组在每个CPU上的运行时间之和。
3.根据权利要求2所述的CPU资源分配的方法,其特征在于,所述进程组在预设时间范围内的CPU资源需求量,采用如下步骤获取:
获取所述预设时间范围内所述进程组在每个CPU上的运行时间;
将所述预设时间范围内所述进程组在每个CPU上的运行时间求和,作为所述进程组在预设时间范围内的CPU资源需求量。
4.根据权利要求3所述的CPU资源分配的方法,其特征在于,所述预设时间范围内所述进程组在每个CPU上的运行时间,采用如下方式获取:
读取cgroup目录下cpuacct.usage_per_cpu,获取预设时间范围内所述进程组在每个CPU上的运行时间。
5.根据权利要求1所述的CPU资源分配的方法,其特征在于,所述CPU在预设时间范围内的空闲资源值,是指所述预设时间范围内的CPU空闲时间长度。
6.根据权利要求5所述的CPU资源分配的方法,其特征在于,所述CPU在预设时间范围内的空闲资源值,采用如下步骤获取:
获取所述预设时间范围内所述CPU处于运行状态的时间;
将所述预设时间范围和所述预设时间范围内所述CPU处于运行状态的时间之差,作为所述CPU在所述预设时间范围内的空闲资源值。
7.根据权利要求6所述的CPU资源分配的方法,其特征在于,通过性能监测工具,获取所述预设时间范围内所述CPU处于运行状态的时间;所述性能监测工具包括vmstat、ps或top。
8.根据权利要求1所述的CPU资源分配的方法,其特征在于,所述根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器,包括:
根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,生成CPU资源分配方案;
配置所述CPU资源分配方案,将每一个进程组绑定到为其分配的处理器。
9.根据权利要求8所述的CPU资源分配的方法,其特征在于,所述根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,生成CPU资源分配方案,包括:
根据所述各个进程组在预设时间范围内的CPU资源需求量,以所述进程组的CPU资源需求量的降序方式,对所述进程组排序,获得进程组序列;以及,根据所述各个CPU在所述预设时间范围内的空闲资源值,以所述CPU的空闲资源值的降序方式,对各个CPU进行排序,获得CPU序列;
将所述进程组序列中排在第一位的进程组作为当前进程组;
根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组;
根据所述当前进程组在每个CPU上的运行时间,更新被分配的CPU的空闲资源值;
重新根据各个CPU的空闲资源值,以所述CPU的空闲资源值的降序方式,更新所述CPU序列;
判断所述当前进程组是否是所述进程组序列的最后一个进程组;
若是,则所述CPU资源分配方案生成完毕;
若否,则根据所述进程组排序,重新确定所述当前进程组后一位的进程组为当前进程组;并返回所述根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组的步骤。
10.根据权利要求1-9任一项所述的CPU资源分配的方法,其特征在于,当预设的执行条件成立时,执行所述CPU资源分配的方法。
11.根据权利要10所述的CPU资源分配的方法,其特征在于,所述预设的执行条件,采用如下条件:
当前时间与上次执行所述CPU资源分配的方法的时间间隔大于预设的时间间隔。
12.根据权利要求10所述的CPU资源分配的方法,其特征在于,所述预设的执行条件,采用如下条件:
各个CPU的CPU利用率的最大值大于预设阈值。
13.根据权利要求10所述的CPU资源分配的方法,其特征在于,所述预设的执行条件,采用如下条件:
各个CPU的CPU利用率的最大值大于各个CPU的CPU利用率的最小值的N倍。
14.根据权利要求10所述的CPU资源分配的方法,其特征在于,所述预设的执行条件,采用如下条件:
各个CPU的CPU利用率的最大值大于预设阈值;并且各个CPU的CPU利用率的最大值大于各个CPU的CPU利用率的最小值的N倍。
15.一种CPU资源分配的装置,其特征在于,包括:
获取单元,用于获取所述多处理器设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述多处理器设备中各个CPU在所述预设时间范围内的空闲资源值;
分配单元,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
16.根据权利要求15所述的CPU资源分配的装置,其特征在于,所述获取单元包括:
第一获取子单元,用于获取所述各个进程组在预设时间范围内的CPU资源需求量;
所述第一获取子单元包括:
监测子单元,用于获取所述预设时间范围内所述各个进程组在每个CPU上的运行时间;
计算子单元,用于将所述预设时间范围内所述各个进程组在每个CPU上的运行时间以进程组为单位分别求和,作为所述各个进程组在预设时间范围内的CPU资源需求量。
17.根据权利要求15所述的CPU资源分配的装置,其特征在于,所述获取单元包括:
第二获取子单元,用于获取所述各个CPU在预设时间范围内的空闲资源值;
所述第二获取子单元包括:
监测子单元,用于获取所述预设时间范围内所述各个CPU处于运行状态的时间;
计算子单元,用于将所述预设时间范围和所述预设时间范围内所述各个CPU处于运行状态的时间之差,作为所述各个CPU在所述预设时间范围内的空闲资源值。
18.根据权利要求15所述的CPU资源分配的装置,其特征在于,所述分配单元包括:
生成子单元,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,生成CPU资源分配方案;
配置子单元,用于配置所述CPU资源分配方案,将每一个进程组绑定到为其分配的处理器。
19.根据权利要求18所述的CPU资源分配的装置,其特征在于,所述生成子单元包括:
初始排序子单元,用于根据所述各个进程组在预设时间范围内的CPU资源需求量,以所述进程组的CPU资源需求量的降序方式,对所述进程组排序,获得进程组序列;以及,根据所述各个CPU在所述预设时间范围内的空闲资源值,以所述CPU的空闲资源值的降序方式,对各个CPU进行排序,获得CPU序列;
第一定位子单元,用于将所述进程组序列中排在第一位的进程组作为当前进程组;
分配子单元,用于根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组;
更新子单元,用于根据所述当前进程组在每个CPU上的运行时间,更新被分配的CPU的空闲资源值;
重新排序子单元,用于重新根据各个CPU的空闲资源值,以所述CPU的空闲资源值的降序方式,更新所述CPU序列;
判断子单元,用于判断所述当前进程组是否是所述进程组序列的最后一个进程组;
结束子单元,用于若上述判断结果为是,则所述CPU资源分配方案生成完毕;
第二定位子单元,用于若上述判断结果为否,则根据所述进程组排序,重新确定所述当前进程组后一位的进程组为当前进程组;并返回所述根据所述当前进程组需要的CPU数量,在所述CPU序列中,从排在第一位的CPU开始,依次选取所述当前进程组所需数量的CPU,并将被选取的CPU分配给所述当前进程组的步骤。
20.根据权利要求15-19任一项所述的CPU资源分配的装置,其特征在于,所述装置还包括:
启动单元,用于当预设的执行条件成立时,执行所述CPU资源分配的方法。
21.一种电子设备,其特征在于,所述电子设备包括:
存储器;以及
多个处理器,在所述多个处理器中运行多个进程组,所述进程组被所述多个处理器执行时,采用如下方式为各个进程组分配处理器资源:
获取所述电子设备中运行的各个进程组在预设时间范围内的CPU资源需求量,以及所述电子设备中各个CPU在所述预设时间范围内的空闲资源值;
根据所述各个进程组在预设时间范围内的CPU资源需求量,以及所述各个CPU在所述预设时间范围内的空闲资源值,为每一个进程组分配其所需数量的处理器。
CN201510055803.1A 2015-02-03 2015-02-03 一种cpu资源分配的方法、装置及电子设备 Active CN105988872B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201510055803.1A CN105988872B (zh) 2015-02-03 2015-02-03 一种cpu资源分配的方法、装置及电子设备
TW104128806A TW201629759A (zh) 2015-02-03 2015-09-01 一種cpu資源分配的方法、裝置及電子設備
EP16747236.4A EP3254192A4 (en) 2015-02-03 2016-02-03 Apparatus, device and method for allocating cpu resources
JP2017540825A JP6725521B2 (ja) 2015-02-03 2016-02-03 Cpuリソースを割り当てる装置、デバイス及び方法
PCT/US2016/016457 WO2016126880A1 (en) 2015-02-03 2016-02-03 Apparatus, device and method for allocating cpu resources
KR1020177021601A KR102514478B1 (ko) 2015-02-03 2016-02-03 Cpu 리소스들을 할당하기 위한 장치, 디바이스 및 방법
US15/014,744 US10089150B2 (en) 2015-02-03 2016-02-03 Apparatus, device and method for allocating CPU resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510055803.1A CN105988872B (zh) 2015-02-03 2015-02-03 一种cpu资源分配的方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN105988872A true CN105988872A (zh) 2016-10-05
CN105988872B CN105988872B (zh) 2020-02-18

Family

ID=56554319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510055803.1A Active CN105988872B (zh) 2015-02-03 2015-02-03 一种cpu资源分配的方法、装置及电子设备

Country Status (7)

Country Link
US (1) US10089150B2 (zh)
EP (1) EP3254192A4 (zh)
JP (1) JP6725521B2 (zh)
KR (1) KR102514478B1 (zh)
CN (1) CN105988872B (zh)
TW (1) TW201629759A (zh)
WO (1) WO2016126880A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775975A (zh) * 2016-12-08 2017-05-31 青岛海信移动通信技术股份有限公司 进程调度方法及装置
CN107436838A (zh) * 2017-07-12 2017-12-05 北京潘达互娱科技有限公司 一种内核数据统计方法与装置
CN107479976A (zh) * 2017-08-14 2017-12-15 郑州云海信息技术有限公司 一种多程序实例同时运行下cpu资源分配方法及装置
CN109936627A (zh) * 2019-02-21 2019-06-25 山东浪潮云信息技术有限公司 一种基于hadoop的自动数据均衡方法及工具
WO2019144788A1 (zh) * 2018-01-24 2019-08-01 中兴通讯股份有限公司 资源控制方法、装置及设备、计算机可读存储介质
CN110928649A (zh) * 2018-09-19 2020-03-27 北京国双科技有限公司 资源调度的方法和装置
WO2020108337A1 (zh) * 2018-11-29 2020-06-04 中兴通讯股份有限公司 一种cpu资源调度方法及电子设备
CN111708633A (zh) * 2020-05-28 2020-09-25 北京赛博云睿智能科技有限公司 一种资源动态调整方法及系统
CN112114958A (zh) * 2019-06-21 2020-12-22 上海哔哩哔哩科技有限公司 资源隔离方法、分布式平台、计算机设备和存储介质
CN113535378A (zh) * 2020-04-20 2021-10-22 深圳Tcl数字技术有限公司 一种资源调配方法、存储介质及终端设备
CN113825240A (zh) * 2021-09-15 2021-12-21 阿里巴巴达摩院(杭州)科技有限公司 资源分配方法及基站设备
CN114706671A (zh) * 2022-05-17 2022-07-05 中诚华隆计算机技术有限公司 一种多处理器调度优化方法与系统

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535382A (zh) * 2016-12-23 2021-10-22 创新先进技术有限公司 资源处理方法及装置
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
US11042398B2 (en) 2018-07-09 2021-06-22 Samsung Electronics Co., Ltd. System and method for guest operating system using containers
CN113407317A (zh) * 2018-09-11 2021-09-17 华为技术有限公司 一种资源调度方法及装置
CN110032407B (zh) * 2019-03-08 2020-12-22 创新先进技术有限公司 提升cpu并行性能的方法及装置和电子设备
CN111031140A (zh) * 2019-12-20 2020-04-17 支付宝(杭州)信息技术有限公司 资源结算方法及装置、电子设备、存储介质
CN112039963B (zh) * 2020-08-21 2023-04-07 广州虎牙科技有限公司 一种处理器的绑定方法、装置、计算机设备和存储介质
CN113485730A (zh) * 2021-06-28 2021-10-08 北京金茂绿建科技有限公司 升级方法以及计算机可读存储介质
WO2024100797A1 (ja) * 2022-11-09 2024-05-16 日本電信電話株式会社 リソース制御装置、リソース制御方法及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163512A1 (en) * 2002-02-28 2003-08-28 Fujitsu Limited Parallel-process execution method and multiprocessor-type computer
TW200917129A (en) * 2007-06-25 2009-04-16 Ibm Scheduling tasks across multiple processor units of differing capacity
US20130151879A1 (en) * 2009-12-16 2013-06-13 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
CN103164283A (zh) * 2012-05-10 2013-06-19 上海兆民云计算科技有限公司 一种虚拟桌面系统中虚拟化资源动态调度管理方法及系统
US20140173620A1 (en) * 2011-08-29 2014-06-19 Huawei Technologies Co., Ltd. Resource allocation method and resource management platform

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4354227A (en) 1979-11-19 1982-10-12 International Business Machines Corp. Fixed resource allocation method and apparatus for multiprocessor systems having complementarily phased cycles
US4847755A (en) 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US5325525A (en) 1991-04-04 1994-06-28 Hewlett-Packard Company Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
US5787453A (en) 1995-10-24 1998-07-28 Peoplesoft, Inc. Interactive formula processing system for SQL data base
JP3188862B2 (ja) * 1997-12-24 2001-07-16 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 消費電力解析方法及び装置
US6360263B1 (en) 1998-02-25 2002-03-19 International Business Machines Corporation Dynamic resource allocation for user management in multi-processor time shared computer systems
US6389331B1 (en) * 1999-03-11 2002-05-14 Johnson Controls Technology Company Technique for monitoring performance of a facility management system
US6460122B1 (en) 1999-03-31 2002-10-01 International Business Machine Corporation System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment
US6957432B2 (en) 2000-03-21 2005-10-18 Microsoft Corporation Real-time scheduler
US7024509B2 (en) 2000-08-31 2006-04-04 Hewlett-Packard Development Company, L.P. Passive release avoidance technique
US6915516B1 (en) * 2000-09-29 2005-07-05 Emc Corporation Apparatus and method for process dispatching between individual processors of a multi-processor system
US7403952B2 (en) 2000-12-28 2008-07-22 International Business Machines Corporation Numa system resource descriptors including performance characteristics
US7036123B2 (en) 2001-04-25 2006-04-25 Sun Microsystems, Inc. System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group
US7594229B2 (en) 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
US7152124B1 (en) 2002-02-11 2006-12-19 Extreme Networks Method and system for maintaining temporal consistency of resources and data in a multiple-processor packet switch
US7194385B2 (en) * 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US7007183B2 (en) 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US8230426B2 (en) 2004-10-06 2012-07-24 Digipede Technologies, Llc Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
EP1859350B1 (en) 2005-03-16 2015-06-24 BRITISH TELECOMMUNICATIONS public limited company Monitoring computer-controlled processes
EP1862904A4 (en) * 2005-03-22 2009-06-03 Fujitsu Ltd DISTRIBUTED PROCESS MANAGEMENT DEVICE, DISTRIBUTED PROCESS MANAGEMENT METHOD, AND DISTRIBUTED PROCESS MANAGEMENT PROGRAM
US7904912B2 (en) * 2005-08-30 2011-03-08 International Business Machines Corporation Adaptive processor utilization reporting handling different processor frequencies
US20070177195A1 (en) 2005-10-31 2007-08-02 Treber Rebert Queue processor for document servers
JP2007156976A (ja) * 2005-12-07 2007-06-21 Hitachi Kokusai Electric Inc 情報処理システム
JP4977375B2 (ja) 2006-02-15 2012-07-18 Necエナジーデバイス株式会社 リチウムイオン電池およびそれを用いた組電池
JP4523921B2 (ja) * 2006-02-24 2010-08-11 三菱電機株式会社 計算機リソース動的制御装置
US8261277B2 (en) 2006-04-10 2012-09-04 General Electric Company System and method for dynamic allocation of resources in a computing grid
US8112527B2 (en) 2006-05-24 2012-02-07 Nec Corporation Virtual machine management apparatus, and virtual machine management method and program
US8838940B2 (en) * 2006-06-07 2014-09-16 Azul Systems, Inc. CPU utilization metering on systems that include multiple hardware threads per core
JP4370313B2 (ja) * 2006-07-10 2009-11-25 三菱電機株式会社 制御装置、制御装置のプロセス制御方法およびプロセス制御プログラム
US7941805B2 (en) * 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
US8667500B1 (en) 2006-10-17 2014-03-04 Vmware, Inc. Use of dynamic entitlement and adaptive threshold for cluster process balancing
US8326970B2 (en) 2007-11-05 2012-12-04 Hewlett-Packard Development Company, L.P. System and method for modeling a session-based system with a transaction-based analytic model
US8645965B2 (en) 2007-12-31 2014-02-04 Intel Corporation Supporting metered clients with manycore through time-limited partitioning
US8175863B1 (en) 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US8392924B2 (en) * 2008-04-03 2013-03-05 Sharp Laboratories Of America, Inc. Custom scheduling and control of a multifunction printer
KR20090108868A (ko) 2008-04-14 2009-10-19 삼성전자주식회사 가상 머신 관리 시스템 및 그의 프로세서 자원 관리방법
US7987075B2 (en) * 2008-06-30 2011-07-26 Hitachi, Ltd Apparatus and method to develop multi-core microcomputer-based systems
US8127160B2 (en) * 2008-10-13 2012-02-28 International Business Machines Corporation Dynamic frequency and voltage scaling for a computer processor
KR101543326B1 (ko) * 2009-01-05 2015-08-10 삼성전자주식회사 시스템 온 칩 및 그 구동 방법
JP5377093B2 (ja) * 2009-06-08 2013-12-25 三菱電機株式会社 計算機システム、計算機リソース制御方法および計算機リソース制御プログラム
US8276142B2 (en) * 2009-10-09 2012-09-25 Intel Corporation Hardware support for thread scheduling on multi-core processors
US8914469B2 (en) 2009-12-11 2014-12-16 International Business Machines Corporation Negotiating agreements within a cloud computing environment
US9104411B2 (en) * 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9081501B2 (en) 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
JP5465105B2 (ja) * 2010-06-21 2014-04-09 三菱電機株式会社 計算機システム及びコンピュータプログラム及びパイプライン処理方法
JP5572527B2 (ja) 2010-11-09 2014-08-13 パナソニック株式会社 通信処理装置及び通信処理方法
US9804893B2 (en) 2011-04-08 2017-10-31 Qualcomm Incorporated Method and apparatus for optimized execution using resource utilization maps
US8683466B2 (en) 2011-05-24 2014-03-25 Vmware, Inc. System and method for generating a virtual desktop
US9086883B2 (en) * 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
US8881164B2 (en) 2011-10-18 2014-11-04 Hewlett-Packard Development Company, L.P. Computer process with utilization reduction
WO2013132767A1 (ja) * 2012-03-09 2013-09-12 パナソニック株式会社 プロセッサ、マルチプロセッサシステム、コンパイラ、ソフトウェアシステム、メモリ制御システムおよびコンピュータシステム
KR101834195B1 (ko) * 2012-03-15 2018-04-13 삼성전자주식회사 다중코어 시스템 및 로드 밸런싱 방법
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
CN102866921B (zh) 2012-08-29 2016-05-11 惠州Tcl移动通信有限公司 一种多核cpu的调控方法及系统
US9116703B2 (en) * 2012-10-15 2015-08-25 Advanced Micro Devices, Inc. Semi-static power and performance optimization of data centers
US9052932B2 (en) 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US9195506B2 (en) 2012-12-21 2015-11-24 International Business Machines Corporation Processor provisioning by a middleware processing system for a plurality of logical processor partitions
US20150309503A1 (en) * 2013-01-09 2015-10-29 Mitsubishi Electric Corporation Plant engineering system
US9785460B2 (en) * 2013-05-03 2017-10-10 Vmware, Inc. Dynamic virtual machine sizing
US9342374B2 (en) * 2013-06-28 2016-05-17 Dell Products, L.P. Method of scheduling threads for execution on multiple processors within an information handling system
KR102090306B1 (ko) * 2013-06-28 2020-03-17 삼성전자주식회사 멀티 코어 시스템에서 태스크를 분배하기 위한 방법 및 그 전자 장치
US10217183B2 (en) 2013-12-20 2019-02-26 Nvidia Corporation System, method, and computer program product for simultaneous execution of compute and graphics workloads
US9836423B2 (en) 2014-07-25 2017-12-05 Netapp, Inc. Adaptive circuit board assembly and flexible PCI express bus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163512A1 (en) * 2002-02-28 2003-08-28 Fujitsu Limited Parallel-process execution method and multiprocessor-type computer
TW200917129A (en) * 2007-06-25 2009-04-16 Ibm Scheduling tasks across multiple processor units of differing capacity
US20130151879A1 (en) * 2009-12-16 2013-06-13 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20140173620A1 (en) * 2011-08-29 2014-06-19 Huawei Technologies Co., Ltd. Resource allocation method and resource management platform
CN103164283A (zh) * 2012-05-10 2013-06-19 上海兆民云计算科技有限公司 一种虚拟桌面系统中虚拟化资源动态调度管理方法及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775975A (zh) * 2016-12-08 2017-05-31 青岛海信移动通信技术股份有限公司 进程调度方法及装置
CN107436838A (zh) * 2017-07-12 2017-12-05 北京潘达互娱科技有限公司 一种内核数据统计方法与装置
CN107479976A (zh) * 2017-08-14 2017-12-15 郑州云海信息技术有限公司 一种多程序实例同时运行下cpu资源分配方法及装置
WO2019144788A1 (zh) * 2018-01-24 2019-08-01 中兴通讯股份有限公司 资源控制方法、装置及设备、计算机可读存储介质
CN110928649A (zh) * 2018-09-19 2020-03-27 北京国双科技有限公司 资源调度的方法和装置
WO2020108337A1 (zh) * 2018-11-29 2020-06-04 中兴通讯股份有限公司 一种cpu资源调度方法及电子设备
CN109936627A (zh) * 2019-02-21 2019-06-25 山东浪潮云信息技术有限公司 一种基于hadoop的自动数据均衡方法及工具
CN112114958A (zh) * 2019-06-21 2020-12-22 上海哔哩哔哩科技有限公司 资源隔离方法、分布式平台、计算机设备和存储介质
CN113535378A (zh) * 2020-04-20 2021-10-22 深圳Tcl数字技术有限公司 一种资源调配方法、存储介质及终端设备
CN111708633A (zh) * 2020-05-28 2020-09-25 北京赛博云睿智能科技有限公司 一种资源动态调整方法及系统
CN113825240A (zh) * 2021-09-15 2021-12-21 阿里巴巴达摩院(杭州)科技有限公司 资源分配方法及基站设备
CN113825240B (zh) * 2021-09-15 2024-04-05 杭州阿里云飞天信息技术有限公司 资源分配方法及基站设备
CN114706671A (zh) * 2022-05-17 2022-07-05 中诚华隆计算机技术有限公司 一种多处理器调度优化方法与系统
CN114706671B (zh) * 2022-05-17 2022-08-12 中诚华隆计算机技术有限公司 一种多处理器调度优化方法与系统

Also Published As

Publication number Publication date
EP3254192A1 (en) 2017-12-13
KR20170110615A (ko) 2017-10-11
US10089150B2 (en) 2018-10-02
US20160224387A1 (en) 2016-08-04
EP3254192A4 (en) 2018-11-07
CN105988872B (zh) 2020-02-18
KR102514478B1 (ko) 2023-03-24
TW201629759A (zh) 2016-08-16
JP6725521B2 (ja) 2020-07-22
JP2018511850A (ja) 2018-04-26
WO2016126880A1 (en) 2016-08-11

Similar Documents

Publication Publication Date Title
CN105988872A (zh) 一种cpu资源分配的方法、装置及电子设备
Turilli et al. A comprehensive perspective on pilot-job systems
Wang et al. Budget-driven scheduling algorithms for batches of MapReduce jobs in heterogeneous clouds
Polo et al. Performance-driven task co-scheduling for mapreduce environments
Juve et al. Comparing futuregrid, amazon ec2, and open science grid for scientific workflows
CN102193853B (zh) 虚拟机监控器及其调度方法
Hermenier et al. Bin repacking scheduling in virtualized datacenters
Wang et al. Workflow as a service in the cloud: architecture and scheduling algorithms
CN104834561A (zh) 一种数据处理方法及装置
Tao et al. Dynamic resource allocation algorithm for container-based service computing
CN110609742B (zh) 一种Kubernetes调度器的队列的配置方法和装置
CN103649910A (zh) 虚拟机放置
Mao et al. Speculative container scheduling for deep learning applications in a kubernetes cluster
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
Shojafar et al. An efficient scheduling method for grid systems based on a hierarchical stochastic Petri net
Shai et al. Heuristics for resource matching in intel’s compute farm
Li et al. MapReduce task scheduling in heterogeneous geo-distributed data centers
Naik et al. A review of adaptive approaches to MapReduce scheduling in heterogeneous environments
Bansal et al. A framework for performance analysis and tuning in hadoop based clusters
Leite et al. Excalibur: An autonomic cloud architecture for executing parallel applications
Hsiao et al. A usage-aware scheduler for improving MapReduce performance in heterogeneous environments
Leonenkov et al. Introducing new backfill-based scheduler for slurm resource manager
Hermenier et al. Dynamic consolidation of highly available web applications
Babuji et al. A secure data enclave and analytics platform for social scientists
Wei et al. Integrating local job scheduler–LSF TM with Gfarm TM

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant