智能化扩容缩容方法、装置、计算机设备及存储介质与流程

文档序号:17988764发布日期:2019-06-22 00:36阅读:214来源:国知局
智能化扩容缩容方法、装置、计算机设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种智能化扩容缩容方法、装置、计算机设备及存储介质。



背景技术:

众所周知,当系统的服务请求量越来越大时,需要对其进行扩容;当系统的服务请求量越来越小时,需要对其进行缩容。目前,一般根据系统的实时服务请求量进行动态的扩容缩容。例如,对于一个负责提供员工登录验证的系统,平时其cpu使用率和内存使用率都较低,但在每个工作日上午,员工集中在9点左右进行登录,此时,cpu使用率和内存使用率便会急速飙升。一旦检测到该系统的实时服务请求量超过预定阈值,便会立即启动扩容操作,即增加该系统的实例数量。然而,由于系统扩容一般需要5-10分钟的时间,在扩容完成之前原有系统资源供给不足是很危险的,轻则导致服务质量下降,造成运营商经济损失,重则导致服务器瘫痪,甚至整个系统崩溃。因此,现有的扩容缩容方法在这种情况下会捉襟见肘。



技术实现要素:

针对上述现有技术的不足,本发明的目的在于提供一种智能化扩容缩容方法、装置、计算机设备及存储介质,以实现资源的提前预分配。

为了实现上述目的,本发明提供一种智能化扩容缩容方法,包括以下步骤:

步骤s1,获取系统对应的历史资源负载数据以及当前时刻的资源量,其中,当前时刻的所述资源量等于当前时刻的资源负载量与空闲资源量之和;

步骤s2,根据所述历史资源负载数据,预测所述系统下一时刻对应的资源需求量;

步骤s3,将所述系统下一时刻的资源需求量减去当前时刻的资源量,若得到的差值为正并且所述差值与当前时刻的资源量之比大于预设扩容百分比,则执行步骤s4,若得到的差值为负并且所述差值的绝对值与当前时刻的资源量之比大于预设缩容百分比,则执行步骤s5;

步骤s4,将所述系统的资源量增大至与所述下一时刻的资源需求量匹配;

步骤s5,将所述系统的资源量减小至与所述下一时刻的资源需求量匹配。

进一步地,在所述步骤s2中,通过如下步骤预测所述系统下一时刻对应的资源需求量:

步骤s21,根据所述历史资源负载数据,拟合得到所述系统对应的历史资源负载量与时间的关系曲线;

步骤s22,根据所述关系曲线,预测所述系统下一时刻对应的资源负载量;

步骤s23,根据所述系统下一时刻对应的资源负载量以及预设的资源预留量确定所述系统下一时刻对应的资源需求量。

进一步地,在所述步骤s21中,采用sklearn机器学习工具拟合所述关系曲线。

进一步地,所述sklearn机器学习工具采用线性回归算法拟合所述关系曲线。

进一步地,在所述步骤s23中,所述资源预留量大于所述系统下一时刻对应的资源需求量的50%。

进一步地,在所述步骤s3中,所述预设扩容百分比和预设缩容百分比均为8%~15%。

进一步地,在所述步骤s1中,所述历史资源负载数据包含:各时刻对应的在线实例的数量、各实例单位时间占用cpu的大小、各实例单位时间占用内存的大小、各实例的服务请求的数量、以及各服务请求的响应时间。

为了实现上述目的,本发明还提供一种智能化扩容缩容装置,包括:

数据获取模块,用于获取系统对应的历史资源负载数据以及当前时刻的资源量,其中,当前时刻的所述资源量等于当前时刻的资源负载量与空闲资源量之和;

预测模块,用于根据所述历史资源负载数据,预测所述系统下一时刻对应的资源需求量;

计算模块,用于将所述系统下一时刻的资源需求量减去当前时刻的资源量,得到差值;

扩容模块,用于在所述差值为正并且所述差值与当前时刻的资源量之比大于预设扩容百分比时,将所述系统的资源量增大至与所述系统下一时刻对应的资源需求量匹配;

缩容模块,用于在所述差值为负并且所述差值的绝对值与当前时刻的资源量之比大于预设缩容百分比时,将所述系统的资源量减小至与所述系统下一时刻对应的资源需求量匹配。

进一步地,所述预测模块包括:

拟合单元,用于根据所述历史资源负载数据,拟合得到所述系统对应的历史资源负载量与时间的关系曲线;

预测单元,用于根据所述关系曲线,预测所述系统下一时刻对应的资源负载量;

需求量确定单元,用于根据所述系统下一时刻对应的资源负载量以及预设的资源预留量确定所述系统下一时刻的资源需求量。

进一步地,所述拟合单元采用sklearn机器学习工具拟合所述关系曲线。

进一步地,所述sklearn机器学习工具采用线性回归算法拟合所述关系曲线。

进一步地,所述资源预留量大于所述系统下一时刻对应的资源需求量的50%。

进一步地,所述预设扩容百分比和预设缩容百分比均为8%~15%。

进一步地,所述历史资源负载数据包含:各时刻对应的在线实例的数量、各实例单位时间占用cpu的大小、各实例单位时间占用内存的大小、各实例的服务请求的数量、以及各服务请求的响应时间。

为了实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

通过上述技术方案,本发明相对于现有技术具有如下有益效果:

本发明首先根据系统的历史资源负载量预测其下一时刻对应的资源需求量,而后根据预测到的资源需求量与当前时刻的资源量的差值来增加或减少系统的资源量,从而即能保证系统在下一时刻资源需求上升时有充足的资源量,不致出现资源短缺或资源供给滞后的情况,又能保护系统在下一时刻资源过剩时释放空闲资源,防止资源浪费。由此,本发明为系统资源的优化合理配置提供了切实有效的保障,在提供高服务质量的同时,保证系统稳定运行和资源的合理使用。

附图说明

图1为本发明智能化扩容缩容方法的一个实施例的流程图;

图2为本发明智能化扩容缩容装置的一个实施例的结构框图;

图3为图2中的预测模块的一个实施例的结构框图;

图4为本发明计算机设备的硬件结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

如图1所示,示出了本发明一种智能化扩容缩容方法,包括如下步骤:

步骤s1,获取待扩容缩容系统的历史资源负载数据以及当前时刻的资源量(当前时刻的资源量等于系统当前时刻的资源负载量与空闲资源量之和),并将获取到的历史资源负载数据按时间顺序保存在cvs(comma-separatedvalues,逗号分格值)表格中。其中,系统的历史资源负载数据包含:系统各时刻对应的在线实例的数量、各实例单位时间占用cpu的大小、各实例单位时间占用内存的大小、各实例的服务请求量、以及各服务请求的响应时间等数据。这些数据能够反映系统在哪些时间段比较繁忙、哪些时间段比较空闲、以及各时刻需要占用系统的资源量等。

步骤s2,根据系统的历史资源负载数据,预测系统下一时刻对应的资源需求量,具体通过如下步骤实现:

步骤s21,根据系统对应的历史资源负载数据,拟合得到系统对应的历史资源负载量与时间的关系曲线,所述的资源负载量包含cpu负载量、内存负载量和实例负载量。曲线拟合作为一个经典问题,是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析变量间的关系。在本发明中,具体是指根据系统各时刻对应的在线实例的数量、各实例单位时间占用cpu的大小、各实例单位时间占用内存的大小、各实例的服务请求量、以及各服务请求的响应时间等数据拟合cpu负载量与时间的关系曲线、内存负载量与时间的关系曲线、以及实例负载量与时间的关系曲线。

目前,已存在多种机器学习曲线拟合方法,本实施例优选采用现有的sklearn机器学习工具进行拟合。sklearn是机器学习中一个常用的python第三方工具,里面对一些常用的机器学习方法进行了封装。在进行拟合时,只需将前述c步骤sv表格中的历史资源负载数据传送至sklearn,sklearn便可采用线性回归算法自动拟合出历史资源负载量与时间的关系曲线。其中,线性回归算法是指利用数理统计中的回归分析,来确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法之一,运用十分广泛。根据采集到的历史资源负载数据的数量多少,拟合的关系曲线可以反映系统在一天中哪些时间段比较繁忙/空闲、一周内哪些天比较繁忙/空闲、一个月内哪些天比较繁忙/空闲等信息。

步骤s22,根据前面拟合得到的关系曲线,预测系统下一时刻对应的资源负载量。具体来说,得到历史cpu负载量、内存负载量、实例负载量与时间的关系曲线后,只要将下一时刻的时间点代入关系曲线,即可得到系统下时刻对应的cpu负载量、内存负载量和实例负载量。由于系统扩容缩容一般需要至少5分钟时间才能完成,所以下一时刻一般是指当前时刻的5分钟以后的时刻,从而在系统负载率飙升时,能提前5分钟开始扩容,保证系统负载达到高值之前,提前为其增加资源,防止系统故障。

步骤s23,根据系统下一时刻对应的资源负载量以及预设的资源预留量确定系统下一时刻对应的资源需求量。应该理解,为了预留缓冲的余地,某时刻对应的资源需求量应包含该时刻系统提供正常服务的资源负载量以及供缓冲的预留量,一般资源预留量应大于总的资源需求量的50%。例如,假设内存预留量设为内存需求量的50%,预测系统下一时刻的内存负载量为1g,则应确定系统下一时刻的内存需求量为1g/(1-50%)=2g。

步骤s3,将系统下一时刻的资源需求量减去当前时刻的资源量,若得到的差值为正并且差值与当前时刻的资源量之比大于预设扩容百分比,则执行步骤s4,若得到的差值为负并且差值的绝对值与当前时刻的资源量之比大于预设缩容百分比,则执行步骤s5。

步骤s4,若得到的差值为正并且差值与当前时刻的资源量之比大于预设扩容百分比,说明当前时刻系统的cpu、内存或实例不能满足下一时刻的需求,则对系统进行扩容,以使其资源量增大至与下一时刻的资源需求量匹配。在本实施例中,扩容通过增加系统的实例数量来实现。

步骤s5,若得到的差值为负并且差值的绝对值与当前时刻的资源量之比大于预设缩容百分比,说明当前时刻系统的cpu、内存或实例超出下一时刻的需求,则对系统进行缩容,以使其资源量减小至与下一时刻的资源需求量匹配,防止资源浪费。在本实施例中,缩容通过减少系统的实例数量来实现。

可见,本实施例根据预测到的系统下一时刻的资源需求量与当前时刻的资源量的差值来增加或减少系统的资源量,从而即能保证系统在下一时刻资源需求上升时有充足的资源量,不致出现资源短缺或资源供给滞后的情况,又能保护系统在下一时刻资源过剩时释放空闲资源,防止资源浪费。

其中,步骤s3设计扩容百分比和缩容百分比的目的是为了防止频繁对业务系统进行扩容缩容,影响系统稳定。例如,假设在第0时刻,系统的资源量与资源需求量匹配;在第1时刻,系统的资源需求量比第0时刻的资源量小1%;在第2时刻,资源需求量爆增,比第1时刻的资源需求量大20%。若未设置扩容、缩容百分比,则将在第1时刻减少资源量、第2时刻增加资源量,导致频繁进行扩容、缩容操作。针对此情况,本发明设计了扩容百分比和缩容百分比,当下一时刻的资源需求量比当前时刻的资源量大一定比例,才对系统进行扩容,当下一时刻的资源需求量比当前时刻的资源量小一定比例,才对系统进行缩容。其中,扩容百分比和缩容百分比可以相同也可以不同,范围均在8%~15%之间,当两者均设为10%时,若预测到下一时刻系统的资源需求量仅比当前时刻系的资源量大5%或小5%,则不对其进行扩容/缩容;若预测到下一时刻系统的资源需求量比当前时刻系统的资源量大10%或小10%以上,才对其进行扩容/缩容。

实施例二

如图2所示,示出了一种智能化扩容缩容装置,包括数据获取模块、预测模块、计算模块、扩容模块和缩容模块。其中:

数据获取模块用于获取系统对应的历史资源负载数据以及当前时刻的资源量(当前时刻的资源量等于系统当前时刻的资源负载量与空闲资源量之和),并将获取到的历史资源负载数据按时间顺序保存在csv表格中。其中,系统的历史资源负载数据包含:系统各时刻对应的在线实例的数量、各实例单位时间占用cpu的大小、各实例单位时间占用内存的大小、各实例的服务请求量、以及各服务请求的响应时间等数据。这些数据能够反映系统在哪些时间段比较繁忙、哪些时间段比较空闲、以及各时刻需要占用系统的资源量等。

预测模块用于根据历史资源负载数据,预测系统下一时刻对应的资源需求量。

计算模块用于计算系统下一时刻的资源需求量减去当前时刻的资源量的差值。

扩容模块用于在计算模块得到的差值为正并且差值与当前时刻的资源量之比大于预设扩容百分比时,将系统的资源量增大至与系统下一时刻对应的资源需求量匹配。若差值为正并且差值与当前时刻的资源量之比大于预设扩容百分比,说明系统下一时刻对应的资源需求量比当前时刻系统的资源量大一定比例,系统当前时刻的cpu、内存或实例不能满足下一时刻的需求,则应对系统进行扩容,以使其资源量增大至与下一时刻的资源需求量匹配。在本实施例中,扩容通过增加系统的实例数量来实现。

缩容模块用于在计算模块得到的差值为负并且差值的绝对值与当前时刻的资源量之比大于预设缩容百分比时,将系统的资源量减小至与系统下一时刻对应的资源需求量匹配。若差值为负并且差值的绝对值与当前时刻的资源量之比大于预设缩容百分比,说明系统下一时刻对应的资源需求量比当前时刻的资源量小,系统当前时刻的cpu、内存或实例超出下一时刻的需求,则对系统进行缩容,以使其资源量减小至与下一时刻的资源需求量匹配,防止资源浪费。在本实施例中,缩容通过减少系统的实例数量来实现。

可见,本实施例根据预测到的资源需求量与当前时刻的资源量的差值来增加或减少系统的资源量,从而即能保证系统在下一时刻资源需求上升时有充足的资源量,不致出现资源短缺或资源供给滞后的情况,又能保护系统在下一时刻资源过剩时释放空闲资源,防止资源浪费。

其中,本实施例设计扩容百分比和缩容百分比的目的是为了防止频繁对业务系统进行扩容缩容,影响系统稳定。例如,假设在第0时刻,系统的资源量与资源需求量匹配;在第1时刻,系统的资源需求量比第0时刻的资源量小1%;在第2时刻,资源需求量爆增,比第1时刻的资源需求量大20%。若未设置扩容、缩容百分比,则将在第1时刻减少资源量、第2时刻增加资源量,导致频繁进行扩容、缩容操作。针对此情况,本发明设计了扩容百分比和缩容百分比,当下一时刻的资源需求量比系统当前时刻的资源量大一定比例,才对系统进行扩容,当下一时刻的资源需求量比系统当前时刻的资源量小一定比例,才对系统进行缩容。其中,扩容百分比和缩容百分比可以相同也可以不同,范围均在8%~15%之间,当两者均设为10%时,若预测到下一时刻系统的资源需求量仅比当前时刻资源量大5%或小5%,则不对其进行扩容/缩容;若预测到下一时刻系统的资源需求量比当前时刻资源量大10%或小10%以上,才对其进行扩容/缩容。

在本实施例中,上述预测模块如图3所示,包括:

拟合单元,用于根据历史资源负载数据,拟合得到系统对应的历史资源负载量与时间的关系曲线。的资源负载量包含cpu负载量、内存负载量和实例负载量。曲线拟合作为一个经典问题,是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析变量间的关系。在本发明中,具体是指根据系统各时刻对应的在线实例的数量、各实例单位时间占用cpu的大小、各实例单位时间占用内存的大小、各实例的服务请求量、以及各服务请求的响应时间等数据拟合cpu负载量与时间的关系曲线、内存负载量与时间的关系曲线、以及实例负载量与时间的关系曲线。

目前,已存在多种机器学习曲线拟合方法,本实施例拟合单元优选采用的是现有的sklearn机器学习工具进行拟合。sklearn是机器学习中一个常用的python第三方工具,里面对一些常用的机器学习方法进行了封装。在进行拟合时,只需将前述csv表格中的历史资源负载数据传送至sklearn,sklearn便可采用线性回归算法自动拟合出历史资源负载量与时间的关系曲线。其中,线性回归算法是指利用数理统计中的回归分析,来确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法之一,运用十分广泛。根据采集到的历史资源负载数据的数量多少,拟合的关系曲线可以反映系统在一天中哪些时间段比较繁忙/空闲、一周内哪些天比较繁忙/空闲、一个月内哪些天比较繁忙/空闲等信息。

预测单元,用于根据关系曲线,预测系统下一时刻对应的资源负载量。具体来说,预测单元得到历史cpu负载量、内存负载量、实例负载量与时间的关系曲线后,只需将下一时刻的时间点代入关系曲线,即可得到系统下时刻对应的cpu负载量、内存负载量和实例负载量。由于系统扩容缩容一般需要至少5分钟时间才能完成,所以下一时刻一般是指5分钟以后的时刻,从而在系统负载率飙升时,能提前5分钟开始扩容,保证系统负载达到高值之前,提前为其增加资源,防止系统故障。

需求量确定单元,用于根据所述系统下一时刻对应的资源负载量以及预设的资源预留量确定所述系统下一时刻的资源需求量。应该理解,为了预留缓冲的余地,某时刻对应的资源需求量应包含该时刻系统提供正常服务的资源负载量以及供缓冲的预留量,一般资源预留量应大于总的资源需求量的50%。例如,假设内存预留量设为内存需求量的50%,预测系统下一时刻的内存负载量为1g,则应确定系统下一时刻的内存需求量为1g/(1-50%)=2g。

实施例三

本实施例提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图4所示。需要指出的是,图4仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,步骤sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(步骤sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(步骤smartmediacard,步骤smc),安全数字(步骤securedigital,步骤sd)卡,闪存卡(fla步骤shcard)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如实施例一的智能化扩容缩容装置10的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器22在一些实施例中可以是中央处理器(centralproce步骤s步骤singunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行智能化扩容缩容装置10,以实现实施例一的智能化扩容缩容方法。

实施例四

本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,步骤sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(步骤sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储智能化扩容缩容装置10,被处理器执行时实现实施例一的智能化扩容缩容方法。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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