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

文档序号:19302583发布日期:2019-12-03 18:31阅读:166来源:国知局
资源分配方法及装置与流程

本申请涉及云计算领域,尤其涉及一种资源分配方法及装置。



背景技术:

云服务,指通过互联网来提供动态易扩展、且经常是虚拟化的资源的服务。云是网络、互联网的一种比喻说法。云服务指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。

目前,云平台主要根据各个用户估算的资源需求信息,为请求队列中的用户依次分配所需资源,但是由于云平台具有的资源有限,且用户估算的资源需求信息往往不准确,使得云平台为用户分配资源时,经常出现为用户分配的资源过多的情况,造成了资源浪费,影响了云平台的服务。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的第一个目的在于提出一种资源分配方法,该方法实现了根据用户历史运行数据,预测并调整用户下一时刻的资源使用量,提高了云平台为用户分配资源的准确性,提高了云平台资源的利用率,节约了云平台的运行成本,且减少了用户的操作过程,改善了用户体验。

本申请的第二个目的在于提出一种资源分配装置。

为达上述目的,本申请第一方面实施例提出了一种资源分配方法,包括:分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据;利用第一预设模型,分别对所述各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量;根据所述各个用户下一时刻的资源使用量,调整下一时刻各个用户占有的资源量。

本申请实施例的资源分配方法,首先分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据,然后利用第一预设模型,分别对各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量;再根据所述各个用户下一时刻的资源使用量,调整下一时刻各个用户占有的资源量。由此,实现了根据用户历史运行数据,预测并调整用户下一时刻的资源使用量,提高了云平台为用户分配资源的准确性,提高了云平台资源的利用率,节约了云平台的运行成本,且减少了用户的操作过程,改善了用户体验。

为达上述目的,本申请第二方面实施例提出了一种资源分配装置,包括:第一获取模块,用于分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据;第一预测模块,用于利用第一预设模型,分别对所述各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量;第一处理模块,用于根据所述各个用户下一时刻的资源使用量,调整下一时刻各个用户占有的资源量。

本申请实施例的资源分配装置,首先分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据,然后利用第一预设模型,分别对各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量;再根据所述各个用户下一时刻的资源使用量,调整下一时刻各个用户占有的资源量。由此,实现了根据用户历史运行数据,预测并调整用户下一时刻的资源使用量,提高了云平台为用户分配资源的准确性,提高了云平台资源的利用率,节约了云平台的运行成本,且减少了用户的操作过程,改善了用户体验。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本申请一个实施例的资源分配方法的流程图;

图2为采用贝叶斯动态线性模型预测的资源使用量与用户实际占用资源量的对比图;

图3是本申请另一个实施例的资源分配方法的流程图;

图4是本申请一个实施例的资源分配装置的结构示意图;

图5是本申请一个实施例的资源分配装置的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的资源分配方法及装置。

图1是本申请一个实施例的资源分配方法的流程图。

如图1所示,该资源分配方法包括:

步骤101,分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据。

具体的,本申请实施例提供的资源分配方法的执行主体为资源分配装置。该装置,可配置在云平台中,用于对云平台中的资源使用情况进行监控和管理。

其中,第一预设的时间段的长短,可以根据需要选择,比如可以为一周,10天或者一个月等等。

另外,历史运行数据包括所有与用户使用的云平台服务或应用相关的数据,比如用户对云平台中的中央处理器(centralprocessingunit,简称cpu)的使用率、或内存使用率等。

步骤102,利用第一预设模型,分别对所述各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量。

其中,第一预设模型,可以为任意可根据历史数据,预测未来数据的时间序列预测模型,比如,可以为自回归(auto-regression)模型、arima模型或三项指数平滑模型等。

在本实施例一种可能的实现,为了实现对下一时刻用户的资源使用量进行准确预测,第一预设模型,可以采用贝叶斯动态线性模型。贝叶斯动态线性模型适应性很强,能基于历史运行数据调整模型,给出下一时刻运行数据精确的预估,适用于用户资源的实时预估和动态调整。

需要说明的是,资源分配装置在利用第一预设模型,对各个用户的历史运行数据进行拟合时,根据不同的运行数据,可以预测不同的资源使用量。举例来说,根据用户使用云平台中的cpu的历史运行数据,即可预测该用户下一时刻cpu的使用量;根据用户使用云平台的内存的历史运行数据,即可预测该用户下一时刻内存的使用量等。

步骤103,根据所述各个用户下一时刻的资源使用量,调整下一时刻各个用户占有的资源量。

具体的,资源分配装置,在根据各个用户某一时间段内的运行数据,利用第一预设模型,预测到各个用户下一时刻的资源使用量后,即可调整下一时刻该用户占有的资源量,从而使该用户在下一时刻占有的资源量,与其实际需求量尽量匹配,减少了资源的浪费。

其中,调整下一时刻各个用户占有的资源量,是指根据预测的下一时刻用户的资源使用量,增加或减小为用户分配的资源量。

举例来说,若根据该用户当前时刻之前一周内的内存使用数据,预测到该用户下一时刻的内存使用量为700兆字节(mb),而用户当前时刻占有的内存资源为600兆字节(mb),从而可以在下一时刻到来前,为该用户再增加100mb的内存量,以保证该用户下一时刻的对内存资源的需求;或者,若预测到用户下一时刻的内存使用量为700兆字节(mb),而用户当前时刻占有的内存资源为900兆字节(mb),从而即可在下一时刻到来前,从为该用户分配的900mb的内存中,收回100mb或200mb的内存以给其它用户使用,从而在保证用户正常使用云平台资源的同时,又不会浪费占有的资源。

需要说明的是,资源分配装置,根据第一预设的模型预测的用户下一个时刻的资源使用量是一个范围,在确定用户下一个时刻的资源使用量范围后,即可根据该范围的分布情况,确定一个合适的值作为用户下一时刻的资源使用量,比如选择该范围内的平均值,或者最大值等等,然后在为用户分配资源时,保证为用户分配的资源大于该值即可。

可以理解的是,本申请实施例中,资源分配装置通过根据用户的历史运行数据,预测用户下一时刻的资源使用量,并自动调整下一时刻用户占有的资源量,从而使得用户无需不停的根据自身的使用情况,估算资源使用量,再向云平台请求资源,节省了用户使用云平台的操作,改善了用户体验。

举例来说,图2为采用贝叶斯动态线性模型预测的资源使用量与用户实际占用资源量的对比图。

图中“○”表示预测的资源使用量,“●”表示该用户实际占有的资源量。由图2可以看出,在很长的一段时间内,任意时刻用户实际占用的资源量几乎都在预测的资源量范围内,说明通过本发明提供的资源分配方法,可以很好的满足用户的需求,节省了用户的操作,提高了云平台为用户分配资源的准确性。

本申请实施例的资源分配方法,首先分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据,然后利用第一预设模型,分别对各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量;再根据所述各个用户下一时刻的资源使用量,调整下一时刻各个用户占有的资源量。由此,实现了根据用户历史运行数据,预测并调整用户下一时刻的资源使用量,提高了云平台为用户分配资源的准确性,提高了云平台资源的利用率,节约了云平台的运行成本,且减少了用户的操作过程,改善了用户体验。

通过上述分析可知,资源分配装置,可以根据各个用户在当前时刻之前一段时间内的运行数据,结合第一预设模型,预测各个用户在下一时刻的资源使用量,进而调整各个用户占有的资源量,从而提高了为用户分配资源的准确性和资源的利用率。但是,在实际使用时,由于每个用户利用云平台资源进行的业务或应用不同,从而每个用户对稳定性要求也不相同,因此,本申请实施例中,在为用户调整下一时刻的资源量时,还可以采用图2所示的形式实现。

图3是本申请另一个实施例的资源分配方法的流程图。

如图3所示,该资源分配方法包括以下步骤:

步骤201,分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据。

步骤202,利用第一预设模型,分别对所述各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量。

其中,上述步骤201和步骤202的具体实现过程和原理,可参照上述实施例1中步骤101和步骤102的详细描述,此处不再赘述。

步骤203,确定所述各个用户的稳定性要求值。

其中,各个用户的稳定性要求值,用于表征各个用户对云平台资源的稳定性、可靠性要求的满意度和接受度。比如,若用户的稳定性要求值为99%,则表明该用户要求云平台提供的资源量,至少有99%的可能大于其实际使用的资源量。

具体的,各个用户的稳定性要求值,可以是资源分配装置根据各个用户使用云平台资源的类型确定的;或者,可以是资源分配装置根据各个用户使用云平台的资源量确定,比如使用云平台的资源量越多的用户,对应的稳定性要求值越高;或者,各个用户的稳定性要求值,也可以是各个用户主动上报给资源分配装置的,本实施例对此不作限定。

需要说明的是,各个用户的稳定性要求值,还可以根据用户使用的云平台资源类型确定,比如使用云平台cpu资源的用户的稳定性要求值,高于使用云平台内存资源的稳定性要求值,从而使得资源分配装置,可以根据用户的稳定性要求值,确定各个用户使用的云平台资源的类型,进而为各个用户提供需要的资源量。

步骤204,根据所述各个用户下一时刻的资源使用量,调整下一时刻为所述各个用户分配的资源量,以使各个用户下一刻可使用的资源量大于其实际使用的资源量的概率值大于其稳定性要求值。

举例来说,若采用第一预设的模型,对用户的历史运行数据进行拟合后,确定用户下一时刻的资源使用量为700mb,且该用户的稳定性要求值为99.99%,那么考虑一定余量,则可以调整用户在下一时刻占有的资源量大于700mb,以使分配给该用户的资源,至少有99.99%的可能大于其实际使用的资源量,从而满足了用户对云平台资源的需求。

具体实现时,资源分配装置,可以实时监控各个用户在各个时刻实际使用的资源量,然后判断实际使用的资源量与预测的资源量之间的是否相近,若不,则可以根据实际使用的资源量与预测的资源量之间的差值,对模型进行调整,从而提供各个预测值的准确度。即该方法,在上述步骤204之后,还包括:

步骤205,监测各个用户下一时刻实际使用的资源量。

步骤206,根据所述实际使用的资源量与预测的资源使用量之间的差值,对所述第一预设的模型进行修正。

具体的,资源分配装置可以实施监控各个用户下一时刻实际使用的资源量,若确定任一时刻实际使用的资源量,超过了预测的资源量,如图2中的a点、b点所示,则可以采用现有的模型修订方法,比如基于卡尔曼滤波思想,对第一预设的模型进行修订,从而使修订后的第一预设的模型预测的资源使用量更贴近用户实际的资源使用量,从而进一步提高资源分配的准确性。

进一步地,在一种可能的实现形式中,随着使用云平台的用户数量的逐渐增加,可能会出现云平台的资源无法满足用户需求的问题,则该资源分配方法还包括以下步骤:

步骤207,获取云平台在当前时刻之前第二预设的时间段内的历史运行数据。

其中,第二预设的时间段可以与第一预设的时间段相同,也可以与第一预设的时间段不同,本实施例对此不作限定。

另外,可以理解的是,云平台的历史运行数据包括云平台各种资源的历史运行数据,比如cpu使用率、内存使用率等。

步骤208,利用第二预设模型,对所述历史运行数据进行拟合,预测所述云平台未来第三预设的时间段内的资源需求量。

其中,第二预设模型,可以为任意可根据历史数据,预测未来数据的模型,比如,可以为贝叶斯动态线性模型、贝叶斯网络模型、三项指数平滑模型等。

在本实施例一种可能的实现形式中,为了准确预测云平台资源需求量的增长趋势和周期,第二预设模型,可以采用三项指数平滑模型实现。由于三项指数平滑模型可以预测数据的增长趋势和周期趋势,同时稳定性比较高,从而可以对云平台整体资源进行准确预测。

另外,第三预设的时间段的长短可以根据云平台的历史运行数据确定,比如若通过利用第二预设的模型对历史运行数据进行拟合后,确定云平台的资源需要量以每星期为周期递增,从而,第三预设的时间段则可以确定为一个星期,即根据历史运行数据,预测未来一周内云平台的资源需求量,在一周结束后,再预测下一周内云平台的资源需求量。

步骤209,根据所述资源需求量,为所述云平台配置资源,以使所述云平台未来的资源满足用户需求。

需要说明的是,上述步骤207-步骤209,与步骤201-步骤206之间,并无固定顺序,步骤207-步骤209可以在步骤201-步骤206之前执行,也可以与步骤201-步骤206同时执行,本实施例对此不作限定。

本申请实施例的资源分配方法,首先分别获取各个用户当前时刻之前的第一预设的时间段内的历史运行数据,然后利用第一预设的模型,预测各个用户下一时刻的资源使用量,并根据各个用户的稳定性要求值,调整各个用户下一时刻的资源占有量,同时根据云平台的历史运行数据,预测云平台当前时刻之后的一个时间段内的资源需求量,然后为云平台配置相应的资源。由此,提高了云平台为用户分配资源的准确性,提高了云平台资源的利用率,节约了云平台的运行成本,减少了用户的操作过程,改善了用户体验,且提高了云平台的可靠性和可靠性,进一步改善了用户的体验。

为了实现上述实施例,本申请还提出一种资源分配装置。

图4是本申请一个实施例的资源分配装置的结构示意图。

如图4所示,该资源分配装置包括:

第一获取模块31,用于分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据;

第一预测模块32,用于利用第一预设模型,分别对所述各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量;

第一处理模块33,用于根据所述各个用户下一时刻的资源使用量,调整下一时刻各个用户占有的资源量。

其中,本实施例提供的资源分配装置,用于执行上述实施例提供的资源分配方法。

需要说明的是,第一预设模型可以为任意可根据历史数据,预测未来数据的模型,比如,可以为贝叶斯动态线性模型、贝叶斯网络模型、三项指数平滑模型等。

在本实施例一种可能的实现,为了实现对下一时刻用户的资源使用量进行准确预测,第一预设模型,可以采用贝叶斯动态线性模型。贝叶斯动态线性模型适应性很强,能基于历史运行数据调整模型,给出下一时刻运行数据精确的预估,适用于用户资源的实时预估和动态调整。

需要说明的是,前述对资源分配方法实施例的解释说明也适用于该实施例的资源分配装置,此处不再赘述。

本申请实施例的资源分配装置,首先分别获取各个用户在当前时刻之前的第一预设的时间段内的历史运行数据,然后利用第一预设模型,分别对各个用户的历史运行数据进行拟合,预测所述各个用户下一时刻的资源使用量;再根据所述各个用户下一时刻的资源使用量,调整下一时刻各个用户占有的资源量。由此,实现了根据用户历史运行数据,预测并调整用户下一时刻的资源使用量,提高了云平台为用户分配资源的准确性,提高了云平台资源的利用率,节约了云平台的运行成本,且减少了用户的操作过程,改善了用户体验。

图5是本申请一个实施例的资源分配装置的结构示意图。

如图5所示,在上述图4所示的基层上,该资源分配装置,还包括:

确定模块41,用于确定所述各个用户的稳定性要求值;

所述第一处理模块33,具体用于根据所述各个用户下一时刻的资源使用量,调整下一时刻为所述各个用户分配的资源量,以使各个用户下一刻可使用的资源量大于其实际使用的资源量的概率值大于其稳定性要求值。

在本实施例一种可能的实现形式中,该资源分配装置,还包括:

监测模块42,用于监测各个用户下一时刻实际使用的资源量;

修正模块43,用于根据所述实际使用的资源量与预测的资源使用量之间的差值,对所述第一预设的模型进行修正。

进一步地,为了防止随着用户数量的增加,云平台中的资源不足以为所有用户提供服务,该资源分配装置,还包括:

第二获取模块44,用于获取云平台在当前时刻之前第二预设的时间段内的历史运行数据;

第二预测模块45,用于利用第二预设模型,对所述历史运行数据进行拟合,预测所述云平台未来第三预设的时间段内的资源需求量;

第二处理模块46,用于根据所述资源需求量,为所述云平台配置资源,以使所述云平台未来的资源满足用户需求。

其中,第二预设模型,可以为任意可根据历史数据,预测未来数据的模型,比如,可以为贝叶斯动态线性模型、贝叶斯网络模型、三项指数平滑模型等。

具体的,为了准确预测云平台资源需求量的增长趋势和周期,第二预设模型,可以采用三项指数平滑模型实现。由于三项指数平滑模型可以预测数据的增长趋势和周期趋势,同时稳定性比较高,从而可以对云平台整体资源进行准确预测。

需要说明的是,前述对资源分配方法实施例的解释说明也适用于该实施例的资源分配装置,此处不再赘述。

本申请实施例的资源分配装置,首先分别获取各个用户当前时刻之前的第一预设的时间段内的历史运行数据,然后利用第一预设的模型,预测各个用户下一时刻的资源使用量,并根据各个用户的稳定性要求值,调整各个用户下一时刻的资源占有量,同时根据云平台的历史运行数据,预测云平台当前时刻之后的一个时间段内的资源需求量,然后为云平台配置相应的资源。由此,提高了云平台为用户分配资源的准确性,提高了云平台资源的利用率,节约了云平台的运行成本,减少了用户的操作过程,改善了用户体验,且提高了云平台的可靠性和可靠性,进一步改善了用户的体验。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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