CN111459761B - 一种Redis配置的方法、装置、存储介质及设备 - Google Patents
一种Redis配置的方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN111459761B CN111459761B CN202010251295.5A CN202010251295A CN111459761B CN 111459761 B CN111459761 B CN 111459761B CN 202010251295 A CN202010251295 A CN 202010251295A CN 111459761 B CN111459761 B CN 111459761B
- Authority
- CN
- China
- Prior art keywords
- monitoring index
- redis
- model
- predicted value
- change trend
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012544 monitoring process Methods 0.000 claims abstract description 133
- 230000008859 change Effects 0.000 claims abstract description 39
- 238000012417 linear regression Methods 0.000 claims abstract description 32
- 238000004458 analytical method Methods 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 58
- 238000012549 training Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000000737 periodic effect Effects 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 3
- 238000012886 linear function Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 7
- 230000002411 adverse Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 12
- 238000012423 maintenance Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000003933 environmental pollution control Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书提供一种Redis配置的方法、装置、存储介质及设备。该方法中,获取Redis集群中的历史监控指标,按照其变化趋势呈现线性还是非线性,对应采用线性回归模型或时间序列模型预测该监控指标在预设时间段的预测值,从而根据预测值来分析是否对Redis集群进行扩容,如此,实现对Redis的趋势分析,并根据预测的趋势及时地作出调整,获得合理的配置,进而解决了业务因告警处理落后造成的不利影响。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种Redis配置的方法、装置、存储介质及设备。
背景技术
Redis(Remote Dictionary Server,远程字典服务)是一个key-value存储***,经常作为缓存使用。目前,在对Redis的使用过程中,经常会遇到Redis内存容量不足而导致的不可用、或者Redis实例性能不足而导致响应时间过长甚至超时,进而影响业务使用的问题。相关技术中,通常的解决方法是设置告警阈值,当内存或性能达到告警阈值时触发一个告警,然后再人工介入对内存进行扩容。这种方式往往导致处理严重落后于线上需求。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种Redis配置的方法、装置、存储介质及设备。
根据本说明书实施例的第一方面,提供一种Redis配置的方法,所述方法包括:
获取Redis集群中的历史监控指标,并判断所述历史监控指标的变化趋势是否为线性;
当所述历史监控指标的变化趋势为线性时,通过线性回归模型预测监控指标在预设时间段的预测值,所述线性回归模型基于线性回归算法对所述监控指标的样本数据训练后得到;当所述历史监控指标的变化趋势为非线性时,通过时间序列模型预测监控指标在预设时间段的预测值,所述时间序列模型基于时间序列法对所述监控指标的样本数据训练后得到;
根据所述预测值分析是否对所述Redis集群进行扩容。
在某些例子中,上述监控指标包括以下至少一项:机器的内存使用容量、机器的吞吐量、机器的CPU使用率、用户响应时间。
在某些例子中,上述判断所述历史监控指标的变化趋势是否为线性包括:
基于简单线性回归算法对所述历史监控指标的变化趋势进行拟合,并计算拟合优度;
当所述拟合优度超过第一预设值,则判断所述历史监控指标的变化趋势为线性;
当所述拟合优度未超过第一预设值,则判断所述历史监控指标的变化趋势为非线性。
在某些例子中,上述监控指标包括机器的内存使用容量;当根据所述预测值分析确定对所述Redis集群进行扩容时,所述方法还包括:
增加可使用的内存,或使用内存淘汰策略。
在某些例子中,上述监控指标包括以下至少一项:机器的吞吐量、机器的CPU使用率和用户响应时间;当根据所述预测值分析确定对所述Redis集群进行扩容时,所述方法还包括:
搭建新的Redis从库,并更新分配流量的配置。
在某些例子中,上述线性回归模型包括岭回归模型,所述岭回归模型的训练过程包括:
将所述监控指标作为因变量,所述监控指标被采集时对应的时间作为自变量,利用岭回归算法获得岭回归模型;
利用评价函数确定所述岭回归模型对应的均方误差;
当所述均方误差的值小于第二预设值时,确定所述岭回归模型合格。
在某些例子中,上述时间序列模型包括Prophet模型;所述Prophet模型的训练过程包括:
将所述监控指标和所述监控指标被采集时对应的时间作为Prophet模型的样本数据,分别确定断点、与所述断点对应的分段线性函数、周期函数、节假日函数,得到训练后的Prophet模型。
根据本说明书实施例的第二方面,提供一种Redis配置的装置,所述装置包括:
获取模块,用于获取Redis集群中的历史监控指标,并判断所述历史监控指标的变化趋势是否为线性;
预测模块,用于当所述历史监控指标的变化趋势为为线性时,通过线性回归模型预测监控指标在预设时间段的预测值,所述线性回归模型基于线性回归算法对所述监控指标的样本数据训练后得到;当所述历史监控指标的变化趋势为非线性时,通过时间序列模型预测监控指标在预设时间段的预测值,所述时间序列模型基于时间序列法对所述监控指标的样本数据训练后得到;
分析模块,用于根据所述预测值分析是否对所述Redis集群进行扩容。
根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现说明书实施例中任一项方法。
根据本说明书实施例的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现说明书实施例中任一项方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,公开了一种Redis配置的方法、装置、存储介质及设备。该方法中,获取Redis集群中的历史监控指标,按照其变化趋势呈现线性还是非线性,对应采用线性回归模型或时间序列模型预测该监控指标在预设时间段的预测值,从而根据预测值来分析是否对Redis集群进行扩容,如此,实现对Redis的趋势分析,并根据预测的趋势及时地作出调整,获得合理的配置,进而解决了业务因告警处理落后造成的不利影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种Redis配置的方法的流程图;
图2是本说明书实施例Redis配置的装置所在计算机设备的一种硬件结构图;
图3是本说明书根据一示例性实施例示出的一种Redis配置的装置的框图;
图4是本说明书根据一示例性实施例示出的一种Redis配置***的架构的示意图;
图5A是本说明书根据一示例性实施例示出的一种Redis配置***中第一子***的架构的示意图;
图5B是本说明书根据一示例性实施例示出的一种Redis配置***中第二子***的架构的示意图;
图5C是本说明书根据一示例性实施例示出的获取监控指标的预测值的效果示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
Redis(Remote Dictionary Server,远程字典服务)是一个key-value存储***,可以支持每秒十几万次的读/写操作,其性能远超数据库,并且还支持集群、分布式、主从同步等配置,经常作为缓存使用。目前,在对Redis的使用过程中,经常会遇到Redis内存容量不足而导致的不可用、或者Redis实例性能不足而导致响应时间过长甚至超时,进而影响业务使用的问题。相关技术中,通常的解决方法是设置告警阈值,当内存或性能达到告警阈值时触发一个告警,然后再人工介入对内存进行扩容。可以理解的,这容易导致处理严重落后于线上需求。
接下来对本说明书实施例进行详细说明。
如图1所示,图1是本说明书根据一示例性实施例示出的一种Redis配置的方法的流程图,所述方法包括:
在步骤101、获取Redis集群中的历史监控指标,并判断所述历史监控指标的变化趋势是否为线性;
通常认为,Redis集群具有三种模式,分别是主从模式、Sentinel模式和Cluster模式。一个Redis集群可以是由多个Redis实例组成,在主从模式中,实例分为主数据库和从数据库两类,也可简称为主库和从库。主库可以提供读写服务,当读写操作导致数据变化时会自动将数据同步给从库;从库一般只提供读服务,并且接收主库同步过来的数据。Sentinel(哨兵)模式是建立在主从模式的基础上,提供一个哨兵进程用于监控Redis集群中主库的工作状态,在主库发生故障的时候,可以实现主库和从库的切换,保证***的高可用。而Cluster模式可以认为是主从模式和Sentinel模式的结合体,其中多个Redis实例网络互联,数据共享,客户端可以连接任何一个主库进行读写,从库不提供服务,仅作为备用。在某些例子中,本步骤中的Redis集群可以是指主从模式的Redis集群,当然,本说明书对此不作限定。
在某些例子中,本步骤中历史监控指标是指Redis集群中各实例的历史监控指标,这里的监控指标可以包括以下至少一项:机器的内存使用容量、机器的吞吐量、机器的CPU使用率、用户响应时间。机器的内存使用容量可以反映Redis实例的内存状态,机器的吞吐量、机器的CPU使用率或用户响应时间可以反映Redis实例的性能状态。可以理解的,Redis实例的内存一般是配置好的,其性能也是有所限制的,因此,当某一Redis实例的内存状态或性能状态在一段时间内持续临近上限时,表明该Redis实例的处理压力较大,需要扩容。
在某些例子中,本步骤中的判断所述历史监控指标的变化趋势是否为线性可以包括:基于简单线性回归算法对所述历史监控指标的变化趋势进行拟合,并计算拟合优度;当所述拟合优度超过第一预设值,则判断所述历史监控指标的变化趋势为线性;当所述拟合优度未超过第一预设值,则判断所述历史监控指标的变化趋势为非线性。本步骤中的历史监控指标可以是按照一定的周期采集的,周期可以根据具体场景的需要而设定,可以是一分钟、两分钟、一小时、一天等等。拟合优度的概念是回归直线对预测值的拟合程度,一般以可决系数R2作为度量的统计量,可决系数的值越接近1,说明回归直线对预测值的拟合程度越好。假定周期为一小时,获取的历史监控指标为四点到八点对应的机器的内存使用容量,分别为4.2G、4.8G、5.2G、5.5G、5.7G,以此为例,则样本数据可记为(4,4.2)、(5,4.8)、(6,5.2)、(7,5.5)和(8,5.7),基于简单线性回归算法代入这些样本数据进行拟合,这里的简单线性回归算法可以包括一元线性回归和最小二乘法,拟合后计算得可决系数为0.96,当第一预设值为0.97时,则拟合优度0.96未超过第一预设值0.97,判断得此历史监控指标的变化趋势为非线性。
在步骤102、当所述历史监控指标的变化趋势为线性时,通过线性回归模型预测监控指标在预设时间段的预测值,所述线性回归模型基于线性回归算法对所述监控指标的样本数据训练后得到;当所述历史监控指标的变化趋势为非线性时,通过时间序列模型预测监控指标在预设时间段的预测值,所述时间序列模型基于时间序列法对所述监控指标的样本数据训练后得到;
在判断历史监控指标的变化趋势是线性还是非线性后,通过对应的模型预测监控指标在预设时间段的预测值。在某些例子中,本步骤中的线性回归模型可以是指:岭回归模型。这里的岭回归模型可以基于R语言实现,也可以基于SPSS(Statistical Product andService Solutions,统计产品与服务解决方案)实现。岭回归模型的训练过程包括:将所述监控指标作为因变量,所述监控指标被采集时对应的时间作为自变量,利用岭回归算法获得岭回归模型;利用评价函数确定所述岭回归模型对应的均方误差;当所述均方误差的值小于第二预设值时,确定所述岭回归模型合格。通俗地讲,在输入自变量和因变量对应的样本数据后,选择岭参数K值,使可决系数R2的值尽量大,同时尽量稳定,确定后即可得到函数形式的岭回归模型;该岭回归模型的均方误差MSE可通过以下公式确定:
其中,observedi为样本数据,predictedi为将自变量代入岭回归模型后得到的数据,n为样本个数;
均方误差MSE评价数据的变化程度,MSE的值越小,说明该模型在描述样本数据时具有更好的精确度,则该模型在预测样本数据的未来趋势时也具有更好的效果。可以理解的,这里的第二预设值可以根据监控指标的类型、对该模型要求的精度以及其他具体场景的需要进行设定。
本说明书实施例针对呈非线性的监控指标,是基于时间序列法进行建模和预测。时间序列法,也叫时间序列分析,是根据***观测得到的时间序列数据,通过曲线拟合和参数估计来建立数学模型的理论和方法,常用在国民经济宏观控制、企业经营管理、气象预报、环境污染控制等方面。在某些例子中,本说明书实施例所指出的时间序列模型包括Prophet模型,Prophet是一种开源的时间序列预测工具,可应用于建立Prophet模型。在某些例子中,Prophet模型的训练过程包括:将所述监控指标和所述监控指标被采集时对应的时间作为Prophet模型的样本数据,分别确定断点、与所述断点对应的分段线性函数、周期函数、节假日函数,得到训练后的Prophet模型。通俗地讲,Prophet的原理就是分析各种时间序列特征:周期性、趋势性、节假日效应,以及部分异常值。在趋势方面,它支持加入变化点,实现分段线性拟合;在周期方面,它使用傅里叶级数来建立周期函数,在节假和突发事件方面,可以指定节假日,及其前后相关的若干天。如此,建立好的Prophet模型在用于预测监控指标的未来趋势时,具有较好的预测精度。
在预测监控指标在预设时间段的预测值时,只需要将预设时间段作为输入量,输入对应的模型,之后得到的输出量即为所需的预测值。这里的预设时间段可以根据预测的需求进行设置。
当然,在某些例子中,本步骤中所提到的线性回归模型也可以是Lasso回归模型,时间序列模型可以是LSTM(Long Short Term Memory,长短期记忆网络)模型,这里可以根据所选用的监控指标而选择,本说明书对此不作限定。
在步骤103、根据所述预测值分析是否对所述Redis集群进行扩容。
在得到监控指标在预设时间段的预测值后,可以根据预测值分析如何对Redis进行配置。通常的,可以针对不同监控指标设置不同的阈值,这里的阈值是基于该监控指标上限的百分比而确定,当预测值超过阈值时,分析确定对该Redis进行扩容。比如,监控指标包括机器的内存使用容量,可以设置该监控指标的阈值为上限的百分之八十,则若分配的机器的最大内存使用容量为10G,其阈值为8G,当该监控指标在预设时间段的预测值超过8G时,分析确定对该Redis进行扩容。
本说明书实施例针对反映Redis内存状态和性能状态两种监控指标对应提供了以下扩容方案:
针对内存状态,监控指标包括机器的内存使用容量;当根据预测值分析确定对Redis集群进行扩容时,先尝试增加可使用的内存,当可使用的内存为零时,则使用内存淘汰策略,将访问频率最少的键值对淘汰,从而扩展Redis内存;
针对性能状态,监控指标包括以下至少一项:机器的吞吐量、机器的CPU使用率和用户响应时间;当根据所述预测值分析确定对所述Redis集群进行扩容时,搭建新的从库,搭建完成后更新配置,均衡分配流量,即将业务流量分出一部分到新的从库上,达到扩展Redis性能的目的。
扩容之后,还可以将扩容前后的状态记录,并通知给相关人员。
另外,在得到监控指标的预测值时,不仅要分析是否需要对Redis扩容,还要分析是否可以对Redis扩容。比如,监控指标包括机器的CPU使用率,当其预测值显示机器的CPU使用率持续高于95%时,远超过设置的阈值60%,则可以触发告警,通知相关人员,由相关人员介入排查问题。
本说明书实施例,获取Redis集群中的历史监控指标,按照其变化趋势呈现线性还是非线性,对应采用岭回归模型或时间序列模型预测该监控指标在预设时间段的预测值,从而根据预测值来分析是否对Redis集群进行扩容,如此,实现对Redis的趋势分析,并根据预测的趋势及时地作出调整,实现了弹性扩容,从而获得合理的配置,进而解决了业务因告警处理落后造成的不利影响。
本领域技术人员可理解的,本说明书实施例的方法还可以应用于实现对Redis的弹性缩容。
与前述方法的实施例相对应,本说明书还提供了Redis配置的装置及其所应用的终端的实施例。
本说明书Redis配置的装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书实施例Redis配置的装置所在计算机设备的一种硬件结构图,除了图2所示的处理器510、内存530、网络接口520、以及非易失性存储器540之外,实施例中装置531所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。
本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
如图3所示,图3是本说明书根据一示例性实施例示出的一种Redis配置的装置的框图,所述装置包括:
获取模块31,用于获取Redis集群中的历史监控指标,并判断所述历史监控指标的变化趋势是否为线性;
预测模块32,用于当所述历史监控指标的变化趋势为为线性时,通过线性回归模型预测监控指标在预设时间段的预测值,所述线性回归模型基于线性回归算法对所述监控指标的样本数据训练后得到;当所述历史监控指标的变化趋势为非线性时,通过时间序列模型预测监控指标在预设时间段的预测值,所述时间序列模型基于时间序列法对所述监控指标的样本数据训练后得到;
分析模块33,用于根据所述预测值分析是否对所述Redis集群进行扩容。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
为了对本说明书实施例的方法有更深入的理解,接下来将以一应用实例做进一步的说明:
如图4所示,图4是本说明书根据一示例性实施例示出的一种Redis配置***的架构的示意图,该Redis配置***应用本说明书实施例的方法,对Redis进行配置。该Redis配置***的架构主要可以包括如下部分:监控指标采集单元、趋势分析单元、分析决策单元、配置单元、Redis代理单元、Redis集群和运维平台。
其中,监控指标采集单元用于获取Redis集群中的历史监控指标,具体的,可以是采集Redis集群中各实例的各项监控指标,包括以下至少一项:机器的内存使用容量、机器的吞吐量、机器的CPU使用率、用户响应时间,将采集到的数据上报Kafka集群,由Kafka集群通过消费队列的模式把采集的数据保存到ClickHouse数据库中。
趋势分析单元用于通过算法分析内存和性能的使用情况,给出未来一段时间的趋势数值,具体的,可以是从ClickHouse数据库中获取历史监控指标,判断历史监控指标的变化趋势是否为线性,如果是线性,则通过岭回归模型预测监控指标在预设时间段的预测值;如果是非线性,则通过Prophet模型预测监控指标在预设时间段的预测值。同样的,岭回归模型和Prophet模型在训练时的样本数据从ClickHouse数据库中获取。
分析决策单元用于根据趋势分析单元得到的预测值,分析是否需要对Redis进行扩容,如果是则通知配置单元进行相应的扩容操作,同时将扩容状态通知运维平台;并且,分析是否可以对Redis进行扩容,如果无法扩容,则触发告警,通知运维平台。
配置单元用于执行对Redis集群的扩容操作,具体的,分为内存扩容操作和性能扩容操作两种,内存扩容是先尝试增加可使用的内存,当可使用的内存为零时,则使用内存淘汰策略,将访问频率最少的键值对淘汰;性能扩容是搭建新的从库,搭建完成后通知Redis代理单元,更新Redis配置,均衡分配流量。
Redis代理层用于对Redis进行负载均衡与读写分离。
具体地,上述Redis配置***可以认为包括第一子***和第二子***,其中,第一子***针对内存方向,第二子***针对性能方向,如图5A和图5B所示,图5A是本说明实施例示出的第一子***的架构的示意图;图5B是本说明书实施例示出的第二子***的架构的示意图。其中:
在第一子***中,监控指标采集单元监控采集Redis集群的历史监控指标并上报到Kalfa集群,这里的监控指标包括机器的内存使用容量;Kalfa集群保存上报的数据,通过消费队列的模式把结果保存到ClickHouse数据库;ClickHouse数据库为趋势分析单元提供数据;趋势分析单元通过算法分析内存的使用情况,给出未来一段时间的趋势数据;分析决策单元根据趋势数据,分析是否需要对Redis进行扩容,是则通知配置单元进行相应的扩容操作,同时将扩容状态通知运维平台,并分析是否可以对Redis进行扩容,如果无法扩容,则触发告警,通知运维平台;配置单元执行内存扩容操作,先尝试增加可使用的内存,当可使用的内存为零时,则使用内存淘汰策略,将访问频率最少的键值对淘汰。
在第二子***中,监控指标采集单元、Kalfa集群、ClickHouse、趋势分析单元、分析决策单元的逻辑关系与第一子***相同,不同的是,这里的监控指标包括以下至少一项:机器的吞吐量、机器的CPU使用率、用户响应时间;并且,配置单元执行性能扩容操作,搭建新的从库,搭建完成后通知Redis代理单元,更新Redis配置,均衡分配流量;Redis代理层对Redis进行负载均衡与读写分离。
第一子***的趋势分析单元通过算法分析内存的使用情况,第二子***的趋势分析单元通过算法分析性能的使用情况。这里的算法可以是线性回归算法或者时间序列算法,具体地,可以是判断历史监控指标的变化趋势是否为线性,如果是线性,则通过岭回归模型预测监控指标在预设时间段的预测值;如果是非线性,则通过Prophet模型预测监控指标在预设时间段的预测值。如图5C所示,图5C是本说明书根据一示例性实施例示出的获取监控指标的预测值的效果示意图,其中,监控指标为机器的QPS(Queries-per-second,每秒查询率),属于反映性能的指标,是机器的吞吐量的重要参数之一;图中曲线1是监控采集的样本数据的曲线,点P表示当前时间点,曲线2是根据算法对当前时间点之前的样本数据进行拟合后的曲线,点Q是通过算法预测的机器的QPS在5:30时间点对应的预测值,该预测值为101.8K,而根据后期采集的数据可知其在5:30时间点的实际值为68.6K,在5:40时间点的实际值为103.4K,因此,***根据预测值进行决策具有较高的可行性和精准性。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (9)
1.一种Redis配置的方法,其特征在于,所述方法包括:
获取Redis集群中的历史监控指标;
基于简单线性回归算法对所述历史监控指标的变化趋势进行拟合,并计算拟合优度;当所述拟合优度超过第一预设值,则判断所述历史监控指标的变化趋势为线性;当所述拟合优度未超过第一预设值,则判断所述历史监控指标的变化趋势为非线性;
当所述历史监控指标的变化趋势为线性时,通过线性回归模型预测监控指标在预设时间段的预测值,所述线性回归模型基于线性回归算法对所述监控指标的样本数据训练后得到;当所述历史监控指标的变化趋势为非线性时,通过时间序列模型预测监控指标在预设时间段的预测值,所述时间序列模型基于时间序列法对所述监控指标的样本数据训练后得到;
根据所述预测值分析是否对所述Redis集群进行扩容。
2.根据权利要求1所述的方法,其特征在于,所述监控指标包括以下至少一项:机器的内存使用容量、机器的吞吐量、机器的CPU使用率、用户响应时间。
3.根据权利要求1所述的方法,其特征在于,所述监控指标包括机器的内存使用容量;当根据所述预测值分析确定对所述Redis集群进行扩容时,所述方法还包括:
增加可使用的内存,或使用内存淘汰策略。
4.根据权利要求1所述的方法,其特征在于,所述监控指标包括以下至少一项:机器的吞吐量、机器的CPU使用率和用户响应时间;当根据所述预测值分析确定对所述Redis集群进行扩容时,所述方法还包括:
搭建新的Redis从库,并更新分配流量的配置。
5.根据权利要求1所述的方法,其特征在于,所述线性回归模型包括岭回归模型,所述岭回归模型的训练过程包括:
将所述监控指标作为因变量,所述监控指标被采集时对应的时间作为自变量,利用岭回归算法获得岭回归模型;
利用评价函数确定所述岭回归模型对应的均方误差;
当所述均方误差的值小于第二预设值时,确定所述岭回归模型合格。
6.根据权利要求1所述的方法,其特征在于,所述时间序列模型包括Prophet模型;所述Prophet模型的训练过程包括:
将所述监控指标和所述监控指标被采集时对应的时间作为Prophet模型的样本数据,分别确定断点、与所述断点对应的分段线性函数、周期函数、节假日函数,得到训练后的Prophet模型。
7.一种Redis配置的装置,其特征在于,所述装置包括:
获取模块,用于获取Redis集群中的历史监控指标;基于简单线性回归算法对所述历史监控指标的变化趋势进行拟合,并计算拟合优度;当所述拟合优度超过第一预设值,则判断所述历史监控指标的变化趋势为线性;当所述拟合优度未超过第一预设值,则判断所述历史监控指标的变化趋势为非线性;
预测模块,用于当所述历史监控指标的变化趋势为为线性时,通过线性回归模型预测监控指标在预设时间段的预测值,所述线性回归模型基于线性回归算法对所述监控指标的样本数据训练后得到;当所述历史监控指标的变化趋势为非线性时,通过时间序列模型预测监控指标在预设时间段的预测值,所述时间序列模型基于时间序列法对所述监控指标的样本数据训练后得到;
分析模块,用于根据所述预测值分析是否对所述Redis集群进行扩容。
8.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1~6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求1~6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010251295.5A CN111459761B (zh) | 2020-04-01 | 2020-04-01 | 一种Redis配置的方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010251295.5A CN111459761B (zh) | 2020-04-01 | 2020-04-01 | 一种Redis配置的方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459761A CN111459761A (zh) | 2020-07-28 |
CN111459761B true CN111459761B (zh) | 2024-03-01 |
Family
ID=71685775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010251295.5A Active CN111459761B (zh) | 2020-04-01 | 2020-04-01 | 一种Redis配置的方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459761B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112598291B (zh) * | 2020-12-25 | 2023-10-13 | 中国农业银行股份有限公司 | 一种基于Prophet的运维智能排班方法及装置 |
CN115474165B (zh) * | 2021-05-24 | 2024-05-07 | 中移动金融科技有限公司 | 短信服务自监控动态调整方法和*** |
CN113342561A (zh) * | 2021-06-18 | 2021-09-03 | 上海哔哩哔哩科技有限公司 | 任务诊断方法及*** |
CN114051000A (zh) * | 2021-11-17 | 2022-02-15 | 中国工商银行股份有限公司 | 基于时间序列模型的业务流量切流方法及装置 |
CN114637656B (zh) * | 2022-05-13 | 2022-09-20 | 飞狐信息技术(天津)有限公司 | 基于Redis的监控方法、装置、存储介质和设备 |
CN115080356B (zh) * | 2022-07-21 | 2022-12-13 | 支付宝(杭州)信息技术有限公司 | 异常告警方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800551A (zh) * | 2016-08-31 | 2018-03-13 | 北京优朋普乐科技有限公司 | Redis集群***及其提高可靠性的方法、客户端 |
CN108920324A (zh) * | 2018-06-08 | 2018-11-30 | 广东轩辕网络科技股份有限公司 | It设备存储容量趋势分析和预警的方法、***及电子装置 |
CN109842563A (zh) * | 2017-11-24 | 2019-06-04 | 中国电信股份有限公司 | 内容分发网络流量调度方法、装置和计算机可读存储介质 |
CN110086649A (zh) * | 2019-03-19 | 2019-08-02 | 深圳壹账通智能科技有限公司 | 异常流量的检测方法、装置、计算机设备及存储介质 |
CN110912737A (zh) * | 2019-11-14 | 2020-03-24 | 国网浙江省电力有限公司信息通信分公司 | 一种基于混合模型的动态感知性能预告警方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150332311A1 (en) * | 2014-05-15 | 2015-11-19 | Coupons.Com Incorporated | Optimized placement of digital offers |
-
2020
- 2020-04-01 CN CN202010251295.5A patent/CN111459761B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800551A (zh) * | 2016-08-31 | 2018-03-13 | 北京优朋普乐科技有限公司 | Redis集群***及其提高可靠性的方法、客户端 |
CN109842563A (zh) * | 2017-11-24 | 2019-06-04 | 中国电信股份有限公司 | 内容分发网络流量调度方法、装置和计算机可读存储介质 |
CN108920324A (zh) * | 2018-06-08 | 2018-11-30 | 广东轩辕网络科技股份有限公司 | It设备存储容量趋势分析和预警的方法、***及电子装置 |
CN110086649A (zh) * | 2019-03-19 | 2019-08-02 | 深圳壹账通智能科技有限公司 | 异常流量的检测方法、装置、计算机设备及存储介质 |
CN110912737A (zh) * | 2019-11-14 | 2020-03-24 | 国网浙江省电力有限公司信息通信分公司 | 一种基于混合模型的动态感知性能预告警方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111459761A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459761B (zh) | 一种Redis配置的方法、装置、存储介质及设备 | |
US11403164B2 (en) | Method and device for determining a performance indicator value for predicting anomalies in a computing infrastructure from values of performance indicators | |
US10467533B2 (en) | System and method for predicting response time of an enterprise system | |
US7107187B1 (en) | Method for modeling system performance | |
US8000932B2 (en) | System and method for statistical performance monitoring | |
CN109120463B (zh) | 流量预测方法及装置 | |
CN107707431A (zh) | 一种面向云平台的数据安全监测方法及*** | |
US11307916B2 (en) | Method and device for determining an estimated time before a technical incident in a computing infrastructure from values of performance indicators | |
Luo et al. | Intelligent Virtual Machine Provisioning in Cloud Computing. | |
CN109753385A (zh) | 一种面向流计算***异常监控的恢复方法及*** | |
JP2002268922A (ja) | Wwwサイトの性能監視装置 | |
CN111198808A (zh) | 预测性能指标的方法、装置、存储介质及电子设备 | |
US11675643B2 (en) | Method and device for determining a technical incident risk value in a computing infrastructure from performance indicator values | |
CN112148561B (zh) | 业务***的运行状态预测方法、装置及服务器 | |
US20220245010A1 (en) | Time-series anomaly detection using an inverted index | |
US20220245485A1 (en) | Multi-model block capacity forecasting for a distributed storage system | |
CN111563022A (zh) | 一种集中式存储器监控方法和装置 | |
CN114896121A (zh) | 分布式处理***的监控方法及装置 | |
US20160094392A1 (en) | Evaluating Configuration Changes Based on Aggregate Activity Level | |
CN108021484A (zh) | 云端服务***中磁盘预期寿命值的延长方法及其*** | |
CN111614504A (zh) | 基于时间序列和故障树分析的电网调控数据中心业务特性故障定位方法及*** | |
CN113849333B (zh) | 一种基于WN-Spline基线域算法的数据中心自驱排障方法及*** | |
Jehangiri et al. | Distributed predictive performance anomaly detection for virtualised platforms | |
CN112530505A (zh) | 硬盘延迟检测方法、装置及计算机可读存储介质 | |
US11556451B2 (en) | Method for analyzing the resource consumption of a computing infrastructure, alert and sizing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |