数据中心资源分配方法、装置及系统
技术领域
本发明实施例涉及云计算技术,尤其涉及一种数据中心资源分配方法、装置及系统。
背景技术
近年来,片上多核架构取得了长足的进步,例如云计算,其以片上多核架构提供的强大计算能力为基础,开始成为众多厂商信息技术基础设施的第一选择。
目前各种业务应用中,既包括无服务质量(Quality of Service,简称QoS)要求的业务应用,也包括有QoS要求的业务应用。对于每个业务应用来说,其可以分成一个或者多个任务。因此,基于片上多核架构的多核芯片,这些任务可以被分配到多核芯片上的各个处理器核上进行处理。然而,由于多核芯片上的各个处理器核不是完全独立的,它们之间会共享各种资源,例如最后一级缓存、数据预取器和内存控制器等资源。这种资源共享的方式,将导致运行在同一个多核芯片上的任务之间相互影响,有QoS要求的任务会因为其它有QoS要求和没有QoS要求的任务对共享资源的竞争而难以保证其QoS要求。为此,现有技术将有QoS要求的任务运行在不同的多核芯片上以避免共享资源的竞争,但是这种方式导致每个多核芯片的资源利用率下降。
发明内容
本发明实施例提供一种数据中心资源分配方法、装置及系统,以解决现有技术中当将一个任务分配到一个多核芯片上时,造成该多核芯片上已经处理的有QoS要求的任务的QoS不能保证的问题,实现了为任务分配资源后能够保证各有QoS要求的任务的QoS,并且同时提高了多核芯片的资源利用率。
第一方面,本发明实施例提供一种数据中心资源分配方法,包括:
在为第一任务分配数据中心资源时,确定将第一数据中心资源分配给所述第一任务后,所述第一任务的服务质量QoS以及正在多核芯片上处理的任务的QoS是否均能够保证,所述第一数据中心资源为所述多核芯片的处理器资源,所述数据中心资源包含所述第一数据中心资源;
若均能够保证,则将所述数据中心资源分配给所述第一任务。
在第一方面的第一种可能的实现方式中,所述确定将第一数据中心资源分配给所述第一任务后,所述第一任务的服务质量QoS以及正在多核芯片上处理的任务的QoS是否均能够保证,包括:
确定将第一数据中心资源分配给所述第一任务后所述第一任务运行时所需的第一共享资源;
根据所述第一任务运行时所需的第一共享资源以及正在所述多核芯片上处理的任务占用的共享资源,确定将所述第一数据中心资源分配给所述第一任务之后,所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS;
如果所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS能够达到各任务所需保证的QoS,则所述各任务的QoS均能够保证。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述确定将第一数据中心资源分配给所述第一任务后所述第一任务运行时所需的第一共享资源,包括:
将第一数据中心资源分配给所述第一任务,获取所述第一任务对应的任务特征向量,所述任务特征向量用于描述所述第一共享资源;
所述根据所述第一任务所需的第一共享资源以及正在所述多核芯片上处理的任务占用的共享资源,确定将所述第一共享资源分配给所述第一任务之后,所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS,包括:
根据所述第一任务对应的任务特征向量以及所述多核芯片上正在处理的任务对应的任务特征向量,计算所述各任务对应的QoS保证函数值;其中,所述多核芯片上正在处理的任务对应的任务特征向量通过离线测试方法来获取,所述QoS保证函数值为运行在所述多核芯片上的一个任务的QoS随着运行在该多核芯片上的除所述一个任务之外的其它任务的增加或减少而变化的函数。
根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述如果所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS能够达到各任务所需保证的QoS,则所述各任务的QoS均能够保证,包括:
如果所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS保证函数值大于或等于所述各任务对应的QoS保证值,则所述各任务的QoS均能够保证。
根据第一方面、第一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,在所述为第一任务分配数据中心资源之前,所述方法还包括:
发送数据中心资源分配请求,所述数据中心资源分配请求中包含应用所需的数据中心资源描述信息,其中,所述应用包含所述第一任务;
接收为所述应用的各任务分配的数据中心资源。
根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述数据中心资源分配请求中还包含资源分配偏好信息;
所述资源分配偏好信息用于指示所述应用不能使用的所述数据中心资源,和/或,用于指示所述应用能够使用的所述数据中心资源。
根据第一方面的第四种或第五种可能的实现方式,在第六种可能的实现方式中,还包括:
若所述第一任务的QoS或正在所述多核芯片上处理的任务的QoS中至少有一个任务的QoS不能够保证,则将所述数据中心资源退还。
根据第一方面,第一方面的第一种至第六种可能的实现方式的任意一种,在第七种可能的实现方式中,所述数据中心资源,包括:处理器资源和/或内存资源。
第二方面,本发明实施例提供一种数据中心资源分配装置,包括:服务质量QoS保证判断模块,用于在为第一任务分配数据中心资源时,确定将第一数据中心资源分配给所述第一任务后,所述第一任务的QoS以及正在多核芯片上处理的任务的QoS是否均能够保证,所述第一数据中心资源为所述多核芯片的处理器资源,所述数据中心资源包含所述第一数据中心资源;
数据中心资源分配模块,用于若均能够保证,则将所述数据中心资源分配给所述第一任务。
在第二方面的第一种可能的实现方式中,所述QoS保证判断模块,包括:
第一共享资源确定单元,用于确定将第一数据中心资源分配给所述第一任务后所述第一任务运行时所需的第一共享资源;
QoS确定单元,用于根据所述第一任务运行时所需的第一共享资源以及正在所述多核芯片上处理的任务占用的共享资源,确定将所述第一数据中心资源分配给所述第一任务之后,所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS;
QoS保证单元,用于如果所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS能够达到各任务所需保证的QoS,则所述各任务的QoS均能够保证。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一共享资源确定单元,具体用于将第一数据中心资源分配给所述第一任务,获取所述第一任务对应的任务特征向量,所述任务特征向量用于描述所述第一共享资源;
所述QoS确定单元,具体用于根据所述第一任务对应的任务特征向量以及正在所述多核芯片上处理的任务对应的任务特征向量,计算各任务对应的QoS保证函数值;其中,所述多核芯片上正在处理的任务对应的任务特征向量通过离线测试方法来获取,所述QoS保证函数值为运行在所述多核芯片上的一个任务的QoS随着运行在该多核芯片上的除所述一个任务之外的其它任务的增加或减少而变化的函数值。
根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述QoS保证单元具体用于如果所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS保证函数值大于或等于各任务对应的QoS保证值,则所述各任务的QoS均能够保证。
根据第二方面、第二方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述装置还包括:
数据中心资源申请模块,用于发送数据中心资源分配请求,所述数据中心资源分配请求中包含应用所需的数据中心资源描述信息,其中,所述应用包含所述第一任务;
接收为所述应用的各任务分配的数据中心资源。
根据第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述数据中心资源分配请求中还包含资源分配偏好信息;
所述资源分配偏好信息用于指示所述应用不能使用的数据中心资源,和/或,用于指示所述应用能够使用的所述数据中心资源。
根据第二方面的第四种或第五种可能的实现方式,在第六种可能的实现方式中,所述数据中心资源申请模块还用于若所述第一任务的QoS或正在所述多核芯片上处理的任务的QoS中至少有一个任务的QoS不能够保证,则将所述数据中心资源退还。
根据第二方面,第二方面的第一种至第六种可能的实现方式的任意一种,在第七种可能的实现方式中,所述数据中心资源,包括:处理器资源和/或内存资源。
第三方面,本发明实施例提供一种数据中心资源分配系统,包括:多核芯片和数据中心资源管理设备,所述数据中心资源管理设备包括上述任一项所述的装置。
本发明实施例数据中心资源分配方法、装置及系统,通过在为第一任务分配数据中心资源时,只有确定将第一数据中心资源分配给第一任务,第一任务的QoS以及正在多核芯片上处理的任务的QoS均能够保证的前提下,才将数据中心资源分配给第一任务,从而可以解决现有技术中当将一个任务分配到一个多核芯片上时,造成该多核芯片上已经处理的有QoS要求的任务的QoS以及该任务自身的QoS不能保证的问题。由于本实施例能够保证分配到多核芯片上的全部任务的QoS,因此,本实施例不必将有QoS要求的任务和没有QoS要求的任务分别分配到不同的多核芯片上,而是允许在一个多核芯片上进行处理,因此还可以提高多核芯片的资源利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的数据中心资源分配方法的流程图;
图2为本发明实施例二所提供的数据中心资源分配方法的流程图;
图3为本发明实施例三所提供的数据中心资源分配方法的流程图;
图4为本发明实施例四所提供的一种由少到多的数据中心资源分配的流程图;
图5为本发明实施例五所提供的数据中心资源分配装置的结构示意图;
图6为本发明实施例六所提供的数据中心资源分配装置的结构示意图;
图7为本发明实施例七所提供的数据中心资源分配装置的结构示意图;
图8为本发明实施例八所提供的数据中心资源分配系统的结构示意图;
图9为本发明实施例九所提供的数据中心资源分配方法的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一所提供的数据中心资源分配方法的流程图。本实施例的方法适用于在保证片上多核架构的多核芯片上已经处理的有QoS要求的任务的QoS和需要分配任务的QoS的前提下,为任务分配数据中心资源的情况。该方法由配置在计算机中的数据中心资源分配装置执行,该装置通常以硬件和/或软件的方式来实现。本实施例的方法包括如下步骤:
步骤110、在为第一任务分配数据中心资源时,确定将第一数据中心资源分配给第一任务后,第一任务的服务质量QoS以及正在多核芯片上处理的任务的QoS是否均能够保证,第一数据中心资源为多核芯片的处理器资源,数据中心资源包含第一数据中心资源。
在步骤110中,在为第一任务分配数据中心资源之前,需要判断将第一数据中心资源分配给第一任务,第一任务的QoS以及正在多核芯片上处理的任务的QoS是否均能够保证,对于第一任务是无QoS要求的任务,则视为任何情况下第一任务的QoS要求都能得到满足。
步骤120、若均能够保证,则将数据中心资源分配给第一任务。
在步骤120中,如果第一任务的QoS以及正在多核芯片上处理的任务的QoS均能够保证,则将数据中心资源分配给第一任务。
具体的,在为第一任务分配数据中心资源之前,需要判断将第一数据中心资源分配给第一任务,第一任务的QoS以及正在多核芯片上处理的任务的QoS是否均能够保证。只有当第一任务的QoS以及正在多核芯片上处理的任务的QoS均能够保证的情况下,才将数据中心资源分配给第一任务。
需要说明的是,对于第一任务以及正在多核芯片上处理的任务来说,如果一个任务没有QoS要求,则该任务可以被认为不管在该多核芯片上如何分配资源,其自身的QoS总能得到保证。
本实施例中的数据中心资源,例如可以是处理器资源、内存资源或者两者的组合。
本实施例提供的数据中心资源分配方法,在为第一任务分配数据中心资源时,只有确定将第一数据中心资源分配给第一任务,第一任务的QoS以及正在多核芯片上处理的任务的QoS均能够保证的前提下,才将数据中心资源分配给第一任务,从而可以解决现有技术中当将一个任务分配到一个多核芯片上时,造成该多核芯片上已经处理的有QoS要求的任务的QoS以及该任务自身的QoS不能保证的问题。由于本实施例能够保证分配到多核芯片上的全部任务的QoS,因此,本实施例不必将有QoS要求的任务和没有QoS要求的任务分别分配到不同的多核芯片上,而是允许在一个多核芯片上进行处理,因此还可以提高多核芯片的资源利用率。
实施例二
本实施例以上述实施例一为基础,进一步进行了优化。图2为本发明实施例二所提供的数据中心资源分配方法的流程图。参照图2,本实施例的方法可以包括:
步骤210、确定将第一数据中心资源分配给第一任务后第一任务运行时所需的第一共享资源。
举例来说,第一任务运行时所需的第一共享资源可以采用下述方式得到:
将第一数据中心资源分配给第一任务,获取第一任务对应的任务特征向量,该任务特征向量可以用于描述第一共享资源。
在具体实现时,该任务特征向量可以是多核芯片处理任务时,该任务对共享资源的需求。任务特征向量是为了量化每个任务的特征。任务特征向量是指处理一任务时该任务对共享资源的需求特征,这些共享资源包括但不限于共享的缓存,共享的预取器,共享的带宽,共享的内存,共享的IO设备等。任务特征向量可以描述为Ci(ci1,ci2,...,cif)(i=1,...,k),其中Ci是指第i个任务的任务特征向量,Cif是指第i个任务在第f类共享资源上的特征。任务特征向量可以通过离线测试的方法获取。
步骤220、根据第一任务运行时所需的第一共享资源以及正在多核芯片上处理的任务占用的共享资源,确定将第一数据中心资源分配给第一任务之后,第一任务以及正在多核芯片上处理的任务所能达到的QoS。
举例来说,各任务所能达到的QoS可以采用如下方式得到:
根据第一任务对应的任务特征向量以及正在多核芯片上处理的任务对应的任务特征向量,计算获取各任务对应的QoS保证函数值,各任务的QoS保证函数值即为各任务所能达到的QoS。其中,QoS保证函数为运行在多核芯片上的一个任务的QoS随着运行在该多核芯片上的其它任务的变化而变化的函数。
在具体实现时,QoS保证函数可以通过构建训练集获取,该训练集通过同时将至少两个任务在同一个多核芯片上处理的方法构建,以获取同时运行在多核芯片上的一个任务的QoS随着运行在该多核芯片上的其它任务的变化而变化的QoS保证函数,根据QoS保证函数计算任务所能达到的QoS保证函数值。QoS保证函数可以通过下面的方法实现:从训练集中随机选取m个任务(已选取出的任务可以重复选取)作为一个工作负载,检测出这m个任务共同处理时每个任务的性能下降比例,得到m组数据加入到空间坐标系中。其中,任务的性能可以表示为函数Pif(ti|tj1,tj2,...,tjm-1),该函数公式的含义表示的是任务自身的特征向量和共同处理的其他任务的特征向量相互作用的函数。其中,Pif(ti|tj1,tj2,...,tjm-1)表示任务ti在和任务tj1,tj2,...,tjm-1共同处理时的性能变化情况,且tj1,tj2,...,tjm-1的顺序不影响性能值(即任意改变除Ci以外的特征向量的顺序不会影响Ci的性能变化)。Pif(ti|tj1,tj2,...,tjm-1)在获得了任务的性能随不同的共同处理的其他任务的变化的函数Pif以后,根据程序的性能同QoS之间的关系,可以将该函数转换为任务的QoS随不同的共同处理的其他任务变化的函数QoS=f(C1,C2,…Ci),其中Ci是指第i个任务的任务特征向量。性能同QoS的关系可以是QoS=f(C1,C2,…Ci)=Pif(ti|tj1,tj2,...,tjm-1),QoS保证函数也可以通过上述的获得任务性能的函数的方法离线测试得到。
步骤230、如果第一任务以及正在多核芯片上处理的任务所能达到的QoS够达到各任务所需保证的QoS,则各任务的QoS均能够保证。
举例来说,各任务所需保证的QoS可以采用下述方式得到:
确定各任务对应的QoS保证函数值是否大于或等于各任务对应的QoS保证值。若第一任务的QoS以及正在多核芯片上处理的任务的QoS中至少有一个任务的QoS不能够保证,则将数据中心资源退还给数据中心资源管理模块。其中,将数据中心资源退还给数据中心资源管理模块之后,还包括:将数据中心资源标记为应用不可用资源。将数据中心资源退还后,如果需要重新申请数据中心资源时,可以申明退回的数据中心资源为应用不可用的资源,以实现高效的确定可用的数据中心资源。
步骤240、若均能够保证,则将数据中心资源分配给第一任务。
本实施例所提供的数据中心资源分配方法,通过在为第一任务分配数据中心资源时,确定第一任务运行时所需的第一共享资源,根据第一共享资源以及正在多核芯片上处理的任务占用的共享资源,确定将第一数据中心资源分配给第一任务之后,各任务所能达到的QoS是否能够达到各任务所需保证的QoS,若均能够保证,则将数据中心资源分配给第一任务。实现了为第一个任务分配数据中心资源后,能够保证该多核芯片上各有QoS要求的任务的QoS,由于本实施例在不影响有QoS要求的任务的QoS的情况下,允许将其他任务分配到该多核芯片上同时处理,因此提高了多核芯片的资源利用率。
实施例三
图3为本发明实施例三所提供的数据中心资源分配方法的流程图。本实施例以上述实施例为基础,参照图3,本实施例的方法可以包括:
步骤310、发送数据中心资源分配请求,数据中心资源分配请求中包含应用所需的数据中心资源描述信息,其中,应用包含第一任务。
在步骤310中,向数据中心资源管理模块(Resource Manager,简称RM)提交一个应用,RM针对该应用会启动一个与该应用对应的数据中心资源申请模块,数据中心资源申请模块将该应用划分成至少一个任务,根据划分的任务数向RM发送数据中心资源分配请求,以获取RM为该应用包含的各任务分配的数据中心资源。其中,数据中心资源分配请求中还可以包含资源分配偏好信息;资源分配偏好信息用于指示应用不能使用的数据中心资源,和/或,用于指示应用偏好使用的数据中心资源。
具体来说,资源分配偏好信息有两种类型,第一种类型:即针对资源分配偏好信息用于指示应用不能使用的数据中心资源的方式来说,其允许应用申明自身不能使用的数据中心资源,比如申明不能使用哪些核资源,使用这些核资源时应用包含的任务将会达不到QoS要求;第二种类型:针对资源分配偏好信息用于指示应用偏好使用的数据中心资源的方式来说,其允许应用申明自身更加偏好的资源,比如允许应用申明数据亲和性更高的资源。
步骤320、接收为应用的各任务分配的数据中心资源。
步骤330、在为第一任务分配数据中心资源时,确定将第一数据中心资源分配给第一任务后,第一任务的服务质量QoS以及正在多核芯片上处理的任务的QoS是否均能够保证,第一数据中心资源为多核芯片的处理器资源,数据中心资源包含第一数据中心资源;
步骤340、若均能够保证,则将数据中心资源分配给第一任务。
上述RM为该应用包含的各任务分配数据中心资源之前,可以获得共享资源的使用情况,共享资源的使用情况例如可以是通过结点内资源记录模块定时向RM上报实现的。其中,结点内资源记录模块以多核芯片为单位维护本结点包含的多核芯片的共享资源使用情况,每个结点包含至少一个多核芯片。对于每一个多核芯片,主要记录两种信息。记录的两种信息为多核芯片内共享资源的占用情况和多核芯片内需要保证QoS的任务及其QoS要求。其中,对于多核芯片内数据中心资源的占用情况,本发明提供了两种实现策略:一种是聚集的数据中心资源占用情况,即将同一多核芯片上已经处理的各任务分别对应的任务特征向量聚集;另一种是实时的共享资源占用情况,即通过定时采样的方式,利用性能监视单元(Performance Monitoring Unit,简称PMU)及其它硬件资源来读取并记录各类共享资源的使用情况。其中,PMU是指由处理器提供的一系列硬件计数器,可以真实的反映多核芯片上共享资源的实时使用情况。
进一步的,RM不仅对数据中心资源进行统一分配,并且在管理数据中心资源时,记录可用的处理器核数、内存量和可用的处理器核所处的芯片,从而在对数据中心资源进行分配时可以区分可用的处理器核分别处于哪些芯片上。
本实施例所提供的数据中心资源分配方法,通过在为第一任务分配数据中心资源之前,向RM发送数据中心资源分配请求,获取RM为应用包含的各任务分配的数据中心资源,其中,RM为应用的各任务分配数据中心资源时,会根据数据中心资源分配请求中包含的资源分配偏好信息的类型进行不同的处理。对于第一种类型的资源分配偏好信息,RM将会完全满足;对于第二种类型的资源分配偏好信息,RM只是当作建议,并不一定满足。由于数据中心资源分配请求中可以包含资源分配偏好信息,因此可以更加高效的获得RM分配的数据中心资源,并且接收的数据中心资源是由RM根据获得的数据中心资源的使用情况分配的。
实施例四
本发明上述各实施例所提供的数据中心资源分配方法的实现方式有多种,优选的有如下两种:一种是由少到多的数据中心资源分配方法,另一种是由多到少的数据中心资源分配方法。其中,由少到多的数据中心资源分配方法指的是依次为应用的各任务分配数据中心资源,由多到少的数据中心资源分配方法指的是每次为尽可能多的应用的各任务分配数据中心资源。下面对上述两种方法分别进行说明:
对于上述的由少到多的数据中心资源分配方法,在此配合图4进行介绍。图4为本发明实施例四所提供的一种由少到多的数据中心资源分配的流程图。参照图4,该实现方式的具体过程如下:当客户端将一个应用提交给RM后,对于每个应用,RM会启动一个数据中心资源申请模块,其中,客户端可以是计算机或智能手机等通过网络或本机向RM提交一个应用。
步骤410、数据中心资源申请模块向RM发送数据中心资源分配请求;
步骤420、数据中心资源申请模块尝试依次为该应用的未成功分配数据中心资源的任一任务分配其获取的数据中心资源;
步骤430、当将该任务分配到某多核芯片的第一数据中心资源时,判断是否能够满足该多核芯片上正在处理的有QoS要求的任务的QoS和该任务的QoS;
步骤430的可以为:如果将该任务分配到某多核芯片的第一数据中心资源时,能够满足该多核芯片上正在处理的各个有QoS要求的任务的QoS和该任务的QoS,则为该任务分配数据中心资源成功,将该任务加入已成功分配数据中心资源的任务队列中;如果将该任务分配到某多核芯片的第一数据中心资源时,不能满足该多核芯片上正在处理的各个有QoS要求的任务的QoS和该任务的QoS,则为该任务分配数据中心资源失败,将该任务加入未成功分配数据中心资源的任务队列中,将该数据中心资源标记为该应用不可用,并将该数据中心资源加入到该应用不可用的数据中心资源队列中。按照上述的为该应用中的一个任务分配数据中心资源的方法重复执行,直到数据中心资源申请模块为该应用的每个任务都尝试分配过数据中心资源;
步骤440、判断未成功分配数据中心资源的任务队列是否为空;若是,则执行步骤450,否则执行步骤460;
步骤450、为该应用的各任务分配数据中心资源结束;
步骤460、将标记为不可用的数据中心资源退还给RM;
步骤470、数据中心资源申请模块重新向RM申请数据中心资源,并在资源分配偏好信息中申明该应用不可用的数据中心资源队列中的数据中心资源,并执行步骤420。
第二种实现方法与第一种方法不同之处在于:数据中心资源申请模块在获得数据中心资源以后,每次尝试将尽可能多的任务分配到获取的某一多核芯片的数据中心资源上,并检查该多核芯片上正在处理的各有QoS要求的任务的QoS和要分配的各任务的QoS是否满足,如果不满足,则将任务数目减少,直至可以满足QoS要求。即如果某个应用包含10个任务,则在首次分配时尝试安排10个任务到某个可用的多核芯片上并检查是否满足该多核芯片上各有QoS要求的任务的QoS,如果不能满足,则减少一个任务后继续尝试分配到该多核芯片上,直至将任务数目减少到零仍不满足时,则将该多核芯片的所有数据中心资源放入到该应用不可用的数据中心资源队列中。由于其余过程和上述第一种实现方式相同,故在此不再赘述。
总之,上述两种方法通过在任务分配时检查多核芯片上各有QoS要求的任务QoS是否能够满足,可以保证有QoS要求程序的性能,并且通过允许申请数据中心资源时附加资源分配偏好信息和允许应用回退不可用的数据中心资源,可以实现RM对数据中心资源的高效管理和分配。
实施例五
图5为本发明实施例五所提供的数据中心资源分配装置的结构示意图。本实施例的装置适用于在保证片上多核架构的多核芯片上已经处理的有QoS要求的任务的QoS和待分配任务的QoS的前提下,为任务分配数据中心资源的情况。该装置通常以硬件和/或软件的方式来实现。参照图5,该数据中心资源分配装置包括如下模块:QoS保证判断模块510、数据中心资源分配模块520。
其中,QoS保证判断模块510用于在为第一任务分配数据中心资源时,确定将第一数据中心资源分配给第一任务后,第一任务的QoS以及正在多核芯片上处理的任务的QoS是否均能够保证,第一数据中心资源为多核芯片的处理器资源,数据中心资源包含第一数据中心资源;数据中心资源分配模块520用于若均能够保证,则将数据中心资源分配给第一任务。
本实施例提供的数据中心资源分配装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例六
图6为本发明实施例六所提供的数据中心资源分配装置的结构示意图。参照图6,在上述实施例的基础上,QoS保证判断模块510具体包括如下单元:第一共享资源确定单元511、QoS确定单元512和QoS保证单元513。
其中,第一共享资源确定单元511用于确定将第一数据中心资源分配给第一任务后第一任务运行时所需的第一共享资源;QoS确定单元512用于根据第一任务运行时所需的第一共享资源以及正在多核芯片上处理的任务占用的共享资源,确定将第一数据中心资源分配给第一任务之后,第一任务以及正在多核芯片上处理的任务所能达到的QoS;QoS保证单元513用于如果所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS能够达到各任务所需保证的QoS,则各任务的QoS均能够保证。
具体的,第一共享资源确定单元511具体用于获取将第一数据中心资源分配给第一任务,获取第一任务对应的任务特征向量,任务特征向量用于描述第一共享资源;QoS确定单元512具体用于根据第一任务对应的任务特征向量以及正在多核芯片上处理的任务对应的任务特征向量,计算各任务对应的QoS保证函数值;其中,所述多核芯片上正在处理的任务对应的任务特征向量通过离线测试方法来获取,QoS保证函数值为运行在多核芯片上的一个任务的QoS随着运行在该多核芯片上的除所述一个任务之外的其它任务的增加或减少而变化的函数值;QoS保证单元513具体用于如果所述第一任务以及正在所述多核芯片上处理的任务所能达到的QoS保证函数值大于或等于各任务对应的QoS保证值,则所述各任务的QoS均能够保证。
本实施例提供的数据中心资源分配装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例七
图7为本发明实施例七所提供的数据中心资源分配装置的结构示意图。参照图7,在上述实施例五的基础上,还包括如下模块:数据中心资源申请模块710。
具体的,数据中心资源申请模块710用于发送数据中心资源分配请求,数据中心资源分配请求中包含应用所需的数据中心资源描述信息,其中,应用包含第一任务;接收为应用的各任务分配的数据中心资源,数据中心资源包含为第一任务分配的第一数据中心资源。
进一步的,数据中心资源分配请求中还包含资源分配偏好信息;资源分配偏好信息用于指示应用不能使用的数据中心资源,和/或,用于指示应用能够使用的数据中心资源。
优选的,数据中心资源申请模块710还用于若第一任务的QoS或正在多核芯片上处理的任务的QoS中至少有一个任务的QoS不能够保证,则将第一数据中心资源退还。
进一步地,数据中心资源申请模块710还用于将数据中心资源标记为应用不可用资源。
本实施例提供的数据中心资源分配装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例八
图8为本发明实施例八所提供的数据中心资源分配系统的结构示意图。参照图8,数据中心资源分配系统包括多核芯片810和数据中心资源管理设备820。
其中,多核芯片是指具有多个核心的处理器,可以为任务的运行提供处理器资源;数据中心资源管理设备820可以包括上述实施例中提到的任意一个数据中心资源分配装置。该数据中心资源分配装置,可以用于执行图1~4中任一实施例所示的方法技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例所提供的数据中心资源分配系统,能够保证分配到多核芯片上的全部任务的QoS,提高了多核芯片的数据中心资源利用率。
实施例九
为了详细介绍上述各实施例示出的数据中心资源分配过程,下面特配合图9对实现数据中心资源分配方法进行详细介绍。图9为本发明实施例九所提供的数据中心资源分配方法的结构图,本实施例通过该结构包括客户端1、客户端2、中心结点、结点1、结点2和结点3为例介绍数据中心资源分配方法。
其中,客户端1和客户端2可以为计算机或智能终端,通过网络向RM发送应用提交消息,以向RM提交应用;中心结点可以为计算机,其上部署有RM;结点1、结点2和结点3可以为计算机,其上可以部署有结点内资源记录模块、数据中心资源申请模块和表示数据中心资源集合的容器。
如果客户端1向RM提交一个应用,RM接受客户端1提交的应用后,在结点1上部署的可用数据中心资源中为该应用分配第一个可用的容器,并在结点内资源记录模块1的协助下在该容器上启动该应用的数据中心资源申请模块1,数据中心资源申请模块1向RM发送数据中心资源分配请求,以获取RM为该应用的各任务分配的数据中心资源;RM根据结点1、结点2和结点3部署的各结点内资源记录模块汇报的各结点的数据中心资源使用情况,将容器1、容器2和容器3表示的数据中心资源分配给数据中心资源申请模块1;数据中心资源申请模块1获取到RM为该应用的各任务分配的数据中心资源后,负责为该应用的各任务分配获取到的数据中心资源,并负责判断在为一个任务分配数据中心资源时,该任务的QoS以及正在多核芯片上处理的任务的QoS是否均能够保证,如果均能够保证,则为该任务分配数据中心资源成功,如果该任务的QoS或正在多核芯片上处理的任务的QoS中至少有一个任务的QoS不能够保证,则将数据中心资源退还给RM。
进一步的,结点内资源记录模块1、结点内资源记录模块2和结点内资源记录模块3定时向RM发送结点状态消息,以向RM汇报结点内数据中心资源使用情况,以使RM能够根据结点内资源记录模块汇报的数据中心资源使用情况,为数据中心资源申请模块分配数据中心资源;运行各任务的容器1、容器2和容器3定时将运行的任务状态发送给数据中心资源申请模块1,数据中心资源申请模块1根据任务状态判断任务是否处理完成,当应用的所有任务处理完成后,数据中心资源申请模块1向RM上报自身负责的应用成功完成,RM收到数据中心资源申请模块1上报的应用成功完成消息后,告知客户端1提交的应用成功完成。
当客户端2向RM提交一个应用的数据中心资源分配方法与上述的客户端1向RM提交一个应用时的数据中心资源分配方法类似,故在此不再赘述。与客户端1向RM提交一个应用所不同的是,RM针对该应用启动一个数据中心资源申请模块2,RM为数据中心资源申请模块2只分配了用于处理该应用的各任务的容器4。
本实施例所提供的数据中心资源分配方法,能够保证分配到多核芯片上的全部任务的QoS,提高了多核芯片的数据中心资源利用率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。