CN103744735B - 一种多核资源的调度方法及装置 - Google Patents
一种多核资源的调度方法及装置 Download PDFInfo
- Publication number
- CN103744735B CN103744735B CN201410009967.6A CN201410009967A CN103744735B CN 103744735 B CN103744735 B CN 103744735B CN 201410009967 A CN201410009967 A CN 201410009967A CN 103744735 B CN103744735 B CN 103744735B
- Authority
- CN
- China
- Prior art keywords
- core
- function
- queue
- flow line
- line stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种多核资源的调度方法及装置,该方法应用于包括有一个管理核和多个功能核的多核系统中,此管理核执行下述流程:根据接收到的每个流水线阶段的功能核按照预设周期发来的负载信息,和每个流水线阶段的功能核数,确定每个流水线阶段的功能核的负载状态;如果确定出任一流水线阶段的任一功能核的负载状态为超负载状态,从预设的第一就绪核队列中选择第一设定个数的功能核后,添加到任一流水线阶段中。本发明中的管理核可根据相关功能核的负载情况,来调度核资源,提高了系统的业务处理效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种多核资源的调度方法及装置。
背景技术
随着社会信息化程度的加深,人们对互联网的依赖性越来越强,连接到网络上的计算机节点也呈级数式的增长。网络设备等作为计算机互联的数据交换节点,其数据转发性能决定了整个网络的质量。随着用户连接数的急剧增长和各种高带宽应用的出现,主频提升受限的单核系统越来越难以满足高速数据转发的性能需求,而多核系统凭借其较低成本的可扩展能力和并行计算特性,逐渐在网络通信领域得到广泛应用。
所谓多核系统,是指在一个硬件芯片上集成多个核心处理器(Core-CPU,简称为Core)的系统,通常是共享内存式结构。也就是说,多核系统具备相对独立的多个处理核,可以并行地执行例如报文转发等处理流程,进而提高多核系统整体的吞吐率。
具体地,在利用多核系统处理报文转发流程时,为了提高处理性能,通常采用流水线模式进行处理,即将整个报文转发过程划分为多个流水线阶段,例如报文接收阶段、二层上行处理阶段、路由转发阶段、二层下行处理阶段和报文发送阶段。那么,针对每个流水线阶段所使用的核资源,目前通常是通过下述两种方式进行分配:
第一种方式,固定分配核资源,即根据多核系统的相关业务的实际需求,事先设置各个流水线阶段的核资源,使用比例事先设置为,例如,对于一个包括Core0~Core7的多核系统说,假设根据实际业务需求,需要将各个流水线阶段的核资源按照1:1:3:1:1的比例进行分配,例如具体分配如下:Core0设定为管理核,CORE1负责报文接收阶段,CORE2负责二层上行处理阶段,CORE3、CORE4和CORE5共同负责路由转发阶段,CORE6负责二层下行处理阶段,CORE7负责报文发送阶段,这样,后续这些核对各自分配的流水线阶段进行相关业务处理;
第二种方式,统一分配核资源,即在多核系统中选择一个核作为管理核,其他核作为功能核,由管理核负责管理任务队列,该管理核会将各个流水线阶段进行优先级划分,使得同一流水线中对应的处理阶段越往后的优先级越高,以避免由于硬件资源不足而需要把前面处理阶段执行完的报文丢弃所作的无用功,使得不同流水线中对应相同处理阶段的优先级相同,后续指示功能核主动请求任务队列中的某个流水线阶段的任务,且在有功能核请求相关任务时,对任务队列进行加锁,等这个功能核请求完再接受其他功能核的任务请求。
从上述两种分配资源的方式中可以看出,如果采用第一种方式的话,每个处理核只参与唯一一个流水线阶段,这样在各流水线或者同一条流水线中核资源分配不均衡时,就会出现一部分核很忙,另一部分核却很空闲,容易造成系统瓶颈,导致多核系统的业务处理效率较低;如果采用第二种方式的话,在任务队列中存在多条流水线的情况下,如果某些核在处理一部分流水线,任务队列处于加锁状态,其他功能核需要等待较长时间才能执行另一部分流水线,导致多核系统的业务处理效率仍然较低。
发明内容
本发明实施例提供了一种多核资源的调度方法及装置,用以解决现有多核资源的分配方式导致多核系统的业务处理效率较低的问题。
基于上述问题,本发明实施例提供的一种多核资源的调度方法,该方法应用于包括有一个管理核和多个功能核的多核系统中,该方法包括:
所述管理核根据接收到的每个流水线阶段的功能核按照预设周期发来的负载信息,和所述每个流水线阶段的功能核数,确定所述每个流水线阶段的功能核的负载状态;
如果确定出任一流水线阶段的任一功能核的负载状态为超负载状态,从预设的第一就绪核队列中选择第一设定个数的功能核后,添加到所述任一流水线阶段中,所述第一就绪核队列为自身根据所述任一流水线阶段的功能核发来的负载信息、所述任一流水线阶段的功能核数和预设的备用核队列中未加载所述任一流水线阶段的映像程序的功能核数,对包括有已加载所述映像程序的功能核的预设的第二就绪核队列进行更新后得到的。
本发明实施例提供的一种多核资源的调度装置,所述装置位于多核系统中,且所述多核系统还包括多个功能核,该装置包括:
接收模块,用于接收每个流水线阶段的功能核按照预设周期发来的负载信息;
确定模块,用于根据所述接收模块接收到的负载信息,和所述每个流水线阶段的功能核数,确定所述每个流水线阶段的功能核的负载状态;
选择模块,用于在所述确定模块确定出任一流水线阶段的任一功能核的负载状态为超负载状态,从预设的第一就绪核队列中选择第一设定个数的功能核,所述第一就绪核队列为自身根据所述任一流水线阶段的功能核发来的负载信息、所述任一流水线阶段的功能核数和预设的备用核队列中未加载所述任一流水线阶段的映像程序的功能核数,对包括有已加载所述映像程序的功能核的预设的第二就绪核队列进行更新后得到的;
添加模块,用于将所述选择模块选择出的功能核,添加到所述任一流水线阶段中。
本发明实施例的有益效果包括:
本发明实施例提供的一种多核资源的调度方法及装置,该方法应用于包括有一个管理核和多个功能核的多核系统中,此管理核执行下述流程:根据接收到的每个流水线阶段的功能核按照预设周期发来的负载信息,和每个流水线阶段的功能核数,确定每个流水线阶段的功能核的负载状态;如果确定出任一流水线阶段的任一功能核的负载状态为超负载状态,从预设的第一就绪核队列中选择第一设定个数的功能核后,添加到任一流水线阶段中。在本发明实施例中,管理核可根据各个流水线阶段的功能核周期性地上报相关负载信息,以及各流水线阶段的功能核数,来确定出各流水线阶段的功能核负载情况,这样,在确定出功能核负载较重的情况下,为其调度已加载相关映像程序的功能核,大大提高了系统的业务处理效率。
附图说明
图1为本发明实施例提供的多核资源的调度方法的流程图;
图2为本发明实施例提供的管理核确定各流水线阶段的功能核的负载状态的流程图;
图3为本发明实施例提供的管理核对备用核队列进行更新的流程图;
图4为本发明实施例提供的多核资源的调度装置的结构示意图。
具体实施方式
下面结合说明书附图,对本发明实施例提供的一种多核资源的调度方法及装置的具体实施方式进行说明。
本发明实施例提供的一种多核资源的调度方法,该方法应用于包括有一个管理核和多个功能核的多核系统中,如图1所示,该方法具体包括以下步骤:
S11:管理核根据接收到的每个流水线阶段的功能核按照预设周期发来的负载信息,和每个流水线阶段的功能核数,确定每个流水线阶段的功能核的负载状态;
S12:如果确定出任一流水线阶段的任一功能核的负载状态为超负载状态,从预设的第一就绪核队列中选择第一设定个数的功能核后,添加到任一流水线阶段中。
在本发明实施例中,对于管理核来说,还可执行下述流程:在确定出任一流水线阶段的任一功能核的负载状态为低负载状态,则停止任一流水线阶段的任一功能核的运行后,添加到第一就绪核队列中。
也就是说,在某个流水线阶段的功能核负载相对较轻时,管理核会停止该功能核上正在运行的相关任务,对其已有的负载不做任何处理,只是将其设置为休眠状态,添加到第一就绪核队列中,此时,并不对该功能核上已加载的相关影像程序进行卸载,以使得该功能核只是暂时处于休眠状态,待后续核资源紧张时再继续进行工作。
具体地,在上述步骤S11中,预设周期可根据各流水线阶段的功能核的实际运行情况来确定,例如预设周期为60秒,当然,也可以是其他数值。
进一步地,在上述步骤S11中,对于每个流水线阶段来说,负责这个流水线阶段的功能核可能有多个,也可能仅有一个,那么,在每个流水线阶段的功能核为多个的情况下,管理核具体可通过下述步骤确定出每个流水线阶段的功能核的负载状态(如图2所示):
S21:根据每个流水线阶段的核资源使用率和功能核数,计算每个流水线阶段的核资源冗余度值;
在这里,上述每个流水线阶段的核资源使用率,为每个流水线阶段的功能核的CPU平均占用率,每个功能核的CPU占用率均是各自根据监测到的网络流量统计出的;
S22:分别判断计算出的每个核资源冗余度值是否不小于第一设定阈值;若是,执行步骤S23;否则,执行步骤S24;
S23:判断每个流水线阶段的功能核的CPU平均占用率是否不大于第一设定百分比;若是,执行步骤S25;否则,执行步骤S24;
S24:判断每个流水线阶段的功能核的CPU最高占用率是否不小于第二设定百分比;若是,执行步骤S26;否则,执行步骤S27;
S25:将对应的功能核中CPU占用率最低的功能核的负载状态确定为低负载状态;
S26:将对应的功能核的负载状态确定为超负载状态;
S27:将对应的功能核的负载状态确定为正常负载状态。
需要说明的是,对于每个流水线阶段的功能核仅为一个时,管理核确定对应功能核的负载状态的流程与上述流程类似,与之不同的是,在计算该功能核的核资源冗余度值时,采用的核资源使用率是该功能核的CPU占用率。
优选地,在上述步骤S21中,管理核可具体利用下述公式D=R×(1-C),计算得到每个流水线阶段的核资源冗余度值,其中,D为每个流水线阶段的核资源冗余度值,R为每个流水线阶段的功能核数,C为每个流水线阶段的核资源使用率。
需要说明的是,上述核资源冗余度值,实际上是用于表征流水线阶段的功能核的整体使用冗余情况的参数,它的值越高,就代表着相应流水线阶段的功能核的整体冗余较多,但是,这并不意味着此流水线阶段上的低负载功能核较多,主要是因为受到上述计算公式的限制,即在此流水线阶段的功能核较多的情况下,上述公式中的C代表的是这些功能核的CPU平均占用率,这样一来,虽然计算出的核资源冗余度值较高,但平均到每个功能核之后,可能某些功能核仍处于负载较高的状态。
在这里,之所以要计算每个流水线阶段的核资源冗余度值,主要是为了通过每个流水线阶段的功能核的冗余程度,来对各流水线阶段的功能核的负载做初步评估,以便根据初步评估结果和后续相关判定条件,准确地确定出各流水线阶段的功能核的实际负载状态,以实现根据各流水线阶段的功能核的实际负载情况来完成核资源的相关调度,进而提高系统的业务处理效率。
优选地,在上述步骤S22中,上述第一设定阈值可根据各流水线阶段的功能核的实际运行情况来确定,例如,上述第一设定阈值设定为1.5,当然,也可以设定为其他数值。
优选地,在上述步骤S23中,上述第一设定百分比是用于表征确定低负载功能核的参数,仍可根据各流水线阶段的功能核的实际运行情况来确定,例如,第一设定百分比可设定为80%,当然,也可以设定为其他数值。
优选地,在上述步骤S24中,上述第二设定百分比是用于表征确定超负载功能核的参数,仍可根据各流水线阶段的功能核的实际运行情况来确定,在这种情况下,上述第二设定百分比通常大于上述第一设定百分比,例如,第二设定百分比可设定为95%,当然,也可以设定为其他数值。
具体地,在上述步骤S12中,上述第一就绪核队列,实际上是管理核根据任一流水线阶段的功能核发来的负载信息、任一流水线阶段的功能核数和预设的备用核队列中未加载任一流水线阶段的映像程序的功能核数,对包括有已加载映像程序的功能核的预设的第二就绪核队列进行更新后得到的。
也就是说,在本发明实施例中,管理核为了能够实现根据各个流水线阶段的功能核的相关负载情况,对各个流水线阶段的功能核进行调度,以提高系统的业务处理效率,在管理核侧预先配置了各个流水线阶段的就绪核队列和备用核队列,每个就绪核队列是由已加载过相应映像程序的功能核组成的队列,每个备用核队列是由未加载相应映像程序的功能核组成的队列,这样一来,后续此管理核在收到各流水线阶段的功能核上报的相关负载信息之后,会依据上述参数信息对就绪核队列中的核资源进行评估,并根据评估结果进行相应调整,以便后续进行相关核资源的调度,这样,在某个功能核的负载较重的情况下,可直接唤醒就绪核队列中的功能核,无需对没有任何映像程序的功能核进行相关加载,更进一步地提高了系统处理业务的效率。
进一步地,对于管理核来说,具体可通过下述流程得到第一就绪核队列:利用公式D=R×(1-C),计算得到任一流水线阶段的核资源冗余度值,并判断其是否不大于第二设定阈值;在判断为是时,根据备用核队列中的功能核数、任一流水线阶段的功能核数及第二设定个数,对备用核队列进行更新;在判断为否时,根据任一流水线阶段的核资源使用率、备用核队列中的功能核数、任一流水线阶段的功能核数及第二设定个数,对备用核队列进行更新;根据更新后的备用核队列中的功能核数,对第二就绪核队列进行更新后得到第一就绪核队列。
需要说明的是,管理核主要是利用上述核资源冗余度值对备用核队列中的功能核进行初步调整,以便后续与就绪核队列中的功能核进行比较,并根据比较结果进一步调整就绪核队列中的功能核,进而更好地调整某个流水线阶段的功能核,使得可以高效率的处理业务,基于此种情况,通常第二设定阈值比第一设定阈值小,例如,第二设定阈值设定为0.5,当然,也可以设定为其他数值。
更进一步地,在本发明实施例中,如图3所示,管理核可具体通过下述步骤实现对备用核队列的更新:
S31:管理核判断任一流水线阶段的核资源冗余度值是否不大于第二设定阈值;若是,执行步骤S32,否则,执行步骤S33;
S32:判断备用核队列中的功能核数是否不小于第三设定个数;若是,执行步骤S34,否则,执行步骤S35;
S33:判断任一流水线阶段的核资源使用率是否不小于第三设定百分比;若是,执行步骤S32;否则,执行步骤S34;
S34:判断任一流水线阶段的功能核数与备用核队列中的功能核数之和是否不大于第二设定个数;若是,执行步骤S36,否则,执行步骤S37;
S35:添加第四设定个数的功能核到备用核队列中;
S36:添加功能核到备用核队列中,以使添加后的备用核队列中的功能核数与第二设定个数相同,并将添加后的备用核队列作为更新后的备用核队列;
S37:将备用核队列作为更新后的备用核队列;
S38:判断任一流水线阶段的功能核数与添加后的备用核队列中的功能核数之和是否不大于第二设定个数;若是,执行步骤S39;否则,执行步骤S37;
S39:再次添加功能核到备用核队列中,以使再次添加后的备用核队列中的功能核数与第二设定个数相同,并将再次添加后的备用核队列作为更新后的备用核队列添加后的备用核队列作为更新后的备用核队列。
需要说明的是,在本发明实施例中,对于管理核来说,之所以需要执行上述一系列的步骤,主要是为了能够通过上述任一流水线阶段的功能核的冗余程度,初步对备用队列中的功能核进行调整,这样一来,后续可再根据备用队列中的功能核数,对第二就绪队列中的功能核进行调整,以使得后续上述任一流水线阶段的功能核的负载较重时,相关就绪队列中有充足的核资源可以进行调度,从而提高系统的业务处理效率。
进一步地,在管理核执行完上述一系列的步骤之后,即得到更新后的备用核队列之后,可具体通过下述流程得到第一就绪核队列:将更新后的备用核队列中的功能核数与第二就绪核队列中的功能核数进行比较,在比较出两者的功能核数相同时,将第二就绪核队列作为第一就绪核队列;在比较出前者的功能核数大于后者的功能核数时,从备用核队列中选择第五设定个数的功能核,并对选择出的功能核进行映像程序的加载后,添加到第二就绪核队列中,并将添加后的第二就绪核队列作为第一就绪核队列;在比较出前者的功能核数小于后者的功能核数时,从第二就绪核队列中选择第六设定个数的功能核,并对选择出的功能核进行映像程序的卸载,并将卸载后的第二就绪核队列作为第一就绪核队列。这样,管理核可根据备用核队列中的功能核数,对第二就绪核队列中的功能核数进行适当调整,以便后续进行核资源的调度。
需要说明的是,在本发明实施例中,上述第一设定个数、第二设定个数、第三设定个数、第四设定个数、第五设定个数、第六设定个数和第三设定百分比均可根据各流水线阶段的功能核的实际运行情况来确定,前述这些设定个数可以设定为相同数值,也可以设定为不同数值;例如第三设定百分比仍可设定为80%,当然,也可以是其他数值。
下面结合具体实施例对上述多核资源的调度方法进行详细说明:
假设管理核正在处理IP报文,接收到报文接收流水线阶段的功能核1、功能核2、和功能核3发来的CPU占用率,分别为75%、80%和96%;假设备用核队列中的功能核数为2个,第一设定个数为3个,第二设定个数为6个,第三设定个数为1个,第五设定个数为2个,第二就绪核队列中的功能核数为3个,第一设定阈值为1.5,第二设定阈值为0.5,第二设定百分比为95%,第三设定百分比为80%。
那么,管理核在收到这3个核发来的CPU占用率之后,会先计算出此报文接收流水线阶段的核资源冗余值(即0.48),可见,此核资源冗余值小于0.5,再将3个功能核的CPU平均占用率(即83.7%)与80%进行比较,得出83.7%是大于80%的,再比较备用核队列中的功能核数和第三设定个数,得出备用核队列中的功能核数(即2个)是大于第三设定个数(即1个)的,此时,再将备用核队列中的功能核数与接收处理阶段的功能核数之和(即5个),与第二设定个数(即6个)进行比较,得出备用核队列中的功能核数与接收处理阶段的功能核数之和小于第二设定个数,在这种情况下,向备用核队列中添加一个功能核,即备用核队列中的功能核当前是6个。
之后,再将此6个功能核与第二就绪核队列中的功能核数(即3个)进行比较,得出更新后的备用核队列中的功能核数是大于第二就绪核队列中的功能核数的,这时,从6个功能核数中选出2个功能核,对其进行报文接收流水线阶段的映像程序的加载,然后添加到第二就绪核队列中,此时,第一就绪核队列即为更新后的第二就绪核队列(即当前第一就绪核队列中有6个功能核)。
接下来,再将核资源冗余度值(即0.48)与第一设定阈值(即1.5)进行比较,得出核资源冗余度值小于第一设定阈值,进一步判断这3个功能核中最高的CPU占用率(即96%)是否大于第二设定百分比(即95%),得出功能核3处于超负载状态,这时,从第一就绪核队列中选择3个添加到报文接收流水线阶段,即唤醒选择出的这3个功能核,根据对功能核状态的判定,及时调度核资源,提高了报文接收流水线阶段的处理效率。
基于同一发明构思,本发明实施例还提供了一种多核资源的调度装置,由于该装置所解决问题的原理与前述多核资源的调度方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种多核资源的调度装置,该装置位于多核系统中,且多核系统还包括多个功能核,如图4所示,该装置具体包括:
接收模块41,用于接收每个流水线阶段的功能核按照预设周期发来的负载信息;
确定模块42,用于根据接收模块41接收到的负载信息,和每个流水线阶段的功能核数,确定每个流水线阶段的功能核的负载状态;
选择模块43,用于在确定模块42确定出任一流水线阶段的任一功能核的负载状态为超负载状态,从预设的第一就绪核队列中选择第一设定个数的功能核;
在这里,上述第一就绪核队列为装置根据任一流水线阶段的功能核发来的负载信息、任一流水线阶段的功能核数和预设的备用核队列中未加载任一流水线阶段的映像程序的功能核数,对包括有已加载映像程序的功能核的预设的第二就绪核队列进行更新后得到的;
添加模块44,用于将选择模块43选择出的功能核,添加到任一流水线阶段中。
优选地,上述装置,还包括停止模块45,
上述停止模块45,用于在确定模块42确定出任一流水线阶段的任一功能核的负载状态为低负载状态时,停止任一流水线阶段的任一功能核的运行;
上述添加模块44,还用于在停止模块45停止任一流水线阶段的任一功能核的运行后,将其添加到第一就绪核队列中。
优选地,上述确定模块42,具体用于根据每个流水线阶段的核资源使用率和功能核数,计算对应每个流水线阶段的核资源冗余度值;在判断出计算出的每个核资源冗余度值不小于第一设定阈值时,确定每个流水线阶段的功能核为多个,并判断对应的功能核的CPU平均占用率是否不大于第一设定百分比,在判断为是时,将对应的功能核中CPU占用率最低的功能核的负载状态确定为低负载状态;在判断为否,且每个流水线阶段的功能核中存在CPU占用率不小于第二设定百分比的功能核时,将对应的功能核的负载状态确定为超负载状态;在判断出计算出的每个核资源冗余度值小于第一设定阈值时,在每个流水线阶段的功能核为一个、且对应的CPU占用率不小于第二设定百分比时,将对应的功能核的负载状态确定为超负载状态;在每个流水线阶段的功能核为多个、且存在CPU占用率不小于第二设定百分比的功能核时,将对应的功能核的负载状态确定为超负载状态;
在这里,上述每个流水线阶段的核资源使用率为每个流水线阶段的功能核仅为一个时,对应功能核的CPU占用率,或者为每个流水线阶段的功能核为多个时,对应功能核的CPU平均占用率。
优选地,上述确定模块42,具体用于通过下述公式D=R×(1-C),计算得到每个流水线阶段的核资源冗余度值,其中,D为每个流水线阶段的核资源冗余度值,R为每个流水线阶段的功能核数,C为每个流水线阶段的核资源使用率。
优选地,上述装置,还包括:
更新模块46,用于判断任一流水线阶段的核资源冗余度值是否不大于第二设定阈值;在判断为是时,根据备用核队列中的功能核数、任一流水线阶段的功能核数及第二设定个数,对备用核队列进行更新;在判断为否时,根据任一流水线阶段的核资源使用率、备用核队列中的功能核数、任一流水线阶段的功能核数及第二设定个数,对备用核队列进行更新;以及根据更新后的备用核队列中的功能核数,对第二就绪核队列进行更新,得到第一就绪核队列。在这里,上述第二设定阈值小于第一设定阈值。
优选地,上述更新模块46,具体用于执行下述指定操作:判断备用核队列中的功能核数是否不小于第三设定个数;若是,判断任一流水线阶段的功能核数与备用核队列中的功能核数之和是否不大于第二设定个数,在判断为是时,添加功能核到备用核队列中,以使添加后的备用核队列中的功能核数与第二设定个数相同,并将添加后的备用核队列作为更新后的备用核队列;在判断为否时,将备用核队列作为更新后的备用核队列;否则,添加第四设定个数的功能核到备用核队列中,并判断任一流水线阶段的功能核数与添加后的备用核队列中的功能核数之和是否不大于第二设定个数,在判断为是时,再次添加功能核到备用核队列中,以使再次添加后的备用核队列中的功能核数与第二设定个数相同;在判断为否时,将备用核队列作为更新后的备用核队列;判断任一流水线阶段的核资源使用率是否不小于第三设定百分比,并在判断为是时,执行指定操作;在判断为否时,判断任一流水线阶段的功能核数与备用核队列中的功能核数之和是否不大于第二设定个数,在判断为是时,添加功能核到备用核队列中,以使添加后的备用核队列中的功能核数与第二设定个数相同,并将添加后的备用核队列作为更新后的备用核队列;在判断为否时,将备用核队列作为更新后的备用核队列;在比较出更新后的备用核队列中的功能核数,与第二就绪核队列中的功能核数相同时,将第二就绪核队列作为第一就绪核队列;在比较出更新后的备用核队列中的功能核数,大于第二就绪核队列中的功能核数时,从备用核队列中选择第四设定个数的功能核,并对选择出的功能核进行映像程序的加载后,添加到第二就绪核队列中,并将添加后的第二就绪核队列作为第一就绪核队列;以及在比较出更新后的备用核队列中的功能核数,小于第二就绪核队列中的功能核数时,从第二就绪核队列中选择第五设定个数的功能核,并对选择出的功能核进行映像程序的卸载,并将卸载后的第二就绪核队列作为第一就绪核队列。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种多核资源的调度方法,其特征在于,该方法应用于包括有一个管理核和多个功能核的多核系统中,该方法包括:
所述管理核根据接收到的每个流水线阶段的功能核按照预设周期发来的负载信息,和所述每个流水线阶段的功能核数,确定所述每个流水线阶段的功能核的负载状态;
如果确定出任一流水线阶段的任一功能核的负载状态为超负载状态,从预设的第一就绪核队列中选择第一设定个数的功能核后,添加到所述任一流水线阶段中,所述第一就绪核队列为自身根据所述任一流水线阶段的功能核发来的负载信息、所述任一流水线阶段的功能核数和预设的备用核队列中未加载所述任一流水线阶段的映像程序的功能核数,对包括有已加载所述映像程序的功能核的预设的第二就绪核队列进行更新后得到的。
2.如权利要求1所述的方法,其特征在于,还包括:
如果所述管理核确定出任一流水线阶段的任一功能核的负载状态为低负载状态,则停止所述任一流水线阶段的任一功能核的运行后,添加到所述第一就绪核队列中。
3.如权利要求1或2所述的方法,其特征在于,所述管理核通过下述方式确定所述每个流水线阶段的功能核的负载状态:
根据所述每个流水线阶段的核资源使用率和功能核数,计算对应所述每个流水线阶段的核资源冗余度值,所述每个流水线阶段的核资源使用率为所述每个流水线阶段的功能核仅为一个时,对应功能核的CPU占用率,或者为所述每个流水线阶段的功能核为多个时,对应功能核的CPU平均占用率;
分别判断计算出的每个核资源冗余度值是否不小于第一设定阈值;
若是,确定所述每个流水线阶段的功能核为多个,并判断对应的功能核的CPU平均占用率是否不大于第一设定百分比,在判断为是时,将对应的功能核中CPU占用率最低的功能核的负载状态确定为低负载状态;在判断为否,且所述每个流水线阶段的功能核中存在CPU占用率不小于第二设定百分比的功能核时,将对应的功能核的负载状态确定为超负载状态;
否则,在所述每个流水线阶段的功能核为一个、且对应的CPU占用率不小于所述第二设定百分比时,将对应的功能核的负载状态确定为超负载状态;在所述每个流水线阶段的功能核为多个、且存在CPU占用率不小于所述第二设定百分比的功能核时,将对应的功能核的负载状态确定为超负载状态。
4.如权利要求3所述的方法,其特征在于,所述管理核通过公式D=R×(1-C),计算得到所述每个流水线阶段的核资源冗余度值,其中,D为所述每个流水线阶段的核资源冗余度值,R为所述每个流水线阶段的功能核数,C为所述每个流水线阶段的核资源使用率。
5.如权利要求4所述的方法,其特征在于,所述管理核通过下述方式得到所述第一就绪核队列:
所述管理核判断所述任一流水线阶段的核资源冗余度值是否不大于第二设定阈值,所述第二设定阈值小于所述第一设定阈值;
若是,根据所述备用核队列中的功能核数、所述任一流水线阶段的功能核数及第二设定个数,对所述备用核队列进行更新;
否则,根据所述任一流水线阶段的核资源使用率、所述备用核队列中的功能核数、所述任一流水线阶段的功能核数及所述第二设定个数,对所述备用核队列进行更新;
根据更新后的备用核队列中的功能核数,对所述第二就绪核队列进行更新,得到所述第一就绪核队列。
6.如权利要求5所述的方法,其特征在于,所述管理核根据所述备用核队列中的功能核数、所述任一流水线阶段的功能核数及第二设定个数,对所述备用核队列进行更新,具体包括:
所述管理核执行下述指定操作:
判断所述备用核队列中的功能核数是否不小于第三设定个数;
若是,判断所述任一流水线阶段的功能核数与所述备用核队列中的功能核数之和是否不大于所述第二设定个数,在判断为是时,添加功能核到所述备用核队列中,以使添加后的备用核队列中的功能核数与所述第二设定个数相同,并将添加后的备用核队列作为更新后的备用核队列;在判断为否时,将所述备用核队列作为更新后的备用核队列;
否则,添加第四设定个数的功能核到所述备用核队列中,并判断所述任一流水线阶段的功能核数与添加后的备用核队列中的功能核数之和是否不大于所述第二设定个数,在判断为是时,再次添加功能核到所述备用核队列中,以使再次添加后的备用核队列中的功能核数与所述第二设定个数相同,并将再次添加后的备用核队列作为更新后的备用核队列;在判断为否时,将所述备用核队列作为更新后的备用核队列;
所述管理核根据所述任一流水线阶段的核资源使用率、所述备用核队列中的功能核数、所述任一流水线阶段的功能核数及所述第二设定数值,对所述备用核队列进行更新,具体包括:
所述管理核判断所述任一流水线阶段的核资源使用率是否不小于第三设定百分比,并在判断为是时,执行所述指定操作;
在判断为否时,判断所述任一流水线阶段的功能核数与所述备用核队列中的功能核数之和是否不大于所述第二设定个数,在判断为是时,添加功能核到所述备用核队列中,以使添加后的备用核队列中的功能核数与所述第二设定个数相同,并将添加后的备用核队列作为更新后的备用核队列;在判断为否时,将所述备用核队列作为更新后的备用核队列;
所述管理核根据更新后的备用核队列中的功能核数,对所述第二就绪核队列进行更新,得到所述第一就绪核队列,具体包括:
如果比较出所述更新后的备用核队列中的功能核数,与所述第二就绪核队列中的功能核数相同,则将所述第二就绪核队列作为所述第一就绪核队列;
如果比较出所述更新后的备用核队列中的功能核数,大于所述第二就绪核队列中的功能核数,则从所述备用核队列中选择第五设定个数的功能核,并对选择出的功能核进行所述映像程序的加载后,添加到所述第二就绪核队列中,并将添加后的第二就绪核队列作为所述第一就绪核队列;
如果比较出所述更新后的备用核队列中的功能核数,小于所述第二就绪核队列中的功能核数,则从所述第二就绪核队列中选择第六设定个数的功能核,并对选择出的功能核进行所述映像程序的卸载,将卸载后的第二就绪核队列作为所述第一就绪核队列。
7.一种多核资源的调度装置,其特征在于,所述装置位于多核系统中,且所述多核系统还包括多个功能核,该装置包括:
接收模块,用于接收每个流水线阶段的功能核按照预设周期发来的负载信息;
确定模块,用于根据所述接收模块接收到的负载信息,和所述每个流水线阶段的功能核数,确定所述每个流水线阶段的功能核的负载状态;
选择模块,用于在所述确定模块确定出任一流水线阶段的任一功能核的负载状态为超负载状态,从预设的第一就绪核队列中选择第一设定个数的功能核,所述第一就绪核队列为所述装置根据所述任一流水线阶段的功能核发来的负载信息、所述任一流水线阶段的功能核数和预设的备用核队列中未加载所述任一流水线阶段的映像程序的功能核数,对包括有已加载所述映像程序的功能核的预设的第二就绪核队列进行更新后得到的;
添加模块,用于将所述选择模块选择出的功能核,添加到所述任一流水线阶段中。
8.如权利要求7所述的装置,其特征在于,所述装置,还包括停止模块,
所述停止模块,用于在所述确定模块确定出任一流水线阶段的任一功能核的负载状态为低负载状态时,停止所述任一流水线阶段的任一功能核的运行;
所述添加模块,还用于在所述停止模块停止所述任一流水线阶段的任一功能核的运行后,将其添加到所述第一就绪核队列中。
9.如权利要求7或8所述的装置,其特征在于,所述确定模块,具体用于根据所述每个流水线阶段的核资源使用率和功能核数,计算对应所述每个流水线阶段的核资源冗余度值;在判断出计算出的每个核资源冗余度值不小于第一设定阈值时,确定所述每个流水线阶段的功能核为多个,并判断对应的功能核的CPU平均占用率是否不大于第一设定百分比,在判断为是时,将对应的功能核中CPU占用率最低的功能核的负载状态确定为低负载状态;在判断为否,且所述每个流水线阶段的功能核中存在CPU占用率不小于第二设定百分比的功能核时,将对应的功能核的负载状态确定为超负载状态;在判断出计算出的每个核资源冗余度值小于第一设定阈值时,在所述每个流水线阶段的功能核为一个、且对应的CPU占用率不小于所述第二设定百分比时,将对应的功能核的负载状态确定为超负载状态;在所述每个流水线阶段的功能核为多个、且存在CPU占用率不小于所述第二设定百分比的功能核时,将对应的功能核的负载状态确定为超负载状态,所述每个流水线阶段的核资源使用率为所述每个流水线阶段的功能核仅为一个时,对应功能核的CPU占用率,或者为所述每个流水线阶段的功能核为多个时,对应功能核的CPU平均占用率。
10.如权利要求9所述的装置,其特征在于,所述确定模块,具体用于通过公式D=R×(1-C),计算得到所述每个流水线阶段的核资源冗余度值,其中,D为所述每个流水线阶段的核资源冗余度值,R为所述每个流水线阶段的功能核数,C为所述每个流水线阶段的核资源使用率。
11.如权利要求10所述的装置,其特征在于,所述装置,还包括:
更新模块,用于判断所述任一流水线阶段的核资源冗余度值是否不大于第二设定阈值;在判断为是时,根据所述备用核队列中的功能核数、所述任一流水线阶段的功能核数及第二设定个数,对所述备用核队列进行更新;在判断为否时,根据所述任一流水线阶段的核资源使用率、所述备用核队列中的功能核数、所述任一流水线阶段的功能核数及所述第二设定个数,对所述备用核队列进行更新;以及根据更新后的备用核队列中的功能核数,对所述第二就绪核队列进行更新,得到所述第一就绪核队列,所述第二设定阈值小于所述第一设定阈值。
12.如权利要求11所述的装置,其特征在于,所述更新模块,具体用于执行下述指定操作:判断所述备用核队列中的功能核数是否不小于第三设定个数;若是,判断所述任一流水线阶段的功能核数与所述备用核队列中的功能核数之和是否不大于所述第二设定个数,在判断为是时,添加功能核到所述备用核队列中,以使添加后的备用核队列中的功能核数与所述第二设定个数相同,并将添加后的备用核队列作为更新后的备用核队列;在判断为否时,将所述备用核队列作为更新后的备用核队列;否则,添加第四设定个数的功能核到所述备用核队列中,并判断所述任一流水线阶段的功能核数与添加后的备用核队列中的功能核数之和是否不大于所述第二设定个数,在判断为是时,再次添加功能核到所述备用核队列中,以使再次添加后的备用核队列中的功能核数与所述第二设定个数相同;在判断为否时,将所述备用核队列作为更新后的备用核队列;判断所述任一流水线阶段的核资源使用率是否不小于第三设定百分比,并在判断为是时,执行所述指定操作;在判断为否时,判断所述任一流水线阶段的功能核数与所述备用核队列中的功能核数之和是否不大于所述第二设定个数,在判断为是时,添加功能核到所述备用核队列中,以使添加后的备用核队列中的功能核数与所述第二设定个数相同,并将添加后的备用核队列作为更新后的备用核队列;在判断为否时,将所述备用核队列作为更新后的备用核队列;在比较出所述更新后的备用核队列中的功能核数,与所述第二就绪核队列中的功能核数相同时,将所述第二就绪核队列作为所述第一就绪核队列;在比较出所述更新后的备用核队列中的功能核数,大于所述第二就绪核队列中的功能核数时,从所述备用核队列中选择第五设定个数的功能核,并对选择出的功能核进行所述映像程序的加载后,添加到所述第二就绪核队列中,并将添加后的第二就绪核队列作为所述第一就绪核队列;以及在比较出所述更新后的备用核队列中的功能核数,小于所述第二就绪核队列中的功能核数时,从所述第二就绪核队列中选择第六设定个数的功能核,并对选择出的功能核进行所述映像程序的卸载,并将卸载后的第二就绪核队列作为所述第一就绪核队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410009967.6A CN103744735B (zh) | 2014-01-09 | 2014-01-09 | 一种多核资源的调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410009967.6A CN103744735B (zh) | 2014-01-09 | 2014-01-09 | 一种多核资源的调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103744735A CN103744735A (zh) | 2014-04-23 |
CN103744735B true CN103744735B (zh) | 2017-07-25 |
Family
ID=50501755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410009967.6A Active CN103744735B (zh) | 2014-01-09 | 2014-01-09 | 一种多核资源的调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103744735B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656780B (zh) * | 2017-02-28 | 2020-07-28 | 中国联合网络通信集团有限公司 | 虚拟网关的数据配置方法及装置 |
CN108259374B (zh) * | 2017-08-24 | 2019-07-09 | 新华三信息安全技术有限公司 | 一种多核处理器及报文处理方法 |
CN107423454B (zh) * | 2017-09-22 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统中文件锁的处理方法、装置及设备 |
CN109165045A (zh) * | 2018-08-09 | 2019-01-08 | 网宿科技股份有限公司 | 一种调整服务器的硬件配置的方法和装置 |
CN114546926B (zh) * | 2020-11-24 | 2023-08-08 | 北京灵汐科技有限公司 | 核心簇同步、控制方法、数据处理方法、核心、设备、介质 |
CN114610578B (zh) * | 2022-03-17 | 2023-12-29 | 飞腾信息技术有限公司 | 一种资源状态管理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101495A (en) * | 1994-11-16 | 2000-08-08 | Hitachi, Ltd. | Method of executing partition operations in a parallel database system |
CN101146089A (zh) * | 2007-08-22 | 2008-03-19 | 杭州华三通信技术有限公司 | 在多核系统上配置核资源的方法、多核系统及管理核 |
CN101788920A (zh) * | 2010-02-05 | 2010-07-28 | 北京航空航天大学 | 一种基于处理器分区技术的cpu虚拟化方法 |
CN102662761A (zh) * | 2012-03-27 | 2012-09-12 | 福建星网锐捷网络有限公司 | 一种多核中央处理器系统中内存池的调度方法以及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013178592A (ja) * | 2010-05-06 | 2013-09-09 | Hitachi Ltd | 情報処理システムの運用管理装置および運用管理方法 |
-
2014
- 2014-01-09 CN CN201410009967.6A patent/CN103744735B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101495A (en) * | 1994-11-16 | 2000-08-08 | Hitachi, Ltd. | Method of executing partition operations in a parallel database system |
CN101146089A (zh) * | 2007-08-22 | 2008-03-19 | 杭州华三通信技术有限公司 | 在多核系统上配置核资源的方法、多核系统及管理核 |
CN101788920A (zh) * | 2010-02-05 | 2010-07-28 | 北京航空航天大学 | 一种基于处理器分区技术的cpu虚拟化方法 |
CN102662761A (zh) * | 2012-03-27 | 2012-09-12 | 福建星网锐捷网络有限公司 | 一种多核中央处理器系统中内存池的调度方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103744735A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744735B (zh) | 一种多核资源的调度方法及装置 | |
CN104468407B (zh) | 实现业务平台资源弹性分配的方法与装置 | |
Yuan et al. | CAWSAC: Cost-aware workload scheduling and admission control for distributed cloud data centers | |
CN103812949B (zh) | 一种面向实时云平台的任务调度与资源分配方法及系统 | |
WO2023011157A1 (zh) | 业务处理方法、装置、服务器、存储介质和计算机程序产品 | |
US20160170469A1 (en) | Power balancing to increase workload density and improve energy efficiency | |
CN103931262B (zh) | 一种数据调度方法和设备 | |
CN108345501A (zh) | 一种分布式资源调度方法和系统 | |
CN102262567A (zh) | 虚拟机调度决策的系统、平台及方法 | |
CN105656973A (zh) | 一种分布式节点组内任务调度方法及系统 | |
CN103401947A (zh) | 多个服务器的任务分配方法和装置 | |
CN104619029B (zh) | 一种集中式蜂窝网络架构下的基带池资源分配方法和装置 | |
CN103699447A (zh) | 一个基于云计算的视频会议的转码分发系统 | |
El Khoury et al. | Energy-aware placement and scheduling of network traffic flows with deadlines on virtual network functions | |
CN113641417B (zh) | 一种基于分支定界法的车辆安全任务卸载方法 | |
CN112261120B (zh) | 一种配电物联网云边协同任务卸载方法及装置 | |
CN102185726B (zh) | 一种提高信息栅格系统中的业务资源管理能力的方法 | |
CN116302578A (zh) | 一种QoS约束的流应用延迟确保方法及系统 | |
CN108737268B (zh) | 软件定义工业物联网资源调度方法 | |
CN109597378A (zh) | 一种资源受限混合任务能耗感知方法 | |
CN109933433B (zh) | 一种gpu资源调度系统及其调度方法 | |
CN113590294B (zh) | 一种自适应的和规则制导的分布式调度方法 | |
CN113822485B (zh) | 一种配电网调度任务优化方法及系统 | |
Sarvabhatla et al. | A network aware energy efficient offloading algorithm for mobile cloud computing over 5g network | |
CN117149382A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee after: RUIJIE NETWORKS Co.,Ltd. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |