一种集群资源预伸缩方法及装置与流程

文档序号:13667089阅读:179来源:国知局
一种集群资源预伸缩方法及装置与流程

本发明实施例涉及云计算领域,特别涉及一种集群资源预伸缩方法及装置。



背景技术:

目前,在云计算平台中,伸缩集群需要和伸缩规则以及监控模块配合实现。架构设计如图1所示,监控模块不断采集云主机集群的数据,伸缩规则由监控项以及对应的阈值构成,监控模块和伸缩规则配合使用,通过分析当前集群的负载状况来决定云主机集群是否需要进行伸缩。显而易见,对于云主机集群资源的利用率存在一个最佳的阈值点,一般是100%,在该点到达的时候,正好完成伸/缩的动作,这是最完美的调整方式。

但是,目前的设计由于是通过对某些监控项设置固定阈值点实现云主机集群资源的伸缩,这种设计机制会存在以下问题:

1.阈值不能设置为100%:因为无论是任何资源的负载,都是动态变化的,而且伸缩动作本身都是需要一定的时间来完成的,也即存在延迟。一旦阈值设置为100%,很有可能会导致资源过载,为用户带来损失。

2.不可避免的资源闲置:如果阈值设置为x(x<100%),那么对于整个资源池来说,始终都是存在着(1-x)的闲置资源。

3.阈值设置的复杂性:监控项的不同、云平台的不同、伸缩延迟时间的不同以及为用户提供的服务类型的不同都会影响阈值的设置。

总之,目前基于阈值的方式实现集群资源的伸缩不可避免地存在资源浪费、用户操作难度大以及易出现资源过载等问题。



技术实现要素:

为解决现有的集群资源伸缩方法中的资源浪费、用户操作难度大以及易出现资源过载的问题,本发明实施例提供一种集群资源预伸缩方法及装置。

第一方面,本发明实施例提供一种集群资源预伸缩方法,该方法包括:

获取单个待预测集群预设时间段的负载监控数据;

对所述负载监控数据进行时间归一化,确定待拟合数据;

根据所述待拟合数据和在模式库中查询到的、与所述拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

第二方面,本发明实施例提供一种集群资源预伸缩装置,该装置包括:

获取模块,获取待预测集群预设时间段的负载监控数据;

第一归一化模块,对所述负载监控数据进行时间归一化,确定待拟合数据;

确定模块,根据所述待拟合数据和在模式库中查询到的、与所述待拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

第三方面,本发明实施例提供一种电子设备,该电子设备包括:

存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:获取单个待预测集群预设时间段的负载监控数据;对所述负载监控数据进行时间归一化,确定待拟合数据;根据所述待拟合数据和在模式库中查询到的、与所述拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法:获取单个待预测集群预设时间段的负载监控数据;对所述负载监控数据进行时间归一化,确定待拟合数据;根据所述待拟合数据和在模式库中查询到的、与所述拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

本发明实施例提供的集群资源预伸缩方法及装置,通过获取集群近期的负载监控数据,并对负载监控数据进行预处理,从而与模式库中的预设模型进行匹配,进而确定待测集群的预伸缩时刻。如此,可以有效避免资源过载,并且提高资源利用率。

附图说明

图1为本发明实施例提供的集群资源预伸缩方法的流程示意图;

图2为本发明实施例提供的预设模型拟合过程的示意图;

图3为本发明实施例提供的集群资源预伸缩装置的结构示意图;

图4为本发明实施例提供的电子设备的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的集群资源预伸缩方法的流程示意图。如图1所示,该方法包括以下步骤:

s101、获取单个待预测集群预设时间段的负载监控数据;

具体地,负载监控数据指待预测集群在最近一段时间内的资源使用率信息,包括cpu负载信息、内存负载信息、磁盘负载信息以及网络负载信息中至少一种。时间段的长短可根据具体情况进行调整,若需要精确预伸缩,可以将时间段设置的长一些;反之,可将时间段设置的短一些。

s102、对所述负载监控数据进行时间归一化,确定待拟合数据;

具体地,集群资源预伸缩装置(下称预伸缩装置)获取的是一段时间内的负载监控数据,时间段若跨度较长,不便于数据的集中,预伸缩装置通过将时间进行归一化处理,统一到{0,1}区间,使得集群的负载监控数据更加集中,归一化后的待拟合数据也更能反映待预测集群的运行趋势。

s103、根据所述待拟合数据和在模式库中查询到的、与所述拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

具体地,预伸缩装置确定好待拟合数据后,利用所述待拟合数据与模式库中的多个预设模型进行比较,选取与之相匹配的预设模型作为所述待预测集群的预期运行模式,认为待预测集群在接下来的一段时间会按着预设模型进行运行,由此可确定待预测集群的预伸缩时刻。

本发明实施例提供的集群资源预伸缩方法,通过获取集群近期的负载监控数据,并对负载监控数据进行预处理,从而与模式库中的预设模型进行匹配,进而确定待测集群的预伸缩时刻。如此,可以有效避免资源过载,提高资源利用率。

在上述实施例的基础上,该方法中的所述根据所述待拟合数据和在模式库中查询到的、与所述拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻,具体包括:

根据所述待拟合数据,确定当前时刻所述待预测集群的负载值和负载运行趋势;

具体地,不同时刻的待预测集群的负载值组成了待拟合数据。预伸缩装置通过待拟合数据可知当前时刻(也即进行预测时)的待预测集群的负载值;以当前时刻作为参考点,以最接近当前时刻的多个负载值的变化趋势作为该集群当前时刻的运行趋势。待拟合数据在{0,1}区间可能既有上升趋势也有下降趋势,以最接近当前时刻为依据,如果最接近当前时刻的运行趋势为上升趋势,则认为从当前时刻起,待预测集群的负载值在接下来的运行趋势也将继续上升,反之则认为继续下降。

若所述负载运行趋势为上升,根据所述预设模型,确定所述负载值升至第一预设负载阈值的第一时长;并根据所述第一时长和所述当前时刻,确定所述待预测集群的预伸时刻;

具体地,预伸缩装置若判断获知待预测集群的负载运行趋势为上升,根据预设模型,确定所述负载值在{0,1}时间区间的位置a和所述第一预设负载阈值在在{0,1}时间区间的位置b,根据二者之间的差(即b-a)以及预设时间段进行反归一化,确定(b-a)所对应的真正的第一时长;然后根据第一时长和当前时刻即可确定所述待预测集群的预伸时刻。

若所述负载运行趋势为下降,根据所述预设模型,确定所述负载值降至第二预设负载阈值的第二时长;并根据所述第二时长和所述当前时刻,确定所述待预测集群的预缩时刻。

具体地,预伸缩装置若判断获知待预测集群的负载运行趋势为下降,根据预设模型,确定所述负载值在{0,1}时间区间的位置c和所述第二预设负载阈值在在{0,1}时间区间的位置d,根据二者之间的差(即d-c)以及预设时间段进行反归一化,确定(d-c)所对应的真正的第二时长;然后根据第二时长和当前时刻即可确定所述待预测集群的预缩时刻。

本发明实施例提供的集群资源预伸缩方法,通过获取集群近期的运行趋势,进而确定待预测集群是应当进行扩展还是进行收缩,并相应地计算预伸时刻和预缩时刻,如此,可以有效避免资源过载,或者避免集群在不使用的情况下仍处于启动状态;并且可将阈值直接设置为100%,提高资源利用率;此外,云计算平台中任一集群的当前运行状况所反映出的模式,应对应于模式库中的某个模式。基于此,当某集群运行偏离较大时,即存在集群被劫持,滥用的风险,因此,还可该方法实现对集群服务的预警。

在上述各实施例的基础上,该方法中的所述预设运行模型的建立过程具体包括:

根据云计算平台中每个集群的历史负载数据,选取以第三预设负载阈值为起点,以所述第一预设负载阈值为终点的所述历史负载数据为采样数据,其中所述第三预设负载阈值小于所述第一预设负载阈值;

具体地,云计算平台中包括多个集群,预伸缩装置获取每个集群的历史负载数据,对所述历史负载数据进行筛选过滤,选取以第三预设负载阈值为起点,以所述第一预设负载阈值为终点的所述历史负载数据为采样数据。例如,可选取负载阈值40%-95%的历史负载数据作为采样数据。随着云计算平台的增长,集群数量的增大以及每个集群的负载数据的动态更新,预伸缩装置会实时更新历史负载数据,以便能够基于最新的数据,精确地确定预设模型。

获取所述采样数据的起始时刻和终止时刻,并根据所述起始时刻和所述终止时刻对所述采样数据进行时间归一化,确定每个集群的待训练数据;

具体地,预伸缩装置选取好采样数据之后,获取采样数据的时间信息,起始时刻为第三预设负载阈值对应的时刻,终止时刻则第一预设负载阈值对应的时刻。历史负载数据包括cpu负载信息、内存负载信息、磁盘负载信息以及网络负载信息中至少一种,在对不同类型的负载信息按照上述规则进行采样时,每个类型的负载数据在时间跨度是不一致的,因此需对该采样数据进行时间归一化处理,如此可将不同类型的负载数据统一,得到每个集群的带训练数据。

根据预设的多项式回归算法和所述待训练数据,确定每个集群的预设模型。

具体地,预伸缩装置采用预设多项式回归算法对所述待训练数据进行曲线拟合,确定每个集群的预设模型。在拟合过程中,不可避免得会出现“过拟合”和“欠拟合”的情形,可通过调整多项式曲度(degree)和误差计算的方式快速确定每个集群的预设模型。多项式回归算法和误差计算的方式可以采用现有技术中惯用算法,此处不再赘述。

图2为本发明实施例提供的预设模型拟合过程的示意图。图2中,点表示待训练数据,虚线所代表的那条曲线即为最终确定的最佳的拟合曲线,作为集群的预设模型。

本发明实施例提供的集群资源预伸缩方法,预伸缩装置通过获取每个集群的大量的历史负载数据,并对该历史负载数据进行分析从而拟合得到每个集群的稳定的运行曲线,以此运行曲线作为预测集群预伸缩时刻的基础数据,可以避免有效避免资源过载,提高资源利用率。

在上述各实施例的基础上,该方法还包括:

计算每两个预设模型之间的距离,将所述距离小于预设距离阈值的多个预设模型进行聚类,确定每类集群的类模型。

具体地,预伸缩装置首先按照固定的时间间隔对每个预设模型采样,在每个时间间隔内选取预设模型上的一个负载值点作为采样点。在对应的时间间隔内,每两个预设模型上的两个采样点构成一个采样对,所述两个采样点间的距离为采样对距离,所有采样对距离之和即为两个预设模型之间的距离。

例如,对时间区间{0,1}上的预设模型1,按照每个0.2的时间间隔进行采样,可得到5个采样点:a、b、c、d、e;类似地,对时间区间{0,1}上的预设模型2,按照每个0.2的时间间隔进行采样,可得到5个采样点:a’、b’、c’、d’、e’。如此,预设模型1和预设模型2之间的距离为aa’+bb’+cc’+dd’+ee’,其中aa’表示点a与点a’的直线距离,同理bb’、cc’、dd’、ee’,不再赘述。

然后,预伸缩装置将所述距离与预设距离阈值进行比较,将所述距离小于预设距离阈值的多个预设模型聚集至同一个坐标系内,绘制成具有外边界的一个粗粒度的模型作为该类集群的类模型。

本发明实施例提供的集群资源预伸缩方法,预伸缩装置通过将多个预设模型聚类,形成类模型,可以简化模型库,使得预测集群的预伸缩时刻时更加快捷,提高效率。

在上述各实施例的基础上,该方法还包括:

根据所述待拟合数据,在模式库中查询与所述待拟合数据相匹配的类模型;

根据所述类模型,在模式库中查询与所述待拟合数据相匹配的预设模型。

具体地,预伸缩装置在确定待拟合数据后,先在模式库中对该拟合数据与类模型进行粗匹配;然后,在该类模型中对待拟合数据进行精确匹配。如此可以提高匹配效率,同时可以更加精确的计算待预测集群的预伸缩时刻。

图3为本发明实施例提供的集群资源预伸缩装置的结构示意图。如图3所示,该装置包括:获取模块301、第一归一化模块302以及确定模块303。其中,获取模块301获取待预测集群预设时间段的负载监控数据;第一归一化模块302对所述负载监控数据进行时间归一化,确定待拟合数据;确定模块303根据所述待拟合数据和在模式库中查询到的、与所述待拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

具体地,首先,获取模块301获取待预测集群的近期监控数据;然后,第一归一化模块302对监控数据进行归一化处理,得到待拟合数据;最后,确定模块303将待拟合数据分别与预设模型进行匹配,从而根据对应的预设模型,确定待预测集群的预伸缩时刻。需要说明的是,本发明实施例提供的装置是为了实现上述方法实施例的,其功能具体可参考上述方法实施例,此处不再赘述。

在上述实施例的基础上,该装置中的确定模块302具体包括:趋势确定单元、预伸单元以及预缩单元。其中,

趋势确定单元根据所述待拟合数据,确定当前时刻所述待预测集群的负载值和负载运行趋势;预伸单元,若所述负载运行趋势为上升,根据所述预设模型,确定所述负载值升至第一预设负载阈值的第一时长;并根据所述第一时长和所述当前时刻,确定所述待预测集群的预伸时刻;预缩单元,若所述负载运行趋势为下降,根据所述预设模型,确定所述负载值降至第二预设负载阈值的第二时长;并根据所述第二时长和所述当前时刻,确定所述待预测集群的预缩时刻。

具体地,趋势确定单元对待预测集群当前时刻的负载值和负载运行趋势进行确定,趋势确定单元若判断获知待预测集群的负载值当前时刻处于上升趋势,则将集群当前时刻的负载值传递给预伸单元,预伸单元则根据相匹配的预设模型和该负载值,确定集群从该负载值升至第一预设负载阈值的第一时长,结合当前时刻,最终确定集群的预伸时刻。相应地,趋势确定单元若判断获知待预测集群的负载值当前时刻处于下降趋势,则将集群当前时刻的负载值传递给预缩单元,预缩单元则根据相匹配的预设模型和该负载值,确定集群从该负载值降至第二预设负载阈值的第二时长,结合当前时刻,最终确定集群的预缩时刻。需要说明的是,本发明实施例提供的装置是为了实现上述方法实施例的,其功能具体可参考上述方法实施例,此处不再赘述。

本发明实施例提供的集群资源预伸缩装置,获取集群近期的运行趋势,进而确定待预测集群是应当进行扩展还是进行收缩,并相应地计算预伸时刻和预缩时刻,如此,可以有效避免资源过载,或者避免集群在不使用的情况下仍处于启动状态;并且可将阈值直接设置为100%,提高资源利用率。

在上述各实施例的基础上,该装置还包括:采样模块、第二归一化模块以及建模模块。其中,

采样模块根据云计算平台中每个集群的历史负载数据,选取以第三预设负载阈值为起点,以所述第一预设负载阈值为终点的所述历史负载数据为采样数据,其中所述第三预设负载阈值小于所述第一预设负载阈值;第二归一化模块获取所述采样数据的起始时刻和终止时刻,并根据所述起始时刻和所述终止时刻对所述采样数据进行时间归一化,确定每个集群的待训练数据;建模模块根据预设的多项式回归算法和所述待训练数据,确定每个集群的预设模型。

具体地,首先,采样模块通过对每个集群的历史负载数据进行过滤,选取所述第三预设负载阈值至所述第一预设负载阈值间的数据作为采样数据;然后,第二归一化模块,以单个集群为单位,对每个集群的采样数据进行时间归一化处理,得到每个集群的待训练数据;最后,建模模块利用预设的多项式回归算法对待训练数据进行拟合,确定每个集群的预设模型。需要说明的是,本发明实施例提供的装置是为了实现上述方法实施例的,其功能具体可参考上述方法实施例,此处不再赘述。

本发明实施例提供的集群预伸缩装置,通过获取每个集群的大量的历史负载数据,并对该历史负载数据进行分析从而拟合得到每个集群的稳定的运行曲线,以此运行曲线作为预测集群预伸缩时刻的基础数据,可以避免有效避免资源过载,提高资源利用率。

图4为本发明实施例提供的电子设备的结构框图,如图4所示,该电子设备包括:存储器402和处理器401,所述处理器401和所述存储器402通过总线403完成相互间的通信;所述存储器402存储有可被所述处理器执行的程序指令,所述处理器401调用所述程序指令能够执行如下方法,例如包括:获取单个待预测集群预设时间段的负载监控数据;对所述负载监控数据进行时间归一化,确定待拟合数据;根据所述待拟合数据和在模式库中查询到的、与所述拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取单个待预测集群预设时间段的负载监控数据;对所述负载监控数据进行时间归一化,确定待拟合数据;根据所述待拟合数据和在模式库中查询到的、与所述拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取单个待预测集群预设时间段的负载监控数据;对所述负载监控数据进行时间归一化,确定待拟合数据;根据所述待拟合数据和在模式库中查询到的、与所述拟合数据相匹配的预设模型,确定所述待预测集群的预伸缩时刻。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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