资源分配方法和装置与流程

文档序号:11707458阅读:212来源:国知局
资源分配方法和装置与流程

本申请涉及计算机领域,具体涉及大数据处理技术领域,尤其涉及资源分配方法和装置。



背景技术:

数据集市是在大数据处理技术中被广泛应用的存储方案。可以利用数据集市存储海量历史数据,以对历史数据进行分析。随着需要存储的数据的增加,需要对数据集市进行扩容,相应地,需要向运行数据集市的服务器集群分配服务器,以确保服务器集群具有足够的资源运行扩容后的数据集市。目前,通常采用的分配方式为:根据以往的分配给各个服务器集群的服务器的数量,预测当前分配给各个服务器集群的服务器的数量。

现有技术的缺点表现在:一方面,不能实时调整分配给各个服务器集群的服务器的数量,导致灵活性较差。另一方面,在分配时仅考虑了以往分配给各个服务器集群的服务器的数量,而没有考虑各个服务器集群中的服务器的硬件资源的实际使用情况,导致分配的准确率较低。



技术实现要素:

本申请提供了资源分配方法和装置,用于解决上述背景技术部分存在的技术问题。

第一方面,本申请提供了资源分配方法,该方法包括:接收资源分配请求,资源分配请求基于服务器集群上运行的数据集市扩容生成,资源分配请求包含指示服务器集群申请的服务器的数量的申请量参数;分别获取每一个服务器集群的硬件资源的使用率参数,使用率参数为服务器集群使用的硬件资源与已分配给服务器集群的硬件资源的 比率;基于申请量参数和使用率参数对应的分数参数,确定待分配给每一个服务器集群的服务器的数量,以及将确定出的数量的服务器分别分配给每一个服务器集群,分数参数指示服务器集群需要分配到新的服务器以运行扩容后的数据集市的紧急程度。

第二方面,本申请提供了资源分配装置,该装置包括:接收单元,配置用于接收资源分配请求,资源分配请求基于服务器集群上运行的数据集市扩容生成,资源分配请求包含指示服务器集群申请的服务器的数量的申请量参数;获取单元,配置用于分别获取每一个服务器集群的硬件资源的使用率参数,使用率参数为服务器集群使用的硬件资源与已分配给服务器集群的硬件资源的比率;确定单元,配置用于基于申请量参数和使用率参数对应的分数参数,确定待分配给每一个服务器集群的服务器的数量,以及将确定出的数量的服务器分别分配给每一个服务器集群,分数参数指示服务器集群需要分配到新的服务器以运行扩容后的数据集市的紧急程度。

本申请提供的资源分配方法和装置,通过接收资源分配请求,资源分配请求包含指示服务器集群申请的服务器的数量的申请量参数;分别获取每一个服务器集群的硬件资源的使用率参数;基于申请量参数和使用率参数对应的分数参数,确定待分配给每一个服务器集群的服务器的数量,以及将确定出的数量的服务器分别分配给每一个服务器集群。实现了在向服务器集群分配服务器的过程中,将服务器集群申请的服务器数量与服务器集群的硬件资源的实际情况相结合,确定分配给服务器集群的服务器的数量。一方面,增强了向服务器集群分配服务器的灵活性,另一面,提升了分配的准确性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2示出了根据本申请的资源分配方法的一个实施例的流程图;

图3示出了资源分配规则的示意图;

图4示出了分数参数的示意图;

图5示出了适用于本申请的资源分配方法的一个示例性架构图;

图6示出了本申请的资源分配方法的一个示例性流程图;

图7示出了根据本申请的资源分配装置的一个实施例的结构示意图;

图8是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的资源分配方法或资源分配装置的实施例的示例性系统架构100。

如图1所示,系统架构100包括服务器集群101、102、103,网络104和中心服务器105。网络104用以在服务器集群101、102、103和中心服务器105之间提供传输链路的介质。网络104可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。服务器集群101、102、103运行不同类型的数据集市。中心服务器105可以用于为各个服务器集群分配服务器,以确保服务器集群101、102、103有足够的资源运行扩容后的数据集市。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

请参考图2,其示出了根据本申请的资源分配方法的一个实施例的流程200。需要说明的是,本申请实施例所提供的资源分配方法一般由图1中的中心服务器105执行,相应地,资源分配装置一般设置 于中心服务器105中。该方法包括以下步骤:

步骤201,接收资源分配请求。

在本实施例中,资源分配请求基于服务器集群上运行的数据集市扩容生成,资源分配请求包含指示服务器集群申请的服务器(也可称之为机器资源)的数量的申请量参数。在本实施例中,各个服务器集群可以运行不同类型的数据集市。当运行在服务器集群上的数据集市进行扩容时,即数据集市中的数据增加时,运行数据集市的服务器集群则需要更多的服务器来运行扩容后的数据集市。此时,可以生成资源分配请求来请求为其分配新的服务器。此外,在本实施例中,还可以采用主动方式向各个服务器集群分配服务器,即每间隔预设时间段,向各个服务器集群分配服务器,相应地,可以首先获取各个服务器的申请量参数,该申请量参数可以由服务器集群的运维工程师预先进行设置。

步骤202,分别获取每一个服务器集群的硬件资源的使用率参数。

在本实施例中,当需要计算确定待分配给每一个数据库集群的数据库的数量时,可以首先获取每一个服务器集群的硬件资源的使用率参数,使用率参数为服务器集群使用的硬件资源与已分配给服务器集群的硬件资源的比率。硬件资源可以包括但不限于:cpu、内存、硬盘。

在本实施例的一些可选的实现方式中,在接收资源分配请求之后,所述方法还包括:判断是否存在资源分配规则,资源分配规则用于定义硬件资源的类型以及申请量参数和使用率参数各自对应的预设加权值;若是,解析资源分配规则,得到硬件资源的类型和预设加权值;若否,接收输入的配置指令,配置指令包含硬件资源的类型的标识以及预设加权值;基于硬件资源的类型的标识以及预设加权值,构建资源分配规则。

在本实施例中,资源分配规则用于定义硬件资源的类型以及申请量参数和使用率参数各自对应的预设加权值。资源分配规则可以采用形式进行表示:指标1*权重1+指标2*权重2+......+指标n*权重n。其中,可以将指示服务器集群申请的服务器的数量的申请量参数、硬 件资源的使用率参数称之为指标。每一个指标可以对应一个权重,即对应一个加权值。以硬件资源为内存为例,资源分配规则可以包含两个指标,一个指标为申请量参数,另一个指标为内存的使用率参数。相应地,申请量参数和内存的使用率参数各自对应一个加权值。

步骤203,基于申请量参数和使用率参数对应的分数参数,确定待分配给每一个服务器集群的服务器的数量,以及将确定出的数量的服务器分别分配给每一个服务器集群。

在本实施例中,分数参数指示服务器集群需要分配到新的服务器以运行扩容后的数据集市的紧急程度。可以基于申请量参数和使用率参数(例如内存、cpu、硬盘的使用率参数)对应的分数参数,确定待分配给每一个服务器集群的服务器的数量。以一个服务器集群为例,当硬件资源为内存,使用率参数为内存的使用率参数时,可以分别计算申请量参数与每一个服务器集群的申请量参数之和的申请量比率以及内存的使用率参数对应的分数参数与每一个服务器集群的内存的使用率参数对应的分数参数之和的使用率比率,然后,将待分配的所有服务器集群的数量的一半的数量值分别与申请量比率和使用率比率相乘,得到申请量数量和使用率数量,将申请量数量和使用率数量相加,得到分配给该服务器集群的服务器的数量。

在本实施例的一些可选的实现方式中,硬件资源为内存;以及基于申请量参数和使用率参数对应的分数参数,确定待分配给每一个服务器集群的服务器的数量包括:根据预设内存的使用率参数与分数参数的对应关系表,分别确定每一个服务器集群的内存的使用率参数各自对应的分数参数;采用以下公式分别计算待分配给每一个服务器集群的服务器的数量:

macn=mactotal*c1*man/mas+mactotal*c2*musecn/mus,其中,macn表示待分配给第n个服务器集群的服务器的数量,mactotal表示待分配给每一个服务器集群的服务器的总数量,c1表示申请量参数对应的预设加权值,man表示第n个服务器集群的申请量参数,mas表示每一个服务器集群的申请量参数之和,c2表示内存的使用率参数对应的预设加权值,musecn表示第n个服务器集群的 分数参数,mus表示每一个服务器集群的分数参数之和。

在本实施例中,当资源分配规则中包含的两个指标为申请量参数内存的使用率参数时,在本实施例中,服务器集群申请的服务器数量的申请量参数可以用于指示服务器集群申请的服务器的情况,内存的使用率参数可以用于指示服务器集群的内存的实际使用情况。从而,可以将服务器集群申请的服务器数量与服务器集群的内存资源的实际情况相结合,确定分配给各个服务器集群的服务器的数量。例如,在上述计算待分配给第n个服务器集群的服务器的数量macn的公式中,c1*man/mas可以用于指示在分配过程中服务器集群申请的服务器的数量对分配结果的影响,c2*musecn/mus可以用于指示在分配过程中服务器集群的内存的使用情况对分配结果的影响。在本实施例中,c1、c2的取值可以均为0.5。

在本实施例中,可以根据预设内存的使用率参数与分数参数的对应关系表,分别确定每一个服务器集群的内存的使用率参数各自对应的分数参数。分数参数可以相当于在内存的使用率参数对应的预设加权值的基础上,再次对内存的使用情况赋予权重,从而可以利用该分数参数指示服务器集群需要服务器即机器资源的紧级程度。

在本实施例的一些可选的实现方式中,c2的取值为0.5*c3,其中,c3为接收资源分配请求时所处的时间段对应的预设加权值。

在本实施例中,服务器集群的内存的使用率参数的权重可以为0.5*c3。c3可以表示接收资源分配请求时所处的时间段对应的预设加权值。例如,当接收资源分配请求时所处的时间段为服务器集群上的数据集市的访问频次较高的时段时,可以将c3设置为1.2。当接收资源分配请求时所处的时间段为服务器集群上的数据集市的访问频次正常的时段时,可以将c3设置为1。当接收资源分配请求时所处的时间段为服务器集群上的数据集市的访问频次较低的时段时,可以将c3设置为0.8。

在本实施例中,在将服务器集群申请的服务器数量与服务器集群的内存资源的实际情况相结合,确定分配给各个服务器集群的服务器的数量,可以将确定出的数量的服务器分别分配给每一个服务器集群。

请参考图3,其示出了资源分配规则的示意图。

在图3中,示出了资源分配规则的两个指标,一个指标为指示服务器集群申请的服务器即机器资源的数量的申请量参数,另一个指标为指示服务器集群的内存的使用情况的内存的使用率参数。申请量参数与内存使用率参数的权重即加权值均为0.5。对于内存的使用率参数,可以将内存的使用率参数的权重再次加权,相应地,可以设置再次加权的权重值。例如,当接收资源分配请求时所处的时间段为繁忙时段,则可以将再次加权的权重值设置为1.2。当接收资源分配请求时所处的时间段为闲时,则可以将再次加权的权重值设置为0.8。

请参考图4,其示出了分数参数的示意图。

在图4中,每一个集群的内存使用率参数对应一个分数参数,当内存的使用率参数大于80%时,分数参数为7,当内存的使用率参数为50%-80%时,分数参数为2,当内存的使用率参数为30%-50%时,分数参数为1,当内存的使用率参数小于30%时,分数参数为0。

请参考图5,其示出了适用于本申请的资源分配方法的一个示例性架构图。在图5中,示出了视图层、逻辑层、模型层。视图层包含查询页面、规则分配页面。逻辑层包含用户控制接口、数据载入接口、资源分配规则接口。模型层包含数据仓库edw、分布式计算框架hadoop、关系型数据库。

查询页面:用于资源分配规则选择、分配结果显示和分配结果导出。

资源规则分配页面:用于显示资源分配规则中的指标和权重,指标可以包含指示服务器即机器资源的申请数量的申请量参数和内存、cpu、硬盘硬件资源的使用率参数的权重值,例如,申请量参数的权重为0.5、内存的使用率参数的权重为0.2,cpu的使用率参数为0.1。同时,还包含内存使用率参数对应的分数参数以及硬件资源实际使用情况的再次加权的权重值。可以通过资源规则分配页面灵活地调整指标和权重。

用户控制接口:用于控制进行数据载入还是生成资源分配规则。用户可以为运维工程师。可以提供控制台接收运维工程师输入的指令。

数据载入接口:用于完成数据载入。

资源分配规则接口:用于根据资源分配规则,结合资源使用数据,完成分配数据。

edw、hadoop、关系型数据库:提供源数据,并保存资源分配规则和分配结果,以供后续参考使用。

请参考图6,其示出了本申请的资源分配方法的一个示例性流程图。包含以下步骤:

步骤601:获取与分配机器资源相关联的参数。可以获取指示各个服务器集群申请的服务器即机器资源的数量的申请量参数、硬件资源的使用率参数(例如内存的使用率参数)。然后,将获取到的参数记录在数据表中,可以将该表称之为资源基础信息表。

步骤602:配置指标和权重。可以配置在分配服务器的过程中,应用到的指标(例如申请量参数、内存的使用率参数)以及指标的权重。可以根据实际情况指标和权重进行灵活地调整。

步骤603:判断是否存在资源分配规则。即判断定义有指标和指标的权重的资源分配规则是否存在。如果不存在资源分配规则,执行步骤604,如果已存在资源分配规则,执行步骤605。

步骤604:生成新的资源分配规则。

步骤605:则调用机器资源进行分配。

步骤606:生成机器资源分配结果。

下面说明本申请的资源分配方法与现有技术的区别:

在现有技术中,分配服务器的方式为:根据以往的分配给各个服务器集群的服务器的数量,预测当前分配给各个服务器集群的服务器的数量。一方面,不能实时调整分配各个服务器集群的服务器的数量,导致灵活性较差。另一方面,在分配时仅考虑了以往分配给各个服务器集群的服务器的数量,而没有考虑各个服务器集群中的服务器的硬件资源的实际使用情况,导致分配的准确率较低。

而在本申请中,根据资源分配规则中的指标、权重、以及分数参数确定待分配给服务器集群的服务器的数量,即将服务器集群申请的服务器数量与服务器集群的内存资源的实际情况相结合,确定分配给 各个服务器集群的服务器的数量,增强了服务器即机器资源分配的准确性。同时,可以实时对资源分配规则中的参数和权重进行调整,从而增强机器资源分配的灵活性。此外,还可以实时查看当前的资源分配规则和分配结果,便于查看维护和后续规则扩充,进一步提升了便利性。

进一步参考图7,作为对上述各图所示方法的实现,本申请提供了一种资源分配装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图7所示,本实施例的资源分配装置700包括:接收单元701,获取单元702,确定单元703。接收单元701配置用于接收资源分配请求,资源分配请求基于服务器集群上运行的数据集市扩容生成,资源分配请求包含指示服务器集群申请的服务器的数量的申请量参数;获取单元702配置用于分别获取每一个服务器集群的硬件资源的使用率参数,使用率参数为服务器集群使用的硬件资源与已分配给服务器集群的硬件资源的比率;确定单元703配置用于基于申请量参数和使用率参数对应的分数参数,确定待分配给每一个服务器集群的服务器的数量,以及将确定出的数量的服务器分别分配给每一个服务器集群,分数参数指示服务器集群需要分配到新的服务器以运行扩容后的数据集市的紧急程度。

在本实施例中,接收单元701可以接收资源分配请求。资源分配请求基于服务器集群上运行的数据集市扩容生成,资源分配请求包含指示服务器集群申请的服务器(也可称之为机器资源)的数量的申请量参数。在本实施例中,各个服务器集群可以运行不同类型的数据集市。当运行在服务器集群上的数据集市进行扩容时,即数据集市中的数据增加时,运行数据集市的服务器集群则需要更多的服务器来运行扩容后的数据集市。此时,可以生成资源分配请求来请求为其分配新的服务器。

在本实施例中,获取单元702可以在需要计算确定待分配给每一个数据库集群的数据库的数量时,首先获取每一个服务器集群的硬件资源的使用率参数,使用率参数为服务器集群使用的硬件资源与已分 配给服务器集群的硬件资源的比率。硬件资源可以包括但不限于:cpu、内存、硬盘。

在本实施例中,确定单元703可以基于申请量参数和使用率参数(例如内存、cpu、硬盘的使用率参数)对应的分数参数,确定待分配给每一个服务器集群的服务器的数量。

在本实施例的一些可选的实现方式中,确定单元703包括:分数参数确定子单元(未示出),配置用于当硬件资源为内存时,根据预设内存的使用率参数与分数参数的对应关系表,分别确定每一个服务器集群的内存的使用率参数各自对应的分数参数;计算子单元(未示出),配置用于采用以下公式分别计算待分配给每一个服务器集群的服务器的数量:macn=mactotal*c1*man/mas+mactotal*c2*musecn/mus,其中,macn表示待分配给第n个服务器集群的服务器的数量,mactotal表示待分配给每一个服务器集群的服务器的总数量,c1表示申请量参数对应的预设加权值,man表示第n个服务器集群的申请量参数,mas表示每一个服务器集群的申请量参数之和,c2表示内存的使用率参数对应的预设加权值,musecn表示第n个服务器集群的分数参数,mus表示每一个服务器集群的分数参数之和。

在本实施例的一些可选的实现方式中,c1和c2的取值均为0.5。

在本实施例的一些可选的实现方式中,c1的取值为0.5,c2的取值为0.5*c3,其中,c3为接收资源分配请求时所处的时间段对应的预设加权值。

在本实施例的一些可选的实现方式中,装置700还包括:判断单元(未示出),配置用于在接收资源分配请求之后,判断是否存在资源分配规则,资源分配规则用于定义硬件资源的类型以及申请量参数和使用率参数各自对应的预设加权值;解析单元(未示出),配置用于当存在资源分配规则时,解析资源分配规则,得到硬件资源的类型和预设加权值;指令接收单元(未示出),配置用于当不存在资源分配规则时,接收输入的配置指令,配置指令包含硬件资源的类型的标识以及预设加权值;构建单元(未示出),配置用于基于硬件资源的类型的标识以及预设加权值,构建资源分配规则。

本领域技术人员可以理解,上述装置700还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图7中未示出。

图8示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。

如图8所示,计算机系统800包括中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram803中,还存储有系统800操作所需的各种程序和数据。cpu801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。

以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的 实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收资源分配请求,所述资源分配请求基于服务器集群上运行的数据集市扩容生成,所述资源分配请求包含指示服务器集群申请的服务器的数量的申请量参数;分别获取每一个服务器集群的硬件资源的使用率参数,所述使用率参数为服务器集群使用的硬件资源与已分配给服务器集群的硬件资源的比率;基于所述申请量参数和使用率参数对应的分数参数,确定待分配给每一个服务器集群的服务器的数量,以及将确定出的数量的服务器分别分配给每一个服务器集群,分数参数指示服务器集群需要分配到新的服务器以运行扩容后的数据集市的紧急程度。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1