CN102831015A - 多核处理器的调度方法和设备 - Google Patents
多核处理器的调度方法和设备 Download PDFInfo
- Publication number
- CN102831015A CN102831015A CN2012102713076A CN201210271307A CN102831015A CN 102831015 A CN102831015 A CN 102831015A CN 2012102713076 A CN2012102713076 A CN 2012102713076A CN 201210271307 A CN201210271307 A CN 201210271307A CN 102831015 A CN102831015 A CN 102831015A
- Authority
- CN
- China
- Prior art keywords
- isolation
- resource
- cpu
- isolation mode
- kernel
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000008569 process Effects 0.000 claims abstract description 44
- 238000002955 isolation Methods 0.000 claims description 234
- 238000007726 management method Methods 0.000 claims description 72
- 230000006978 adaptation Effects 0.000 claims description 21
- 238000013468 resource allocation Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 abstract description 4
- 238000006073 displacement reaction Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 36
- 238000012544 monitoring process Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种多核处理器的调度方法和设备。该方法包括LG接收应用程序发送的资源请求消息,所述资源请求消息包含所述应用程序请求的CPU资源的信息,所述LG是轻量级的跨进程中间件;LG根据所述资源请求消息,将所述应用程序请求的CPU资源上分配给所述应用程序使用,并隔离所述CPU资源上至少一个linux内核线程。本发明实施例可以在多核调度时降低开销,简化多核部署与提升多核CPU资源利用率。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种多核处理器的调度方法和设备。
背景技术
多核是指在一枚处理器中集成两个或多个完整的中央处理器(CentralProcess Unit,CPU)内核。为了充分发挥多核系统的效能,需要其上的软件是并行的,但是,目前业界关于编写、调试、优化并行处理程序的能力还非常弱。目前常用的处理方法是使用非对称多处理器(AsymmetricMultiProcessing,AMP)调度方式,通过将多个串行处理程序绑定到不同的核上来提高多核系统的使用率。但是,由于数据业务模型的不确定性,导致在AMP这种固定分配多核CPU资源的方式下,系统利用效率不高。随后业界出现了各种虚拟化技术和混合调度技术,如果从资源管理的角度来看,这些技术都是在寻找一种灵活的动态多核CPU资源共享策略,在规避并行编程难度的同时确保多核系统资源利用效率。例如,目前对多核CPU的资源共享有两种方式:一种是以现有操作系统(OS),如linux的对称多处理器(Symmetric Multiprocessing,SMP)调度为基础,由系统内核分时间片调度,使得多核CPU能力可以近乎公平地在各应用(Application,APP)之间共享,但是,该方式下内核开销不可控,且随着内核版本等的变化,难以部署以及难以提供稳定的CPU资源。另一种是基于虚拟机(Virtual Machine,VM)运行多核OS来共享CPU,其缺点是VM管理开销大。因此,需要寻求一种开销低、好部署、易扩展、稳定的多核CPU资源共享方法。
发明内容
本发明实施例提供一种多核处理器的调度方法和设备,用以在多核调度时降低开销,简化多核部署与提升多核CPU资源利用率。
第一方面,提供了一种多核处理器的调度方法,包括:
逻辑分组(Logic Group,LG)接收应用程序发送的资源请求消息,所述资源请求消息包含所述应用程序请求的CPU资源的信息,所述LG为轻量级的跨进程中间件;
所述LG根据所述资源请求消息,将所述应用程序请求的CPU资源分配给所述应用程序使用,并隔离所述CPU资源上至少一个linux内核线程。
结合本发明实施例第一方面的一种可能的实现方式中,所述资源请求消息中还包含隔离模式,其中,所述隔离模块包括第一隔离模式、第二隔离模式、第三隔离模式和第四隔离模式,不同的隔离模式用于指示所述LG隔离不同的linux内核线程,所述隔离所述CPU资源上至少一个linux内核线程,包括:
当所述隔离模式为第一隔离模式时,隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程;或者,
当所述隔离模式为第二隔离模式时,隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程;或者,
当所述隔离模式为第三隔离模式时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,
当所述隔离模式为第四隔离模式且所述CPU资源为时钟中断核时,隔离所述CPU资源除时钟中断之外的所有内核线程;或者,
当所述隔离模式为第四隔离模式且所述CPU资源为非时钟中断核时,隔离所述CPU资源上包括时钟中断在内的所有内核线程。
进一步地,在一种可能的实现方式中,当所述隔离模式为第一隔离模式或者第二隔离模式时,采用linux操作系统的cpuset功能和开源社区的cpu隔离补丁实现隔离;或者,当所述隔离模式为第三隔离模式或者第四隔离模式时,采用开源社区的中断隔离补丁实现隔离。
结合本发明实施例第一方面的另一种可能的实现方式中,所述方法还包括:当所述隔离模式为第三隔离模式或者第四隔离模式时,使用用户态调度器,调度所述应用程序请求的CPU资源,以供所述应用程序使用。
结合本发明实施例第一方面的另一种可能的实现方式中,所述隔离至少一个linux内核线程,包括:
根据统一配置的LG配置目录,隔离至少一个linux内核线程,所述LG配置目录通过符号链接指向所述CPU资源对应的目录及文件。
结合本发明实施例第一方面的另一种可能的实现方式中,所述方法还包括:所述LG在接收到所述资源请求消息后,对应每个资源请求消息创建一个LG实例;所述LG对每个资源请求消息对应的每个LG实例的运行进行实例管理,所述实例管理包括进程部署和状态管理,所述进程部署采用父子进程方式,所述状态管理用于管理处于各个不同分层中的状态,所述状态预先被划分到不同的分层中。
进一步地,在另一种可能的实现方式中,还包括:
对实例管理的结果进行状态监控,以获取每个LG实例的状态。
第二方面,提供了一种多核处理器的调度设备,包括:
配置与初始化模块,用于接收应用程序发送的资源请求消息,所述资源请求消息包含所述应用程序请求的CPU资源的信息,并将所述资源请求消息发送给资源管理模块;
资源管理模块,用于接收所述配置与初始化模块发送的所述资源请求消息,根据所述资源请求消息,将所述应用程序请求的CPU资源分配给所述应用程序使用,并隔离所述CPU资源上至少一个linux内核线程。
结合本发明实施例第二方面的另一种可能的实现方式中,所述资源请求消息中还包含隔离模式,其中,所述隔离模块包括第一隔离模式、第二隔离模式、第三隔离模式和第四隔离模式,不同的隔离模式用于指示所述LG隔离不同的linux内核线程;所述资源管理模块包括:
资源分配模块,用于根据所述资源请求消息,将所述应用程序请求的CPU资源上分配给所述应用程序使用;内核适配模块,用于当所述隔离模式为第一隔离模式时,隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程;或者,当所述隔离模式为第二隔离模式时,隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程;或者,当所述隔离模式为第三隔离模式时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,当所述隔离模式为第四隔离模式且所述CPU资源为时钟中断核时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,当所述隔离模式为第四隔离模式且所述CPU资源为非时钟中断核时,隔离所述CPU资源上包括时钟中断在内的所有内核线程。
进一步地,在另一种可能的实现方式中,当所述隔离模式为第一隔离模式或者第二隔离模式时,所述内核适配模块采用linux操作系统的cpuset功能函数和开源社区的cpu隔离补丁函数实现线程隔离;或者,当所述隔离模式为第三隔离模式或者第四隔离模式时,所述内核适配模块采用开源社区的中断隔离补丁函数实现线程隔离。
结合本发明实施例第二方面的另一种可能的实现方式中,所述方法还包括:
用户态调度器,用于当所述隔离模式为第三隔离模式或者第四隔离模式时,调度所述应用程序请求的CPU资源。
在另一种可能的实现方式中,所述内核适配模块还用于:
存储统一配置的逻辑分组LG配置目录,所述LG配置目录通过符号链接指向所述CPU资源对应的目录及文件,以便当所述隔离模式为第一隔离模式或者第二隔离模式时,所述资源分配模块通过所述LG配置目录查找到所述CPU资源对应的linux操作系统的cpuset功能函数和开源社区的cpu隔离补丁函数,并实现进程的隔离;或者,当所述隔离模式为第三隔离模式或者第四隔离模式时,所述资源分配模块通过所述LG配置目录查找到所述CPU资源对应的所述开源社区的中断隔离补丁函数,以实现进程的隔离。
由上述技术方案可知,本发明实施例通过LG调度CPU资源,该LG内没有OS,可以减少不必要的OS和虚拟机服务开销;在LG调度CPU资源时隔离至少部分的linux内核,可以屏蔽传统OS进程概念,简化多核部署与提升多核CPU资源利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明多核处理器的调度方法一实施例的流程示意图;
图2为本发明中的LG与应用程序和多核CPU的关系示意图;
图3为本发明中的LG的组成结构示意图;
图4为本发明多核处理器的调度方法另一实施例的流程示意图;
图5为本发明中配置的统一的LG配置目录的示意图;
图6为本发明中一种LG实例管理的示意图;
图7为本发明多核处理器的调度设备一实施例的结构示意图;
图8中本发明多核处理器的调度设备另一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明多核处理器的调度方法一实施例的流程示意图,包括:
步骤11:LG接收应用程序发送的资源请求消息,所述资源请求消息包含所述应用程序请求的CPU资源的信息,所述LG为轻量级的跨进程中间件;
步骤12:所述LG根据所述资源请求消息,将所述应用程序请求的CPU资源分配给所述应用程序使用,并隔离所述CPU资源上至少一个linux内核线程。
本发明实施例定义了LG的概念,逻辑分组与通常意义上的虚拟化逻辑分区(Logical Partition,LPAR)概念不同,LPAR中会运行OS,而本发明实施例中的LG不能再运行OS,而是跨进程的中间件。也就是说,本发明实施例中的LG是轻量级的跨进程中间件;轻量级可以理解为该LG中不运行OS;跨进程可以理解为该LG集成了进程通信,可以以映射为进程的方式进行运行;中间件可以理解为是上层应用程序与底层资源(如内核资源及物理资源)之间的一个平台,该平台是将通用的产品集成一个单独的产品。
参见图2,本实施例中的LG位于应用程序和多核CPU之间。由于LG中不再运行OS,可以节省网络设备资源。
每个LG可以映射为一个或多个Linux进程,逻辑分组之间的CPU资源是逻辑隔离的,可以在不重启业务的条件下跨分组调配CPU资源,通过LG的管理,可以将系统内核(Linux kernel)对系统的影响降到最低程度,使得在内核版本变化、内核模块变化、内核驱动变化等情况下,部署在LG中的一个大粒度、关键的业务组件或公共服务可获得稳定的、确切的CPU资源。
另外,上述的LG隔离linux内核线程可以理解为:假设要隔离的linux内核线程原本应该运行在CPU A上,但是当隔离该linux内核线程后,该linux内核线程将不再在CPU A上运行,例如,该linux内核线程不再运行,或者,将该linux内核线程迁移到其它CPU上进行运行。
参见图3,本发明资源管理中,包括配置与初始化模块31、资源分配模块32、内核适配模块33、LG实例管理模块34和状态监控模块35。内核适配模块33可以分为用户态的内核适配模块331和内核态的内核适配模块332。
参见图4,结合图3所示的各模块,本发明给出如下一个实施例:
步骤41:配置与初始化模块接收产品操作管理(Operation Management,OM)模块发送的资源请求消息,该资源请求消息中包含业务信息和请求的CPU资源信息。
其中,每个业务可以对应一个应用程序,产品OM模块通过应用程序向配置和初始化模块发送资源请求消息,为对应的业务请求CPU资源。例如,资源请求消息表明为业务A请求独占一个CPU。
步骤42:配置与初始化模块接收到资源请求消息后,根据业务部署和CPU资源情况创建LG实例。
例如,上述的业务A请求独占一个CPU时,如果CPU1处于空闲状态,那么配置与初始化模块可以创建LG1,该LG1管理的CPU资源为CPU1,并且建立业务A与LG1的对应关系。
创建LG实例时,可以在内核适配模块中创建统一的配置目录,配置目录中包括各LG的信息。
参见图5,配置目录可以包括根目录、一级子目录、二级子目录等,其中,根目录中记录lgroup,一级子目录为创建的各LG的信息,例如LG1、LG2等,二级子目录中为每个LG中的设置信息,例如LG1中包括CPU资源和内存资源,CPU资源中包括CPU1,内存资源中包括内存1等。每个LG中的设置信息可以通过符号链接指向linux内核设置的目录及文件。
类似的,通过配置与初始化模块可以实现:动态的创建或删除LG;动态的增加或删除LG中的资源;动态的绑定业务进程到LG。
在创建LG后,可以通过创建的LG实现对linux内核的不同程度的隔离。
步骤43:配置与初始化模块向资源分配模块发送资源请求消息。
步骤44:资源分配模块根据资源请求消息,向内核适配模块进行写文件操作,以分配CPU资源。
由于资源管理模块不能直接调度CPU,可以采用函数调用的方式,即向内核适配模块中写文件的方式实现对CPU资源的调度。
如上述的图5所示,本实施例中的内核适配模块中配置统一的配置目录,这样可以为不同的内核功能提供统一的配置方式,达到与内核解耦的目的。通过设置符号链接指向所需的函数。例如,需要CPU1对应的子目录中指向cpuset函数,则可以配置CPU1对应的符号链接指向CPU1的cpuset函数。
可以根据资源请求消息中携带的隔离模式,确定每个文件需要指向的函数。
本发明实施例中,CPU管理可以配置4种隔离模式,分别为第一隔离模式、第二隔离模式、第三隔离模式和第四隔离模式。
第一隔离模式:隔离度低:sched_linux_ktpartial隔离部分内核线程,已绑定的内核线程除外;
第二隔离模式:隔离度适中:sched_linux_ktall隔离全部内核线程,包括已绑定的内核线程;
第三隔离模式:隔离度较高:sched_lgself_tick核上仍保留时钟中断,隔离其他中断;
第四隔离模式:隔离度最高:sched_lgself_tickless仅时钟中断核上保留时钟中断,其他核上隔离;即当隔离模式为第四隔离模式且CPU资源为时钟中断核时,隔离该CPU资源上的时钟中断之外的所有内核线程;或者,当隔离模式为第四隔离模式且该CPU资源为非时钟中断核时,隔离该CPU资源上包括时钟中断在内的所有内核线程。第一隔离模式和第二隔离模式,主要是利用操作系统已有的cpuset功能和开源社区的cpu隔离补丁,通过隔离指定核上内核线程在调度上的影响,将更多的cpu资源预留给用户配置中指定的用户态进程;
第三隔离模式和第四隔离模式利用开源社区的中断隔离补丁,达到更高的隔离程度。在此两种模式下完全隔离了操作系统的调度功能,使用自研的用户态调度器,实现稳定可靠的BM调度,用于对实时性要求很高的数据面应用。
通过设置四个等级的隔离模式,可以让用户选择适当的层次来加入定制的调度策略,最大限度的保证用户策略和系统策略的完美结合,使得高校和低开销能够兼得。
例如,当资源请求消息中表明采用第一隔离模式时,可以设置CPU1对应的符号链接指向CPU1的cpuset函数。
另外,当采用第一隔离模式或第二隔离模式时,可以由Linux内核完成调度,而当采用第三隔离模式或第四隔离模式时,由于隔离了linux内核的全部线程,此时对CPU资源的调度可以由自研的用户态调度器实现。例如,当业务A请求80%的CPU资源,业务B请求20%的CPU资源时,可以将CPU1对应的符号链接指向第一函数,该第一函数可以使得用户态调度器将CPU1的80%时间分配给业务A使用,而将20%时间分配给业务B使用。
步骤45:LG实例管理模块对LG实例的运行进行监控。
针对每个LG实例,可以对应一个LG实例管理模块,用于监控对应的LG实例的执行情况。
本实施例中,实例管理可以包括:进程部署和状态管理。
参见图6,进程部署包括管理进程和业务进程,管理进程和业务进程采用父进程和子进程的方式进行管理。一个业务对应一个管理进程,每个业务进程对应该业务下的每个进程,例如,业务A分为5个进程,那么对应业务A的子进程为5个。
管理进程独立,可以在业务进程故障的情况下,根据监控数据就地进行调试和修复,同时分离也有利于系统的可靠性和扩展性。
状态管理可以采用分层的设计方式,也就是说根据状态所属的不同层次对要管理的状态进行划分。例如,状态可以分为业务相关层和业务无关层,业务相关层可以包括LG业务逻辑状态、LG资源对应的业务资源状态,业务无关层可以包括LG资源管理状态、LG资源物理状态。LG业务逻辑状态可以分配给产品用户使用,也就是说每个产品用户对应一个LG逻辑状态;LG资源对应的业务资源状态可以与分配给特定业务流使用,也就是说每个业务流对应一个业务资源状态;LG资源管理状态可以分配给业务模块使用,也就是说每个业务模块对应一个LG资源管理状态;LG资源物理状态可以分配给LG使用,也就是说每个LG实例对应一个LG资源物理状态。
状态管理采用分层的设计方式,LG状态独立管理,易于区分资源状态的变化层次,方便问题定位。同时将业务相关和业务无关的状态管理分开,有利于简化业务逻辑的设计和提高业务方面的扩展性。
步骤46:状态监控模块从LG实例管理模块获取监控信息。
监控进程通过统一的通信通道实现各进程间的互通,并在此基础上进行LG实例的状态控制。收集每个LG实例的运行信息,如运行日志、定时备份、死机重启日志、在线调试等。之后状态监控模块可以将监控信息通过配置与初始化模块通知给OM操作人员,以供OM操作人员判断当前系统的实时状态,作为进一步操作的决策来源。
上述对CPU资源的分配进行了描述,资源管理还可以包括内存管理。例如,配置与初始化模块接收到产品OM模块发送的对内存的请求消息,如,为业务A请求一定容量的内存。配置与初始化模块将该对内存的请求消息发送给资源管理模块,资源管理模块再向内核适配模块中写入文件,如果在LG1的下一级子目录的内存资源中写入请求的容量,以便linux内核将对应的容量分配给业务A。
在内存管理时也采用隔离度配置内存资源。例如,当业务需要内存隔离时,可以配置内存资源下的内存1指向进程间隔离这一函数,当业务需要内存共享时,可以配置内存资源下的内存1指向进程间共享这一函数。
LG(进程间隔离),例如通过cgroup可隔离不同的物理内存块,实现不同APP在物理层面的内存隔离。通过进程间隔离可以实现LG物理与虚拟内存地址预留,使得需要隔离的进程,如调试信息、管理消息对应的进程在固定的虚拟地址上保存,方便问题定位;
LG(进程间共享),可以通过使能相应页面的直接内存存取(Direct MemoryAccess,DMA)功能,并增加大块数据区的内存管理单元(Memory ManagementUnit,MMU)页面大小,提升大块数据通信的吞吐性能,兼容AMP模式的进程间内存共享,可直接使用效率很高的核间免锁共享内存通信功能。
本实施例通过LG调度CPU资源,该LG内没有OS,可以减少不必要的OS和虚拟机服务开销;在LG调度CPU资源时隔离至少部分的linux内核,可以屏蔽传统OS进程概念,简化多核部署与提升多核CPU资源利用率。
图7为基于本发明方法实施例,提供的多核调度器的调度设备一实施例的结构示意图,该设备为轻量级的跨进程中间件,比如本发明方法实施例所述的逻辑分组LG;该设备70包括配置与初始化模块71和资源管理模块72;配置与初始化模块71用于接收应用程序发送的资源请求消息,所述资源请求消息包含所述应用程序请求的CPU资源的信息,并将所述资源请求消息发送给资源管理模块;
资源管理模块72用于接收所述配置与初始化模块发送的所述资源请求消息,根据所述资源请求消息,将所述应用程序请求的CPU资源上分配给所述应用程序使用,并隔离所述CPU资源上至少一个linux内核线程。
可选的,所述资源请求消息中还包含隔离模式,其中,所述隔离模块包括第一隔离模式、第二隔离模式、第三隔离模式和第四隔离模式,不同的隔离模式用于指示所述所述资源管理模块隔离不同的linux内核线程,所述资源管理模块包括:
资源分配模块,用于根据所述资源请求消息,将所述应用程序请求的CPU资源上分配给所述应用程序使用;
内核适配模块,用于当所述隔离模式为第一隔离模式时,隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程;或者,
当所述隔离模式为第二隔离模式时,隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程;或者,
当所述隔离模式为第三隔离模式时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,
当所述隔离模式为第四隔离模式且所述CPU资源为时钟中断核时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,
当所述隔离模式为第四隔离模式且所述CPU资源为非时钟中断核时,隔离所述CPU资源上包括时钟中断在内的所有内核线程。
可选的,当所述隔离模式为第一隔离模式或者第二隔离模式时,所述内核适配模块采用linux操作系统的cpuset功能函数和开源社区的cpu隔离补丁函数实现线程隔离;或者,
当所述隔离模式为第三隔离模式或者第四隔离模式时,所述内核适配模块采用开源社区的中断隔离补丁函数实现线程隔离。
可选的,该设备还包括:
用户态调度器,用于当所述隔离模式为第三隔离模式或者第四隔离模式时,调度所述应用程序请求的CPU资源。
可选的,所述内核适配模块还用于:
存储统一配置的LG配置目录,所述LG配置目录通过符号链接指向所述CPU资源对应的目录及文件,以便当所述隔离模式为第一隔离模式或者第二隔离模式时,所述资源分配模块向所述LG配置目录中写入的文件通过符号链接指向所述CPU资源对应的linux操作系统的cpuset功能函数和开源社区的cpu隔离补丁函数,从而使得资源分配模块查找到cpuset功能函数和开源社区的cpu隔离补丁函数后,利用这些函数实现线程的隔离;或者,当所述隔离模式为第三隔离模式或者第四隔离模式时,所述资源分配模块向所述LG配置目录中写入的文件通过符号链接指向所述CPU资源对应的所述开源社区的中断隔离补丁函数,从而使得资源分配模块查找到所述中断隔离补丁函数,并根据该函数实现线程的隔离。
可选的,所述配置与初始化模块还用于在接收到所述资源请求消息后,对应每个资源请求消息创建一个LG实例,该设备还包括:
LG实例管理模块,用于对每个资源请求消息对应的每个LG实例的运行进行实例管理,所述实例管理包括进程部署和状态管理,所述进程部署采用父子进程方式,所述状态管理用于管理处于各个分层中的状态,所述状态预先被划分到不同的分层中。
可选的,该设备还包括:
状态监控模块,用于对所述LG实例管理模块实例管理的结果进行状态监控,以获取每个LG实例的状态。
该设备可以具体为上述方法中的LG,该设备中各模块的具体功能可以参见上述方法中对LG的描述。
本实施例通过LG调度CPU资源,该LG内没有OS,可以减少不必要的OS和虚拟机服务开销;在LG调度CPU资源时隔离至少部分的linux内核,可以屏蔽传统OS进程概念,简化多核部署与提升多核CPU资源利用率。
图8中本发明多核处理器的调度设备另一实施例的结构示意图,该设备80包括多核CPU 81、用户界面82、存储器83和LG 84;应用程序通过用户界面82程序给用户,以便用户根据所需的应用启动对应的应用程序;LG 84用于接收应用程序发送的资源请求消息,所述资源请求消息包含所述应用程序请求的CPU资源的信息;根据所述资源请求消息,将所述应用程序请求的CPU资源分配给所述应用程序使用,并隔离所述CPU资源上至少一个linux内核线程。
可选的,所述资源请求消息中还包含隔离模式,其中,所述隔离模块包括第一隔离模式、第二隔离模式、第三隔离模式和第四隔离模式,不同的隔离模式用于指示所述LG隔离不同的linux内核线程,LG具体用于:
当所述隔离模式为第一隔离模式时,隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程;或者,
当所述隔离模式为第二隔离模式时,隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程;或者,
当所述隔离模式为第三隔离模式时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,
当所述隔离模式为第四隔离模式且所述CPU资源为时钟中断核时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,
当所述隔离模式为第四隔离模式且所述CPU资源为非时钟中断核时,隔离所述CPU资源上包括时钟中断在内的所有内核线程。
可选的,LG具体用于:
采用linux操作系统的cpuset功能和开源社区的cpu隔离补丁,隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程;或者,
采用linux操作系统的cpuset功能和开源社区的cpu隔离补丁,隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程;或者,
采用开源社区的中断隔离补丁隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,
采用开源社区的中断隔离补丁隔离所述CPU资源上包括时钟中断在内的所有内核线程。
可选的,LG还用于当所述隔离模式为第三隔离模式或者第四隔离模式时,使用用户态调度器,调度所述应用程序请求的CPU资源,以供所述应用程序使用。
可选的,LG具体用于:根据统一配置的LG配置目录,隔离至少一个linux内核线程,所述LG配置目录通过符号链接指向所述CPU资源对应的目录及文件。
可选的,LG还用于:在接收到所述资源请求消息后,对应每个资源请求消息创建一个LG实例;对每个资源请求消息对应的每个LG实例的运行进行实例管理,所述实例管理包括进程部署和状态管理,所述进程部署采用父子进程方式,所述状态管理用于处于各个分层中的状态,所述状态预先被划分到不同的分层中。
可选的,LG还用于:对实例管理的结果进行状态监控,以获取每个LG实例的状态。
该LG的具体功能可以参见上述方法实施例中的具体描述。
另外,上述的存储器可以用于对LG中要使用的信息进行存储,例如存储LG配置目录,另外,存储器还可以用于提供上述方法中的内存,利用上述方法中内存的管理方式进行管理。
本实施例通过LG调度CPU资源,该LG内没有OS,可以减少不必要的OS和虚拟机服务开销;在LG调度CPU资源时隔离至少部分的linux内核,可以屏蔽传统OS进程概念,简化多核部署与提升多核CPU资源利用率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种多核处理器的调度方法,其特征在于,包括:
逻辑分组LG接收应用程序发送的资源请求消息,所述资源请求消息包含所述应用程序请求的CPU资源的信息,所述LG为轻量级的跨进程中间件;
所述LG根据所述资源请求消息,将所述应用程序请求的CPU资源分配给所述应用程序使用,并隔离所述CPU资源上至少一个linux内核线程。
2.根据权利要求1所述的方法,其特征在于,所述资源请求消息中还包含隔离模式,其中,所述隔离模块包括第一隔离模式、第二隔离模式、第三隔离模式和第四隔离模式,不同的隔离模式用于指示所述LG隔离不同的linux内核线程;
所述隔离所述CPU资源上至少一个linux内核线程,包括:
当所述隔离模式为第一隔离模式时,隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程;或者,
当所述隔离模式为第二隔离模式时,隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程;或者,
当所述隔离模式为第三隔离模式时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,
当所述隔离模式为第四隔离模式时,隔离所述CPU资源上除时钟中断核上的时钟中断之外的所有内核线程。
3.根据权利要求2所述的方法,其特征在于,所述隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程,包括:
采用linux操作系统的cpuset功能和开源社区的cpu隔离补丁,隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程;
所述隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程,包括:采用linux操作系统的cpuset功能和开源社区的cpu隔离补丁,隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程;
所述隔离所述CPU资源上除时钟中断之外的所有内核线程,包括:采用开源社区的中断隔离补丁隔离所述CPU资源上除时钟中断之外的所有内核线程;
所述隔离所述CPU资源上除时钟中断核上的时钟中断之外的所有内核线程,包括:
采用开源社区的中断隔离补丁隔离所述CPU资源上除时钟中断核上的时钟中断之外的所有内核线程。
4.根据权利要求3所述的方法,其特征在于,还包括:
当所述隔离模式为第三隔离模式或者第四隔离模式时,使用用户态调度器,调度所述应用程序请求的CPU资源,以供所述应用程序使用。
5.根据权利要求1所述的方法,其特征在于,所述隔离至少一个linux内核线程,包括:
根据统一配置的LG配置目录,隔离至少一个linux内核线程,所述LG配置目录通过符号链接指向所述CPU资源对应的目录及文件。
6.根据权利要求1所述的方法,其特征在于,还包括:
所述LG在接收到所述资源请求消息后,对应每个资源请求消息创建一个LG实例;
所述LG对每个资源请求消息对应的每个LG实例的运行进行实例管理,所述实例管理包括进程部署和状态管理,所述进程部署采用父子进程方式,所述状态管理用于管理处于各个分层中的状态,所述状态预先被划分到不同的分层中。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述LG对实例管理的结果进行状态监控,以获取每个LG实例的状态。
8.一种多核处理器的调度设备,其特征在于,包括:
配置与初始化模块,用于接收应用程序发送的资源请求消息,所述资源请求消息包含所述应用程序请求的CPU资源的信息,并将所述资源请求消息发送给资源管理模块;
资源管理模块,用于接收所述配置与初始化模块发送的所述资源请求消息,根据所述资源请求消息,将所述应用程序请求的CPU资源分配给所述应用程序使用,并隔离所述CPU资源上至少一个linux内核线程。
9.根据权利要求8所述的设备,其特征在于,所述资源请求消息中还包含隔离模式,其中,所述隔离模块包括第一隔离模式、第二隔离模式、第三隔离模式和第四隔离模式,不同的隔离模式用于指示所述资源管理模块隔离不同的linux内核线程;
所述资源管理模块包括:
资源分配模块,用于根据所述资源请求消息,将所述应用程序请求的CPU资源上分配给所述应用程序使用;
内核适配模块,用于
当所述隔离模式为第一隔离模式时,隔离所述CPU资源上除已绑定的内核线程之外的所有内核线程;或者,
当所述隔离模式为第二隔离模式时,隔离所述CPU资源上包括已绑定的内核线程在内的所有内核线程;或者,
当所述隔离模式为第三隔离模式时,隔离所述CPU资源上除时钟中断之外的所有内核线程;或者,
当所述隔离模式为第四隔离模式时,隔离所述CPU资源上除时钟中断核上的时钟中断之外的所有内核线程。
10.根据权利要求9所述的设备,其特征在于,
当所述隔离模式为第一隔离模式或者第二隔离模式时,所述内核适配模块采用linux操作系统的cpuset功能函数和开源社区的cpu隔离补丁函数实现线程隔离;
当所述隔离模式为第三隔离模式或者第四隔离模式时,所述内核适配模块采用开源社区的中断隔离补丁函数实现线程隔离。
11.根据权利要求10所述的设备,其特征在于,还包括:
用户态调度器,用于当所述隔离模式为第三隔离模式或者第四隔离模式时,调度所述应用程序请求的CPU资源。
12.根据权利要求10所述的设备,其特征在于,所述内核适配模块还用于:
存储统一配置的逻辑分组LG配置目录,所述LG配置目录通过符号链接指向所述CPU资源对应的目录及文件,以便当所述隔离模式为第一隔离模式或者第二隔离模式时,所述资源分配模块通过所述LG配置目录查找到所述CPU资源对应的linux操作系统的cpuset功能函数和开源社区的cpu隔离补丁函数,并实现进程的隔离;或者,当所述隔离模式为第三隔离模式或者第四隔离模式时,所述资源分配模块通过所述LG配置目录查找到所述CPU资源对应的所述开源社区的中断隔离补丁函数,以实现进程的隔离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271307.6A CN102831015B (zh) | 2012-08-01 | 2012-08-01 | 多核处理器的调度方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271307.6A CN102831015B (zh) | 2012-08-01 | 2012-08-01 | 多核处理器的调度方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102831015A true CN102831015A (zh) | 2012-12-19 |
CN102831015B CN102831015B (zh) | 2015-09-23 |
Family
ID=47334164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210271307.6A Expired - Fee Related CN102831015B (zh) | 2012-08-01 | 2012-08-01 | 多核处理器的调度方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831015B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365658A (zh) * | 2013-06-28 | 2013-10-23 | 华为技术有限公司 | 一种资源访问方法和计算机设备 |
CN103617071A (zh) * | 2013-12-02 | 2014-03-05 | 北京华胜天成科技股份有限公司 | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 |
CN104700027A (zh) * | 2013-12-27 | 2015-06-10 | 卡巴斯基实验室封闭式股份公司 | 使用资源管理器隔离资源的系统和方法 |
CN105786612A (zh) * | 2014-12-23 | 2016-07-20 | 杭州华为数字技术有限公司 | 一种资源管理方法及装置 |
WO2016197441A1 (zh) * | 2015-06-09 | 2016-12-15 | 宇龙计算机通信科技(深圳)有限公司 | 基于多核处理器的资源调度方法及装置 |
CN107783836A (zh) * | 2016-08-31 | 2018-03-09 | 中国电信股份有限公司 | 基于Linux容器控制Web应用资源的方法和装置 |
CN110333899A (zh) * | 2019-06-27 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置和存储介质 |
CN110837415A (zh) * | 2018-08-17 | 2020-02-25 | 北京嘉楠捷思信息技术有限公司 | 一种基于risc-v多核处理器的线程调度方法和装置 |
CN111427816A (zh) * | 2020-03-04 | 2020-07-17 | 深圳震有科技股份有限公司 | 一种amp系统核间通讯方法、计算机设备及存储介质 |
CN111464357A (zh) * | 2020-04-01 | 2020-07-28 | 武汉虹旭信息技术有限责任公司 | 资源配置方法及装置 |
WO2021046777A1 (zh) * | 2019-09-11 | 2021-03-18 | 阿里巴巴集团控股有限公司 | 资源调度、申请与定价方法、设备、系统及存储介质 |
CN112948197A (zh) * | 2021-04-02 | 2021-06-11 | 珠海奔图电子有限公司 | 多核处理器测试装置、系统、方法及片上系统 |
WO2021203531A1 (zh) * | 2020-04-07 | 2021-10-14 | 中国科学院自动化研究所 | 用于高速数据采集系统的以太网数据流记录方法 |
US11954527B2 (en) | 2020-12-09 | 2024-04-09 | Industrial Technology Research Institute | Machine learning system and resource allocation method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1653425A (zh) * | 2002-05-09 | 2005-08-10 | 国际商业机器公司 | 在逻辑分区数据处理系统中动态分配和解除分配处理器的方法和装置 |
CN101727351A (zh) * | 2009-12-14 | 2010-06-09 | 北京航空航天大学 | 面向多核平台的虚拟机监控器非对称调度器及其调度方法 |
-
2012
- 2012-08-01 CN CN201210271307.6A patent/CN102831015B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1653425A (zh) * | 2002-05-09 | 2005-08-10 | 国际商业机器公司 | 在逻辑分区数据处理系统中动态分配和解除分配处理器的方法和装置 |
CN101727351A (zh) * | 2009-12-14 | 2010-06-09 | 北京航空航天大学 | 面向多核平台的虚拟机监控器非对称调度器及其调度方法 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014206331A1 (zh) * | 2013-06-28 | 2014-12-31 | 华为技术有限公司 | 一种资源访问方法和计算机设备 |
CN103365658B (zh) * | 2013-06-28 | 2016-09-07 | 华为技术有限公司 | 一种资源访问方法和计算机设备 |
CN103365658A (zh) * | 2013-06-28 | 2013-10-23 | 华为技术有限公司 | 一种资源访问方法和计算机设备 |
CN103617071A (zh) * | 2013-12-02 | 2014-03-05 | 北京华胜天成科技股份有限公司 | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 |
CN103617071B (zh) * | 2013-12-02 | 2017-01-25 | 北京华胜天成科技股份有限公司 | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 |
CN104700027B (zh) * | 2013-12-27 | 2017-10-13 | 卡巴斯基实验室封闭式股份公司 | 使用资源管理器隔离资源的系统和方法 |
CN104700027A (zh) * | 2013-12-27 | 2015-06-10 | 卡巴斯基实验室封闭式股份公司 | 使用资源管理器隔离资源的系统和方法 |
CN105786612A (zh) * | 2014-12-23 | 2016-07-20 | 杭州华为数字技术有限公司 | 一种资源管理方法及装置 |
CN105786612B (zh) * | 2014-12-23 | 2019-05-24 | 杭州华为数字技术有限公司 | 一种资源管理方法及装置 |
WO2016197441A1 (zh) * | 2015-06-09 | 2016-12-15 | 宇龙计算机通信科技(深圳)有限公司 | 基于多核处理器的资源调度方法及装置 |
CN106293905B (zh) * | 2015-06-09 | 2019-03-22 | 宇龙计算机通信科技(深圳)有限公司 | 基于多核处理器的资源调度方法及装置 |
CN106293905A (zh) * | 2015-06-09 | 2017-01-04 | 宇龙计算机通信科技(深圳)有限公司 | 基于多核处理器的资源调度方法及装置 |
CN107783836A (zh) * | 2016-08-31 | 2018-03-09 | 中国电信股份有限公司 | 基于Linux容器控制Web应用资源的方法和装置 |
CN107783836B (zh) * | 2016-08-31 | 2020-10-09 | 中国电信股份有限公司 | 基于 Linux 容器控制Web 应用资源的方法和装置 |
CN110837415B (zh) * | 2018-08-17 | 2024-04-26 | 嘉楠明芯(北京)科技有限公司 | 一种基于risc-v多核处理器的线程调度方法和装置 |
CN110837415A (zh) * | 2018-08-17 | 2020-02-25 | 北京嘉楠捷思信息技术有限公司 | 一种基于risc-v多核处理器的线程调度方法和装置 |
CN110333899A (zh) * | 2019-06-27 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置和存储介质 |
WO2021046777A1 (zh) * | 2019-09-11 | 2021-03-18 | 阿里巴巴集团控股有限公司 | 资源调度、申请与定价方法、设备、系统及存储介质 |
CN111427816A (zh) * | 2020-03-04 | 2020-07-17 | 深圳震有科技股份有限公司 | 一种amp系统核间通讯方法、计算机设备及存储介质 |
CN111464357A (zh) * | 2020-04-01 | 2020-07-28 | 武汉虹旭信息技术有限责任公司 | 资源配置方法及装置 |
WO2021203531A1 (zh) * | 2020-04-07 | 2021-10-14 | 中国科学院自动化研究所 | 用于高速数据采集系统的以太网数据流记录方法 |
US11941449B2 (en) | 2020-04-07 | 2024-03-26 | Institute Of Automation, Chinese Academy Of Sciences | Ethernet data stream recording method and system for high-speed data acquisition system |
US11954527B2 (en) | 2020-12-09 | 2024-04-09 | Industrial Technology Research Institute | Machine learning system and resource allocation method thereof |
CN112948197B (zh) * | 2021-04-02 | 2024-02-06 | 珠海奔图电子有限公司 | 多核处理器测试装置、系统、方法及片上系统 |
CN112948197A (zh) * | 2021-04-02 | 2021-06-11 | 珠海奔图电子有限公司 | 多核处理器测试装置、系统、方法及片上系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102831015B (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102831015B (zh) | 多核处理器的调度方法和设备 | |
US11010053B2 (en) | Memory-access-resource management | |
US10216758B2 (en) | Multi-tenant production and test deployments of Hadoop | |
EP3086228B1 (en) | Resource processing method, operating system, and device | |
CN111796908B (zh) | 一种资源自动弹性伸缩的系统、方法及云平台 | |
US8762999B2 (en) | Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement | |
WO2018006864A1 (zh) | 创建虚拟机的方法、装置及系统、控制设备和存储介质 | |
CN107222531B (zh) | 一种容器云资源调度方法 | |
US11740921B2 (en) | Coordinated container scheduling for improved resource allocation in virtual computing environment | |
WO2015169145A1 (zh) | 内存管理方法和设备 | |
CN103064742A (zh) | 一种hadoop集群的自动部署系统及方法 | |
EP3073373A1 (en) | Method for interruption affinity binding of virtual network interface card, and computer device | |
US20100333087A1 (en) | Allocation and Regulation of CPU Entitlement for Virtual Processors in Logical Partitioned Platform | |
WO2014090008A1 (zh) | 一种任务处理的方法和虚拟机 | |
CN108205461A (zh) | 一种混合部署的虚拟化平台及部署方法 | |
US8205207B2 (en) | Method of automated resource management in a partition migration capable environment | |
WO2021022964A1 (zh) | 一种基于多核系统的任务处理方法、装置及计算机可读存储介质 | |
CN113778612A (zh) | 基于微内核机制的嵌入式虚拟化系统实现方法 | |
CN115280285A (zh) | 由独立操作的多个调度器在公共资源集上调度工作负载 | |
US9513952B2 (en) | Sharing resources allocated to an entitled virtual machine | |
CN114860387A (zh) | 一种面向虚拟化存储应用的hba控制器i/o虚拟化方法 | |
JP2017162522A (ja) | マルチコアシステムのインターラプト割り当て方法及び装置 | |
Li et al. | A novel disk I/O scheduling framework of virtualized storage system | |
US20210303324A1 (en) | Hypervisor task execution management for virtual machines | |
CN114281529A (zh) | 分布式虚拟化的客户操作系统调度优化方法、系统及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150923 Termination date: 20180801 |