一种集群容量调整方法及装置与流程

文档序号:18791654发布日期:2019-09-29 18:55阅读:159来源:国知局
一种集群容量调整方法及装置与流程

本发明涉及集群控制领域,尤其涉及一种集群容量调整方法及装置。



背景技术:

集群包括多个服务器,这些服务器拥有共享数据存储空间,各服务器通过内部局域网相互通信,一个集群中开启的服务器数量决定了集群的处理能力。集群中开启的服务器数量又称为集群容量。集群需要根据实际场景调整该集群的容量。

调整集群容量有两种常见情形,第一种情形,当需要处理的数据超过集群处理数据的能力时,说明集群容量不能满足当前的数据处理需求,需要增加开启的服务器数量,即扩容;第二种情形,当需要处理数据的未超过集群处理数据能力时,减少一部分的服务器也能达到数据处理要求,则需要一部分关闭集群中已开启的服务器以节约计算资源,即缩容。

现有技术中,对集群容量进行调整的方式为:根据集群当前的数据处理量和健康指标值与预设的压测性能指标或者集群健康指标的阈值比较结果,对集群容量进行调整。其中,压测性能指标为集群在当前开启的服务器数量下,能处理数据的上限值,健康指标为表征集群正常运行状态的指标,如请求处理时长。但是,这种人工设定阈值的方法主观性较大,而且集群容量需求有分布规律,在一个预设周期的不同时段,集群容量需求会有变化,集群在一个时段的容量需求可能不适用于另一个时段,因此单一设定阈值的方法也难以适用多个时段的容量需求,不具有实时性。

因此,现有技术中人工设定阈值的方法主观性较大,单一设定阈值的方法也难以适用多个时段的容量需求,不具有实时性的问题亟待解决。



技术实现要素:

本申请实施例提供一种集群容量调整方法及装置,解决了现有技术中人工设定阈值的方法主观性较大,单一设定阈值的方法也难以适用多个时段的容量需求,不具有实时性是一个亟待解决的问题。

本申请实施例提供了一种集群容量调整方法,包括:将集群在预设时刻的配置信息和处理信息编码为集群特征向量,并根据所述集群特征向量,确定所述集群需要开启的第一服务器数量;所述配置信息为所述集群在所述预设时刻服务能力的属性信息,所述处理信息为所述集群在所述预设时刻需要处理数据量的属性信息;按照预设周期或者接收调整所述集群的服务器数量的调整请求,并根据所述集群的第二服务器数量与所述第一服务器数量的大小关系,对所述集群开启的服务器数量进行调整;所述第二服务数量为所述集群在所述预设时刻实际开启的服务器数量。

可选的,所述根据所述集群的第二服务器数量与所述第一服务器数量的大小关系,对所述集群开启的服务器数量进行调整,包括:若所述第一服务器数量减去所述第二服务器数量的第一差值大于或等于第一预设阈值,则增加所述集群开启的服务器数量至第三服务器数量;所述第三服务器数量减去所述第一服务器数量的第二差值的绝对值小于所述第一预设阈值;所述第一预设阈值为正整数;若所述第一差值小于或等于第二预设阈值,则减小所述集群开启的服务器数量至第四服务器数量;所述第四服务器数量减去所述第一服务器数量的第三差值的绝对值小于所述第二预设阈值的绝对值;所述第二预设阈值为负整数。

可选的,所述第三服务器数量等于所述第一服务器数量,所述第一预设阈值为1;所述第四服务器数量等于所述第一服务器数量,所述第二预设阈值为-1。

可选的,所述根据所述集群的第二服务器数量与所述第一服务器数量的大小关系,对所述集群开启的服务器数量进行调整,还包括:若所述第一差值小于所述第一预设阈值且大于所述第二预设阈值,则保持所述集群的服务器开启数量为所述第二服务器数量不变。

可选的,所述根据所述集群特征向量,确定所述集群需要开启的第一服务器数量,包括:将所述集群特征向量输入至预训练的长短期记忆lstm神经网络后,所述lstm神经网络输出的服务器数量,作为所述第一服务器数量;其中,所述lstm神经网络的训练数据集为:按预设时长内的时序采集的至少一条训练样本;所述至少一条训练样本中任一条训练样本为:由在该训练样本对应时刻采集的所述集群的配置信息、处理信息以及所述集群在该时刻实际开启的服务器数量,编码而成的特征向量;在根据所述训练数据集对所述lstm神经网络训练的训练过程中,所述lstm神经网络的舍弃率范围是0.5±0.1。

可选的,所述训练过程中,所述lstm神经网络的误差计算方式为均方误差;所述lstm神经网络权重参数的迭代更新方式为均方根反向传播rmsprop算法。

可选的,所述配置信息包括所述预设时刻的以下至少一项:所述集群可开启的服务器数量的上限值;所述集群压测的性能指标;所述集群中服务器的处理速率之和;所述处理信息包括单位时间内以下至少一项:所述集群的读请求次数;所述集群的写请求次数;所述集群的并发请求占所述单位时间内请求总次数的比值;所述集群中存储大小在预设存储空间范围内的文件占所述集群总存储空间的比值。

本申请实施例中,将集群在预设时刻的配置信息和处理信息编码为集群特征向量,并根据所述集群特征向量,确定所述集群需要开启的第一服务器数量,而配置信息为所述集群在所述预设时刻服务能力的属性信息,且处理信息为所述集群在所述预设时刻需要处理数据量的属性信息,即第一服务器数量是根据集群在预设时刻的需要处理数据量和服务能力的属性信息确定出来的,有较强的实时性,而后再根据集群当前实际开启的第二服务器数量与第一服务器数量的大小关系,对所述集群开启的服务器数量进行调整,从而具有实时性。

本申请提供一种集群容量调整装置,包括:确定模块,用于将集群在预设时刻的配置信息和处理信息编码为集群特征向量,并根据所述集群特征向量,确定所述集群需要开启的第一服务器数量;所述配置信息为所述集群在所述预设时刻服务能力的属性信息,所述处理信息为所述集群在所述预设时刻需要处理数据量的属性信息;处理模块,用于按照预设周期或者接收调整所述集群的服务器数量的调整请求,并根据所述集群的第二服务器数量与所述第一服务器数量的大小关系,对所述集群开启的服务器数量进行调整;所述第二服务数量为所述集群在所述预设时刻实际开启的服务器数量。

可选的,所述调整模块具体用于:若所述第一服务器数量减去所述第二服务器数量的第一差值大于或等于第一预设阈值,则增加所述集群开启的服务器数量至第三服务器数量;所述第三服务器数量减去所述第一服务器数量的第二差值的绝对值小于所述第一预设阈值;所述第一预设阈值为正整数;若所述第一差值小于或等于第二预设阈值,则减小所述集群开启的服务器数量至第四服务器数量;所述第四服务器数量减去所述第一服务器数量的第三差值的绝对值小于所述第二预设阈值的绝对值;所述第二预设阈值为负整数。

可选的,所述第三服务器数量等于所述第一服务器数量,所述第一预设阈值为1;所述第四服务器数量等于所述第一服务器数量,所述第二预设阈值为-1。

可选的,所述调整模块还用于:若所述第一差值小于所述第一预设阈值且大于所述第二预设阈值,则保持所述集群的服务器开启数量为所述第二服务器数量不变。

可选的,所述确定模块具体用于:将所述集群特征向量输入至预训练的长短期记忆lstm神经网络后,所述lstm神经网络输出的服务器数量,作为所述第一服务器数量;其中,所述lstm神经网络的训练数据集为:按预设时长内的时序采集的至少一条训练样本;所述至少一条训练样本中任一条训练样本为:由在该训练样本对应时刻采集的所述集群的配置信息、处理信息以及所述集群在该时刻实际开启的服务器数量,编码而成的特征向量;在根据所述训练数据集对所述lstm神经网络训练的训练过程中,所述lstm神经网络的舍弃率范围是0.5±0.1。

可选的,所述训练过程中,所述lstm神经网络的误差计算方式为均方误差;所述lstm神经网络权重参数的迭代更新方式为均方根反向传播rmsprop算法。

可选的,所述配置信息包括所述预设时刻的以下至少一项:所述集群可开启的服务器数量的上限值;所述集群压测的性能指标;所述集群中服务器的处理速率之和;所述处理信息包括单位时间内以下至少一项:所述集群的读请求次数;所述集群的写请求次数;所述集群的并发请求占所述单位时间内请求总次数的比值;所述集群中存储大小在预设存储空间范围内的文件占所述集群总存储空间的比值。

本申请实施例提供一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,如本申请实施例提供的集群容量调整方法及可选方法被执行。

本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本申请实施例提供的集群容量调整方法及可选方法被执行。

本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,如本申请实施例提供的集群容量调整方法及可选方法被执行。

附图说明

图1为本申请实施例提供的一种集群容量调整方法的步骤流程图;

图2为本申请实施例提供的一种集群容量调整装置的结构示意图。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。

集群是一组相互独立的服务器,每个服务器为一个计算机,利用高速通信网络组成一个单一的计算机系统,并以单一系统的模式加以管理,即对外逻辑上表现为一个服务器,物理上实际上包括多个服务器。

集群中的服务器拥有共享数据存储空间,各服务器通过内部局域网相互通信,当一台服务器发生故障时,它所运行的应用程序将由其他服务器自动接管。因此,集群能提高系统的稳定性和网络中心的数据处理能力,具有较好的容错性和可扩展性。

一个集群可根据实际场景调整该集群中服务器的数量。举例来说,当需要处理数据的超过集群处理数据的能力时,说明已开启的服务器数量不足以支撑当前的数据处理需求,因此需要增加开启的服务器数量。此外,当需要处理数据的未超过集群处理数据能力时,不开启当前数量的服务器也能达到数据处理要求时,则需要一部分关闭集群中已开启的服务器以节约计算资源。

目前对集群容量进行调整的方式为:根据集群当前的数据处理量和健康指标值与预设的压测性能指标或者集群健康指标的阈值比较结果,对集群容量进行调整。其中,压测性能指标为集群在当前开启的服务器数量下,能处理数据的上限值,健康指标为表征集群正常运行状态的指标,如请求处理时长。但是,这种人工设定阈值的方法主观性较大,而且集群容量需求有分布规律,在一个预设周期的不同时段,集群容量需求会有变化,集群在一个时段的容量需求可能不适用于另一个时段。举例来说,集群处理的数据量有高峰期和低谷期,高峰期需要开启较多的服务器以满足服务质量,显然在高峰期设定的压测指标阈值和健康指标阈值不适用于低谷期,因此单一设定阈值的方法也难以适用多个时段的容量需求,不具有实时性。

为此,需要提供一种方法,解决现有技术中人工设定阈值的方法主观性较大,单一设定阈值的方法也难以适用多个时段的容量需求,不具有实时性的问题。

如图1所示,为本申请实施例提供的一种集群容量调整方法的步骤流程图。

步骤101:将集群在预设时刻的配置信息和处理信息编码为集群特征向量,并根据集群特征向量,确定集群需要开启的第一服务器数量。

其中,配置信息为集群在预设时刻服务能力的属性信息,处理信息为集群在预设时刻需要处理数据量的属性信息;

步骤102:按照预设周期或者接收调整所述集群的服务器数量的调整请求,并根据所述集群的第二服务器数量与所述第一服务器数量的大小关系,对所述集群开启的服务器数量进行调整。

其中,第二服务数量为,集群在预设时刻的服务能力和需要处理数据量的条件下,实际开启的服务器数量。

步骤101中,一种可选实施方式为,配置信息包括预设时刻的以下至少一项:集群可开启的服务器数量的上限值;集群压测的性能指标;集群中服务器的处理速率之和。其中,集群在搭建时部署了多台服务器,但不是一直全部开启,在不同时间段开启的服务器数量也不相同,集群可开启的服务器数量的上限值即为集群在搭建时部署的全部服务器的数量。集群压测的性能指标为,在预设时刻集群开启的服务器数量下,能够处理的数据量之和,举例来说,在预设时刻开启的服务器数量为7台,这7台服务器能够处理的数据量之和,即为预设时刻集群压测的性能指标。需要说明的是,配置信息仅以上述实施可选方式列举的信息为例,不限于其它配置信息。

处理信息包括单位时间内以下至少一项:集群的读请求次数;集群的写请求次数;集群的并发请求占单位时间内请求总次数的比值;集群中存储大小在预设存储空间范围内的文件占集群总存储空间的比值。其中,单位时间指在预设时刻之前选取的一段时间,如1秒。集群的读请求次数为,集群在预设时刻之前单位时间内开启的服务器中每个服务器收到读请求次数之和;集群的写请求次数为,集群在预设时刻之前单位时间内开启的服务器中每个服务器收到写请求次数之和;集群的并发请求占单位时间内请求总次数的比值为,集群在预设时刻之前单位时间内,开启的服务器中每个服务器收到的并发请求次数之和与开启的服务器中每个服务器收到的请求次数总和的比值;集群中存储大小在预设存储空间范围内的文件占集群总存储空间的比值为,集群在预设时刻之间单位时间内,存储大小在预设存储空间范围内的文件与集群总存储空间的比值的平均值,举例来说,预设存储范围是1mb-50mb,统计在单位时间内,文件大小在1mb-50mb范围内的文件个数以及存储文件的总数,前者与后者的比值即为存储大小在预设存储空间范围内的文件占集群总存储空间的比值。需要说明的是,处理信息仅以上述可选实施方式列举的信息为例,不限于其它处理信息。

步骤101中,通过提取集群在预设时刻的配置信息和处理信息,编码为集群特征向量,从而表征集群在预设时刻的运行状态。因此,根据集群特征向量确定出的集群需要开启的第一服务器数量,是根据集群在预设时刻的运行状态确定的服务器数据,相对于人工设定阈值更有依据。

步骤101中,根据所述集群特征向量,确定所述集群需要开启的第一服务器数量,一种可选实施方式为,将所述集群特征向量输入至预训练的长短期记忆(longshortterm-memory,lstm)神经网络后,lstm神经网络输出的服务器数量,作为所述第一服务器数量。

lstm神经网络按照集群正常运行的训练数据集训练而成,训练数据集为按照时间顺序提取的集群的历史配置信息和处理信息,由于lstm神经网络是一种时间递归神经网络,适合于处理和预测时间序列有关的事件,因此训练后的lstm神经网络能根据训练数据集中的历史数据,对相同时间段的集群需要开启的服务器数量做预测。

一种可选实施方式为,lstm神经网络的训练数据集为按预设时长内的时序采集的至少一条训练样本,其中任一条训练样本为:由在该训练样本对应时刻采集的集群的配置信息、处理信息以及集群在该时刻实际开启的服务器数量,编码而成的特征向量。

获取到lstm的训练数据集后,即根据训练数据集对lstm神经网络进行训练,当损失值不再下降后得到一个稳定的lstm神经网络,此时lstm神经网络完成训练,最后保存训练后lstm的参数。训练后的lstm神经网络可根据预设时刻的集群特征向量输出预测的服务器数量。因此,本申请实施例可通过训练lstm模型对集群服务能力进行建模,对集群在预设时刻的处理信息和配置信息的收集,利用lstm神经网络对时序特征敏感的特点,通过训练好的lstm神经网络对预设时刻的集群服务能力进行预测,输出预测的集群容量,从而具有较强的实时性,该方法优于传统的根据人工设定阈值和对集群进行压测的解决方案。

需要说明的是,训练后的lstm神经网络不止一种,因此lstm神经网络的参数取值组合也不止一种。举例来说,根据训练数据集对lstm神经网络训练的训练过程中,lstm神经网络的舍弃率范围在0.5±0.1内,lstm神经网络的误差计算方式为均方误差;lstm神经网络权重参数的迭代更新方式为均方根反向传播(rootmeansquareprop,rmsprop)算法;lstm神经网络的激活函数为双曲正切函数;lstm神经网络的训练轮数为100±20,每批次训练输入至lstm神经网络的训练样本个数范围是50±20。

步骤102中,若预测的集群容量大于当前实际集群容量,则进行集群扩容。若预测的集群容量小于当前实际集群容量,则不进行集群扩容或者降低集群容量。由于集群容量多开启一定数量或少开启一定数量的服务器并不影响集群的运行,因此,对集群容量的调整可以有多个选择,开启的服务器数量可以是一个范围。对所述集群开启的服务器数量进行调整的一种可选实施方式如下,该实施方式具体包括两种情形:

第一种情形,若所述第一服务器数量减去所述第二服务器数量的第一差值大于或等于第一预设阈值,则增加所述集群开启的服务器数量至第三服务器数量;所述第三服务器数量减去所述第一服务器数量的第二差值的绝对值小于所述第一预设阈值;所述第一预设阈值为正整数。其中,第一预设阈值为实验测得的在预测的集群需要开启的服务器数量允许波动的范围阈值。

举例来说,第一服务器数量为100,第二服务器数量为90,因此第一差值为10,第一预设阈值为6,所以需要增加集群开启的服务器数量至第三服务器数量,以保证集群的正常运行,第三服务器数量的范围是100±6,即94~106,开启的服务器数量在该范围内的集群均能正常运行。

第二种情形,若所述第一差值小于或等于第二预设阈值,则减小所述集群开启的服务器数量至第四服务器数量;所述第四服务器数量减去所述第一服务器数量的第三差值的绝对值小于所述第二预设阈值的绝对值;所述第二预设阈值为负整数。

举例来说,第一服务器数量为100,第二服务器数量为110,因此第一差值为-10,第一预设阈值为-3,所以需要降低集群开启的服务器数量至第四服务器数量以节约集群的资源,第四服务器数量的范围是100±3,即97~103,开启的服务器数量在该范围内的集群均能保证正常运行,又少开启了服务器,达到了节约资源目的。

第三种情形,若所述第一差值小于所述第一预设阈值且大于所述第二预设阈值,则保持所述集群的服务器开启数量为所述第二服务器数量不变。

在上述情形中,一种可选实施方式为,所述第三服务器数量等于所述第一服务器数量,所述第一预设阈值为1;所述第四服务器数量等于所述第一服务器数量,所述第二预设阈值为-1。该实施方式下,对服务器数量的变化更为敏感,即便预测的服务器数量与实际开启的服务器数量只差1台,也会对集群容量做调整。

本申请实施例中,将集群在预设时刻的配置信息和处理信息编码为集群特征向量,并根据所述集群特征向量,确定所述集群需要开启的第一服务器数量,而配置信息为所述集群在所述预设时刻服务能力的属性信息,且处理信息为所述集群在所述预设时刻需要处理数据量的属性信息,即第一服务器数量是根据集群在预设时刻的需要处理数据量和服务能力的属性信息确定出来的,有较强的实时性,而后再根据集群当前实际开启的第二服务器数量与第一服务器数量的大小关系,对所述集群开启的服务器数量进行调整,从而具有实时性。

如图2所示,为本申请实施例提供的一种集群容量调整装置的结构示意图。

本申请提供一种集群容量调整装置,包括:确定模块201,用于将集群在预设时刻的配置信息和处理信息编码为集群特征向量,并根据所述集群特征向量,确定所述集群需要开启的第一服务器数量;所述配置信息为所述集群在所述预设时刻服务能力的属性信息,所述处理信息为所述集群在所述预设时刻需要处理数据量的属性信息;处理模块202,用于按照预设周期或者接收调整所述集群的服务器数量的调整请求,并根据所述集群的第二服务器数量与所述第一服务器数量的大小关系,对所述集群开启的服务器数量进行调整;所述第二服务数量为所述集群在所述预设时刻实际开启的服务器数量。

可选的,所述调整模块具体用于:若所述第一服务器数量减去所述第二服务器数量的第一差值大于或等于第一预设阈值,则增加所述集群开启的服务器数量至第三服务器数量;所述第三服务器数量减去所述第一服务器数量的第二差值的绝对值小于所述第一预设阈值;所述第一预设阈值为正整数;若所述第一差值小于或等于第二预设阈值,则减小所述集群开启的服务器数量至第四服务器数量;所述第四服务器数量减去所述第一服务器数量的第三差值的绝对值小于所述第二预设阈值的绝对值;所述第二预设阈值为负整数。

可选的,所述第三服务器数量等于所述第一服务器数量,所述第一预设阈值为1;所述第四服务器数量等于所述第一服务器数量,所述第二预设阈值为-1。

可选的,所述调整模块还用于:若所述第一差值小于所述第一预设阈值且大于所述第二预设阈值,则保持所述集群的服务器开启数量为所述第二服务器数量不变。

可选的,所述确定模块201具体用于:将所述集群特征向量输入至预训练的长短期记忆lstm神经网络后,所述lstm神经网络输出的服务器数量,作为所述第一服务器数量;其中,所述lstm神经网络的训练数据集为:按预设时长内的时序采集的至少一条训练样本;所述至少一条训练样本中任一条训练样本为:由在该训练样本对应时刻采集的所述集群的配置信息、处理信息以及所述集群在该时刻实际开启的服务器数量,编码而成的特征向量;在根据所述训练数据集对所述lstm神经网络训练的训练过程中,所述lstm神经网络的舍弃率范围是0.5±0.1。

可选的,所述训练过程中,所述lstm神经网络的误差计算方式为均方误差;所述lstm神经网络权重参数的迭代更新方式为均方根反向传播rmsprop算法。

可选的,所述配置信息包括所述预设时刻的以下至少一项:所述集群可开启的服务器数量的上限值;所述集群压测的性能指标;所述集群中服务器的处理速率之和;所述处理信息包括单位时间内以下至少一项:所述集群的读请求次数;所述集群的写请求次数;所述集群的并发请求占所述单位时间内请求总次数的比值;所述集群中存储大小在预设存储空间范围内的文件占所述集群总存储空间的比值。

本申请实施例提供一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,如本申请实施例提供的集群容量调整方法及可选方法被执行。

本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本申请实施例提供的集群容量调整方法及可选方法被执行。

本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,如本申请实施例提供的集群容量调整方法及可选方法被执行。

最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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