CN110134665A - 基于流量镜像的数据库自学习优化方法及装置 - Google Patents
基于流量镜像的数据库自学习优化方法及装置 Download PDFInfo
- Publication number
- CN110134665A CN110134665A CN201910307572.7A CN201910307572A CN110134665A CN 110134665 A CN110134665 A CN 110134665A CN 201910307572 A CN201910307572 A CN 201910307572A CN 110134665 A CN110134665 A CN 110134665A
- Authority
- CN
- China
- Prior art keywords
- database
- configuration parameter
- optimized
- parameter
- model
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Abstract
本发明提供一种基于流量镜像的数据库自学习优化方法,包括:通过自适应学习方法获取待优化数据库的最新数据库配置参数,将最新数据库配置参数发送给训练数据库;建立与待优化数据库的数据库模型一致的数据库镜像模型,并将数据库镜像模型发送给训练数据库;建立与待优化数据库接收到的流量模型一致的流量镜像模型,并将流量镜像模型发送给训练数据库;获取反馈自训练数据库的训练结果;根据训练数据库的训练结果更新待优化数据库的数据库配置参数;重复上述步骤R次,获取R次的训练结果中训练数据库的TPS吞吐量为最大值时的最新数据库配置参数,作为数据库最终配置参数配置给待优化数据库。对于真实流量场景,可以有效提升数据库的性能。
Description
技术领域
本发明涉及数据库配置领域,具体地涉及一种基于流量镜像的数据库自学习优化方法和一种基于流量镜像的数据库自学习优化装置。
背景技术
多数据库通常有很多参数,例如MySQL、PostgreSQL有数百个参数,而Oracle的参数数量则是千级别,这些参数会影响数据库的运行过程,从而对数据库的整体吞吐及响应时间等性能指标产生较大影响。对于某个数据库应用场景,恰当的参数选择可以使得性能提升数倍。为了提升数据库的性能,公司通常需要聘请专业DBA对数据库参数调优。然而对于不同的应用场景、不同的负载、不同的硬件及操作系统,所需要的最优参数往往也会有不同,DBA通常需要花费大量时间对系统进行参数优化,并且难于得到最优参数。
另外,还有一些业务场景,例如运营活动时,数据量流量将会有数倍的增长,由于缺乏流量模拟环境,DBA会更难以给出最佳的性能参数。
现有技术的解决方案包括:
(1)DBA调优,主要依赖于DBA的优化经验,对硬件、系统、数据库版本、数据库负载的分析并进行调参。人工对优化系统优化效果进行观察和再调优。
(2)传统自动或机器学习调优,在TPCC等场景下,对数据库系统设置不同的参数,并进行训练,获取训练结果作为训练集。训练出数据库参数和性能(吞吐量、访问时延)模型,并且进行探索后调整参数再训练,最终选择出最佳的参数推荐给数据库。
上述技术方案存在以下缺点:
(1)面对上百个性能参数,DBA需要分析数据库的负载情况,结合数据库访问SQL的类型以及个人经验给出参数配置,并且进行测试观察,时间及人工成本开销大。
(2)对于预期流量增长的场景,DBA缺乏预估的模型验证,通常需要使用经验进行预估,参数设置的效果好坏,不仅依赖于DBA的经验,所尝试的配置难有规律可循,难于达到最佳。
(3)另外还存在场景单一、流量不可变、依赖训练数据、训练串行化、不支持在线优化等缺点。
发明内容
本发明的目的是针对上述问题,提供一种基于流量镜像的数据库自学习优化方法及一种基于流量镜像的数据库自学习优化装置。
为了实现上述目的,在本发明第一方面,提供一种基于流量镜像的数据库自学习优化方法,所述方法包括如下步骤:
S1)通过自适应学习方法获取待优化数据库的最新数据库配置参数,将所述最新数据库配置参数发送给训练数据库;
S2)建立与所述待优化数据库的数据库模型一致的数据库镜像模型,并将所述数据库镜像模型发送给所述训练数据库;
S3)建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库;
S4)获取反馈自所述训练数据库的训练结果;
S5)根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数;
S6)重复执行步骤S1)~S5)R次,获取所述R次的训练结果中所述训练数据库的TPS吞吐量为最大值时的最新数据库配置参数,并将该最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库。
进一步的,所述步骤S1)中,所述待优化数据库为含训练数据的待优化数据库、不含训练数据的待优化数据库和训练数据不足的待优化数据库中的一者;所述训练数据包括所述待优化数据库的数据库原始配置参数和TPS吞吐量。
进一步的,在所述待优化数据库为含训练数据的待优化数据库的情况下,所述步骤S1)中的自适应学习方法实现步骤为:
S11)训练数据获取:对于具有K个数据库原始配置参数的待优化数据库,采用随机采样的方式在所述K个数据库原始配置参数的每个数据库原始配置参数的可选范围内选取一个值作为随机数据库配置参数;随机采样N组,组成N组随机数据库配置参数,每组包含K个随机数据库配置参数;使用所述N组随机数据库配置参数中的每一组随机数据库配置参数启动数据库实例,进行流量回放性能测试,获取每一组随机数据库配置参数的TPS吞吐量;
S12)训练数据特征化:对步骤S11)中获取的N组随机数据库配置参数进行特征向量化,建立特征矩阵;
S13)选取关键参数:使用高斯过程回归,从N组随机数据库配置参数中选取对TPS吞吐量影响力最大的M个随机数据库配置参数,为所述特征矩阵降维,获得参数配置与TPS结果模型,所述参数配置与TPS结果模型用于描述M个随机数据库配置参数与TPS吞吐量之间的关系;所述M是小于K的正整数;
S14)推荐配置参数:使用所述参数配置与TPS结果模型推荐所述最新数据库配置参数。
进一步的,在所述待优化数据库为不含训练数据或训练数据不足的待优化数据库的情况下,所述步骤S1)中的自适应学习方法为采用深度强化学习模型获取所述最新数据库配置参数。
可选的,所述步骤S3)还包括:将所述流量镜像模型中的流量按其倍数调整,并将调整后的流量镜像模型发送给所述训练数据库。
进一步的,所述步骤S4)中,所述训练结果包括:TPS吞吐量、时延、CPU消耗、内存消耗和IO消耗。
可选的,所述训练数据库有P个,步骤S1)包括同时将P个不同的最新数据库配置参数分别发送给所述P个训练数据库;步骤S4)包括获取反馈自所述P个训练数据库的训练结果;步骤S5)包括根据所述P个训练数据库的训练结果更新所述待优化数据库的数据库配置参数。
进一步的,步骤S6)中,所述数据库最终配置参数为支持在线调整类参数或重启数据库实例类参数;
在所述数据库最终配置参数为支持在线调整类参数的情况下,步骤S6)还包括:自动将所述数据库最终配置参数配置给所述待优化数据库,并持续记录所述待优化数据库的负载情况;
在所述数据库最终配置参数为重启数据库实例类参数的情况下,步骤S6)还包括:由数据库管理人员将所述数据库最终配置参数配置给所述待优化数据库,以及重启所述待优化数据库。
在本发明第二方面,还提供一种基于流量镜像的数据库自学习优化装置,包括:自学习系统服务端,用于:
通过自适应学习方法获取待优化数据库的最新数据库配置参数,将所述最新数据库配置参数发送给训练数据库;
建立与所述待优化数据库的数据库模型一致的数据库镜像模型,并将所述数据库镜像模型发送给所述训练数据库;
建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库;
获取反馈自所述训练数据库的训练结果;
根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数;
重复执行上述步骤R次,获取所述R次的训练结果中所述训练数据库的TPS吞吐量为最大值时的最新数据库配置参数,并将所述最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库。
进一步的,所述待优化数据库为含训练数据的待优化数据库、不含训练数据的待优化数据库和训练数据不足的待优化数据库中的一者;所述训练数据包括所述待优化数据库的数据库原始配置参数和TPS吞吐量。
进一步的,在所述待优化数据库为含训练数据的待优化数据库的情况下,上述步骤中的自适应学习方法实现步骤为:
S11)训练数据获取:对于具有K个数据库原始配置参数的待优化数据库,采用随机采样的方式在所述K个数据库原始配置参数的每个数据库原始配置参数的可选范围内选取一个值作为随机数据库配置参数;随机采样N组,组成N组随机数据库配置参数,每组包含K个随机数据库配置参数;使用所述N组随机数据库配置参数中的每一组随机数据库配置参数启动数据库实例,进行流量回放性能测试,获取每一组随机数据库配置参数的TPS吞吐量;
S12)训练数据特征化:对步骤S11)中获取的N组随机数据库配置参数进行特征向量化,建立特征矩阵;
S13)选取关键参数:使用高斯过程回归,从N组随机数据库配置参数中选取对TPS吞吐量影响力最大的M个随机数据库配置参数,为所述特征矩阵降维,获得参数配置与TPS结果模型,所述参数配置与TPS结果模型用于描述M个随机数据库配置参数与TPS吞吐量之间的关系;所述M是小于K的正整数;
S14)推荐配置参数:使用所述参数配置与TPS结果模型推荐所述最新数据库配置参数。
进一步的,在所述待优化数据库为不含训练数据或训练数据不足的待优化数据库的情况下,所述上述步骤中的自适应学习方法为采用深度强化学习模型获取所述最新数据库配置参数。
可选的,所述建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库,还包括:将所述流量镜像模型中的流量按其倍数调整,并将调整后的流量镜像模型发送给所述训练数据库。
进一步的,上述步骤中,所述训练结果包括:TPS吞吐量、时延、CPU消耗、内存消耗和IO消耗。
可选的,所述训练数据库有P个,将所述最新数据库配置参数发送给训练数据库,包括:同时将P个不同的最新数据库配置参数分别发送给所述P个训练数据库;所述获取反馈自所述训练数据库的训练结果,包括:包括获取反馈自所述P个训练数据库的训练结果;所述根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数,包括:根据所述P个训练数据库的训练结果更新所述待优化数据库的数据库配置参数。
进一步的,上述步骤中,所述数据库最终配置参数为支持在线调整类参数或重启数据库实例类参数;
在所述数据库最终配置参数为支持在线调整类参数的情况下,所述将最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库,包括:自动将所述数据库最终配置参数配置给所述待优化数据库,并持续记录所述待优化数据库的负载情况;
在所述数据库最终配置参数为重启数据库实例类参数的情况下,所述将最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库,还包括:由数据库管理人员将所述数据库最终配置参数配置给所述待优化数据库,以及重启所述待优化数据库。
在本发明第三方面,还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被控制器执行时能够使得所述控制器执行如前所述的基于流量镜像的数据库自学习优化方法。
本发明上述技术方案实现了以下优点:
(1)流量镜像倍速可调整;(2)并发训练,使得自学习优化时间缩短,同时加速了自动调优的速度,更好的适应了数据库面临的数据场景;(3)在线调整优化;(4)自动调优,在大多数情况下不需要数据库管理人员的介入即可调优;(5)能够预期流量增长的场景,且预期的场景多样化;(6)依赖较少的训练数据即可达到预期调优目标。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明实施方式提供的基于流量镜像的数据库自学习优化方法的步骤流程图;
图2是本发明在待优化数据库为含训练数据的待优化数据库的实施方式中自适应学习方法的步骤流程图;
图3是本发明一种实施方式中采用的强化学习模型的逻辑图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
在本发明实施方式中,在未作相反说明的情况下,使用的方位词如“上、下、顶、底”通常是针对附图所示的方向而言的或者是针对竖直、垂直或重力方向上而言的各部件相互位置关系描述用词。
以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。
图1是本发明实施方式提供的基于流量镜像的数据库自学习优化方法的步骤流程图。如图1所示,所述方法包括如下步骤:
S1)通过自适应学习方法获取待优化数据库的最新数据库配置参数,将所述最新数据库配置参数发送给训练数据库;
S2)建立与所述待优化数据库的数据库模型一致的数据库镜像模型,并将所述数据库镜像模型发送给所述训练数据库;数据镜像模型设计的旨意是模拟与待优化数据库一致的数据模型。数据库实例的负载与实例数据量、数据分布及流量相关。因此数据库线上负载的模拟依赖于与线上真实数据库一致或接近。本发明的镜像使用数据库实例的备份数据进行数据安全脱敏后,快速恢复数据(导入)至测试实例的方式。
S3)建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库;对数据库模型以及流量模型的镜像,能够帮助我们模拟真实的数据库场景,流量镜像模型可对参数学习模块进行训练,并对学习后推荐的配置参数进行测试。为了模拟真实流量,首先记录客户端发往待优化数据库的全部SQL以及SQL的时间戳、耗时等信息。这部分日志通常可以在数据库服务器或者中间层日志中获取。在获取一段时间SQL日志及时间戳后,可以把日志加载至流量镜像回放模块中,由镜像回放模块根据时间戳间隔对日志中的SQL进行解析,并转发至用于训练的数据库实例中,起到的效果便是训练数据库实例接到了与线上数据库一致的SQL流量访问,起到流量镜像效果。
执行上述步骤S1)-S3)后,所述训练数据库具有了与所述待优化数据库基本一样的数据软环境,在该数据软环境下的训练数据库启动后,产生的训练结果可以基本等同于在待优化数据库中具有相同数据软环境下产生的结果。
S4)获取反馈自所述训练数据库的训练结果;
S5)根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数;根据训练数据库的训练结果,可以大致判断出在某一确定的数据环境下,该配置参数是否合理,即是否能够很好地应对流量变化。如果能够应对流量变化,则将该训练数据库的数据库配置参数配置给待优化数据库。
S6)重复执行步骤S1)~S5)R次,获取所述R次的训练结果中所述训练数据库的TPS吞吐量为最大值时的最新数据库配置参数,并将该最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库。由于TPS吞吐量是判断数据库配置参数的重要指标之一,所以,在众多的训练结果参数中,将TPS吞吐量为最大值时的数据库配置参数作为判断依据;当重复了R次步骤S1)~S5)后,可以将所得到的TPS吞吐量为最大值时的数据库配置参数配置给待优化数据库。所述R次不能过多,太多的话,会导致训练时间过长,失去实时更新的意义;R次不能过少,太少的话,无法获得准确的训练数据,得到的训练结果不够精准,即使配置给了待优化数据库,待优化数据库也无法完成相应数据环境下的TPS吞吐量。
所述步骤S1)中,所述待优化数据库为含训练数据的待优化数据库、不含训练数据的待优化数据库和训练数据不足的待优化数据库中的一者;所述训练数据包括所述待优化数据库的数据库原始配置参数和TPS吞吐量。待优化数据库具有的训练数据的量不同,采取的自适应学习方法不同。
如图2所示,为本发明在所述待优化数据库为含训练数据的待优化数据库的实施例中采用的自适应学习方法的步骤流程图。
在所述待优化数据库为含训练数据的待优化数据库的情况下,所述步骤S1)中的自适应学习方法实现步骤为:
S11)训练数据获取:对于具有K个数据库原始配置参数的待优化数据库,采用随机采样的方式在所述K个数据库原始配置参数的每个数据库原始配置参数的可选范围内选取一个值作为随机数据库配置参数;随机采样N组,组成N组随机数据库配置参数,每组包含K个随机数据库配置参数;使用所述N组随机数据库配置参数中的每一组随机数据库配置参数启动数据库实例,进行流量回放性能测试,获取每一组随机数据库配置参数的TPS吞吐量;
S12)训练数据特征化:对步骤S11)中获取的N组随机数据库配置参数进行特征向量化,建立特征矩阵;
S13)选取关键参数:因为数据库配置参数有数百上千个,其中对数据库有重要影响的会集中在少数(例如10%)的配置,使用高斯过程回归,从N组随机数据库配置参数中选取对TPS吞吐量影响力最大的M个随机数据库配置参数,为所述特征矩阵降维,获得参数配置与TPS结果模型,所述参数配置与TPS结果模型用于描述M个随机数据库配置参数与TPS吞吐量之间的关系;所述M是小于K的正整数;
S14)推荐配置参数:使用所述参数配置与TPS结果模型推荐所述最新数据库配置参数。该参数,加入一定的探索因子,防止结果陷入局部最优。
在所述待优化数据库为不含训练数据或训练数据不足的待优化数据库的情况下,所述步骤S1)中的自适应学习方法为采用深度强化学习模型获取所述最新数据库配置参数。
深度强化学习是由强化学习和深度学习两部分组成。
图3是强化学习模型的逻辑图。
在本发明的技术方案中;
Agent为数据库实例;
Action动作为选用不同的参数并受到流量镜像回放训练;
Status状态为性能统计数据;
Reward奖励取决于当次参数配置性能的变化,若升高则为正奖励,降低则为负奖励;
Environment为数据库实例所在的硬件环境(CPU、内存、磁盘等)及监控系统(获取吞吐量、时延等数据);
目标为训练次数尽量少的情况下,或者最高的期望奖励;
这样把数据库参数调优的问题,转化为强化学习问题求解。
而深度学习是一种具有近似复杂函数的有效手段,可以用作强化学习过程的求解,步骤如下:
1、将基于流量镜像的数据库自学习优化参数问题抽象至强化学习模型;
2、对于强化学习中定义的问题和优化目标,深度学习模型主要用作策略和值函数的建模,从而求得最优值函数;其中,策略π(a|s)表示根据status性能统计数据,选用下一步的配置参数;值函数Vπ(s),Qπ(s,a)可以看做是对策略π选用下一步配置参数的评估,如果评估值越高则说明配置参数越好;
3、为了获得最佳策略以及最优值函数,我们持续循环迭代(进行流量镜像回放)若干次,并使用DDPG(Deep Deterministic Policy Gradient)深度确定性策略梯度算法绘制一张表表示策略-值函数的关系,待策略-值函数对应关系收敛,也就是获得了配置参数与对应的吞吐量TPS之前的对应关系;
4、选取其中的最优值函数Vπ(s)对应的参数配置,作为数据库的最佳配置参数。
所述建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库,还包括:
将所述流量镜像模型中的流量按其倍数调整,并将调整后的流量镜像模型发送给所述训练数据库。
如流量镜像模型介绍,在流量镜像回放的过程中,可以对回放SQL的速度进行控制,例如将速度调整为1倍速、2倍速、4倍速等倍速,从而达到流量镜像倍数的控制,满足企业对预估流量情况下数据库参数调优的演练场景。本发明的流量镜像调控支持模拟当前流量模型的若干倍速回放流量场景。
所述步骤S4)中,所述训练结果包括:TPS吞吐量、时延、CPU消耗、内存消耗和IO消耗。这些参数都是基于不同的数据库配置参数得到的。其中最重要的是TPS吞吐量。
优选地,所述训练数据库有P个,步骤S1)包括同时将P个不同的最新数据库配置参数分别发送给所述P个训练数据库;步骤S4)包括获取反馈自所述P个训练数据库的训练结果;步骤S5)包括根据所述P个训练数据库的训练结果更新所述待优化数据库的数据库配置参数。
配置P个训练数据库的目的是使得多个数据库配置参数下的训练可以同时进行;如果只有1个训练数据库,则多个数据库配置参数下的训练只能一个接一个的串行训练,浪费了时间,使得待优化数据库的数据库配置参数实时更新的需求无法满足。通过配置P个训练数据库,使得即使有P组数据库配置参数,也能够在很短的时间范围内得到最新数据库配置参数,并将所述最新数据库配置参数配置给待优化数据库。
步骤S6)中,所述数据库最终配置参数为支持在线调整类参数或重启数据库实例类参数;
在所述数据库最终配置参数为支持在线调整类参数的情况下,步骤S6)还包括:自动将所述数据库最终配置参数配置给所述待优化数据库,并持续记录所述待优化数据库的负载情况。
对于在线的待优化数据库,我们已建立该场景下配置参数与吞吐量的模型,每日从线上实时获取的最新配置与吞吐量、负载的数据可以帮助该训练模型持续迭代,获得更优的配置参数。
在所述数据库最终配置参数为重启数据库实例类参数的情况下,步骤S6)还包括:由数据库管理人员将所述数据库最终配置参数配置给所述待优化数据库,以及重启所述待优化数据库。
由以上特性可见,本发明提供的数据库自学习优化配置方法,对于真实流量场景,可以有效提升数据库的性能。
在本发明第二方面,还提供一种基于流量镜像的数据库自学习优化装置,包括:自学习系统服务端,用于:
通过自适应学习方法获取待优化数据库的最新数据库配置参数,将所述最新数据库配置参数发送给训练数据库;
建立与所述待优化数据库的数据库模型一致的数据库镜像模型,并将所述数据库镜像模型发送给所述训练数据库;
建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库;
获取反馈自所述训练数据库的训练结果;
根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数;
重复执行上述步骤R次,获取所述R次的训练结果中所述训练数据库的TPS吞吐量为最大值时的最新数据库配置参数,并将所述最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库。
进一步的,所述待优化数据库为含训练数据的待优化数据库、不含训练数据的待优化数据库和训练数据不足的待优化数据库中的一者;所述训练数据包括所述待优化数据库的数据库原始配置参数和TPS吞吐量。
进一步的,在所述待优化数据库为含训练数据的待优化数据库的情况下,所述自适应学习方法实现步骤为:
S11)训练数据获取:对于具有K个数据库原始配置参数的待优化数据库,采用随机采样的方式在所述K个数据库原始配置参数的每个数据库原始配置参数的可选范围内选取一个值作为随机数据库配置参数;随机采样N组,组成N组随机数据库配置参数,每组包含K个随机数据库配置参数;使用所述N组随机数据库配置参数中的每一组随机数据库配置参数启动数据库实例,进行流量回放性能测试,获取每一组随机数据库配置参数的TPS吞吐量;
S12)训练数据特征化:对步骤S11)中获取的N组随机数据库配置参数进行特征向量化,建立特征矩阵;
S13)选取关键参数:使用高斯过程回归,从N组随机数据库配置参数中选取对TPS吞吐量影响力最大的M个随机数据库配置参数,为所述特征矩阵降维,获得参数配置与TPS结果模型,所述参数配置与TPS结果模型用于描述M个随机数据库配置参数与TPS吞吐量之间的关系;所述M是小于K的正整数;
S14)推荐配置参数:使用所述参数配置与TPS结果模型推荐所述最新数据库配置参数。
进一步的,在所述待优化数据库为不含训练数据或训练数据不足的待优化数据库的情况下,所述自适应学习方法为采用深度强化学习模型获取所述最新数据库配置参数。
可选的,所述建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库,还包括:将所述流量镜像模型中的流量按其倍数调整,并将调整后的流量镜像模型发送给所述训练数据库。
所述训练结果包括:TPS吞吐量、时延、CPU消耗、内存消耗和IO消耗。
可选的,所述训练数据库有P个,将所述最新数据库配置参数发送给训练数据库,包括:同时将P个不同的最新数据库配置参数分别发送给所述P个训练数据库;
所述获取反馈自所述训练数据库的训练结果,包括:包括获取反馈自所述P个训练数据库的训练结果;
所述根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数,包括:根据所述P个训练数据库的训练结果更新所述待优化数据库的数据库配置参数。
进一步的,所述数据库最终配置参数为支持在线调整类参数或重启数据库实例类参数;
在所述数据库最终配置参数为支持在线调整类参数的情况下,所述将最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库,还包括:自动将所述数据库最终配置参数配置给所述待优化数据库,并持续记录所述待优化数据库的负载情况;
在所述数据库最终配置参数为重启数据库实例类参数的情况下,所述将最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库,还包括:由数据库管理人员将所述数据库最终配置参数配置给所述待优化数据库,以及重启所述待优化数据库。
在本发明第三方面,还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被控制器执行时能够使得所述控制器执行如前所述的基于流量镜像的数据库自学习优化方法。
本发明的技术方案设计了一种基于流量镜像的应用场景自适应学习并调优数据库的方法。支持对于指定场景,使用数据镜像和流量镜像(支持多倍速流量)的方式,无需DBA介入,而是由本发明的技术方案的自学习优化方法,支持在线学习,训练获得指定场景参数优化模型,并给出恰当的调优参数,提升数据库性能。用以帮助企业在业务流量上涨时提前优化提升系统稳定性;无需投入专业DBA人员进行优化,节省人力成本;保持系统同样性能前提下,可以选用更低价的硬件套餐,节省硬件采购成本;对于高频交易系统,可以提升系统吞吐能力,为企业获得更多的营收。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。
本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。
Claims (17)
1.一种基于流量镜像的数据库自学习优化方法,所述自学习优化方法包括如下步骤:
S1)通过自适应学习方法获取待优化数据库的最新数据库配置参数,将所述最新数据库配置参数发送给训练数据库;
S2)建立与所述待优化数据库的数据库模型一致的数据库镜像模型,并将所述数据库镜像模型发送给所述训练数据库;
S3)建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库;
S4)获取反馈自所述训练数据库的训练结果;
S5)根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数;
S6)重复执行步骤S1)~S5)R次,获取所述R次的训练结果中所述训练数据库的TPS吞吐量为最大值时的最新数据库配置参数,并将该最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库。
2.根据权利要求1所述的自学习优化方法,其特征在于,所述步骤S1)中,所述待优化数据库为含训练数据的待优化数据库、不含训练数据的待优化数据库和训练数据不足的待优化数据库中的一者;所述训练数据包括所述待优化数据库的数据库原始配置参数和TPS吞吐量。
3.根据权利要求2所述的自学习优化方法,其特征在于,在所述待优化数据库为含训练数据的待优化数据库的情况下,所述步骤S1)中的自适应学习方法实现步骤为:
S11)训练数据获取:对于具有K个数据库原始配置参数的待优化数据库,采用随机采样的方式在所述K个数据库原始配置参数的每个数据库原始配置参数的可选范围内选取一个值作为随机数据库配置参数;随机采样N组,组成N组随机数据库配置参数,每组包含K个随机数据库配置参数;使用所述N组随机数据库配置参数中的每一组随机数据库配置参数启动数据库实例,进行流量回放性能测试,获取每一组随机数据库配置参数的TPS吞吐量;
S12)训练数据特征化:对步骤S11)中获取的N组随机数据库配置参数进行特征向量化,建立特征矩阵;
S13)选取关键参数:使用高斯过程回归,从N组随机数据库配置参数中选取对TPS吞吐量影响力最大的M个随机数据库配置参数,为所述特征矩阵降维,获得参数配置与TPS结果模型,所述参数配置与TPS结果模型用于描述M个随机数据库配置参数与TPS吞吐量之间的关系;所述M是小于K的正整数;
S14)推荐配置参数:使用所述参数配置与TPS结果模型推荐所述最新数据库配置参数。
4.根据权利要求2所述的自学习优化方法,其特征在于,在所述待优化数据库为不含训练数据或训练数据不足的待优化数据库的情况下,所述步骤S1)中的自适应学习方法为采用深度强化学习模型获取所述最新数据库配置参数。
5.根据权利要求1所述的自学习优化方法,其特征在于,所述步骤S3)还包括:将所述流量镜像模型中的流量按其倍数调整,并将调整后的流量镜像模型发送给所述训练数据库。
6.根据权利要求1所述的自学习优化方法,其特征在于,所述步骤S4)中,所述训练结果包括:TPS吞吐量、时延、CPU消耗、内存消耗和IO消耗。
7.根据权利要求1所述的自学习优化方法,其特征在于,所述训练数据库有P个,步骤S1)包括同时将P个不同的最新数据库配置参数分别发送给所述P个训练数据库;步骤S4)包括获取反馈自所述P个训练数据库的训练结果;步骤S5)包括根据所述P个训练数据库的训练结果更新所述待优化数据库的数据库配置参数。
8.根据权利要求1所述的自学习优化方法,其特征在于,步骤S6)中,所述数据库最终配置参数为支持在线调整类参数或重启数据库实例类参数;在所述数据库最终配置参数为支持在线调整类参数的情况下,步骤S6)还包括:自动将所述数据库最终配置参数配置给所述待优化数据库,并持续记录所述待优化数据库的负载情况;
在所述数据库最终配置参数为重启数据库实例类参数的情况下,步骤S6)还包括:由数据库管理人员将所述数据库最终配置参数配置给所述待优化数据库,以及重启所述待优化数据库。
9.一种基于流量镜像的数据库自学习优化装置,其特征在于,包括:自学习系统服务端,用于:
通过自适应学习方法获取待优化数据库的最新数据库配置参数,将所述最新数据库配置参数发送给训练数据库;
建立与所述待优化数据库的数据库模型一致的数据库镜像模型,并将所述数据库镜像模型发送给所述训练数据库;
建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库;
获取反馈自所述训练数据库的训练结果;
根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数;
重复执行上述步骤R次,获取所述R次的训练结果中所述训练数据库的TPS吞吐量为最大值时的最新数据库配置参数,并将所述最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库。
10.根据权利要求9所述的自学习优化装置,其特征在于,所述待优化数据库为含训练数据的待优化数据库、不含训练数据的待优化数据库和训练数据不足的待优化数据库中的一者;所述训练数据包括所述待优化数据库的数据库原始配置参数和TPS吞吐量。
11.根据权利要求10所述的自学习优化装置,其特征在于,在所述待优化数据库为含训练数据的待优化数据库的情况下,所述自适应学习方法实现步骤为:
训练数据获取:对于具有K个数据库原始配置参数的待优化数据库,采用随机采样的方式在所述K个数据库原始配置参数的每个数据库原始配置参数的可选范围内选取一个值作为随机数据库配置参数;随机采样N组,组成N组随机数据库配置参数,每组包含K个随机数据库配置参数;使用所述N组随机数据库配置参数中的每一组随机数据库配置参数启动数据库实例,进行流量回放性能测试,获取每一组随机数据库配置参数的TPS吞吐量;
训练数据特征化:对上述步骤中获取的N组随机数据库配置参数进行特征向量化,建立特征矩阵;
选取关键参数:使用高斯过程回归,从N组随机数据库配置参数中选取对TPS吞吐量影响力最大的M个随机数据库配置参数,为所述特征矩阵降维,获得参数配置与TPS结果模型,所述参数配置与TPS结果模型用于描述M个随机数据库配置参数与TPS吞吐量之间的关系;所述M是小于K的正整数;
推荐配置参数:使用所述参数配置与TPS结果模型推荐所述最新数据库配置参数。
12.根据权利要求10所述的自学习优化装置,其特征在于,在所述待优化数据库为不含训练数据或训练数据不足的待优化数据库的情况下,所述自适应学习方法为采用深度强化学习模型获取所述最新的数据库配置参数。
13.根据权利要求9所述的自学习优化装置,其特征在于,所述建立与所述待优化数据库接收到的流量模型一致的流量镜像模型,并将所述流量镜像模型发送给所述训练数据库,还包括:
将所述流量镜像模型中的流量按其倍数调整,并将调整后的流量镜像模型发送给所述训练数据库。
14.根据权利要求9所述的自学习优化装置,其特征在于,所述训练结果包括:TPS吞吐量、时延、CPU消耗、内存消耗和IO消耗。
15.根据权利要求9所述的自学习优化装置,其特征在于,所述训练数据库有P个,将所述最新数据库配置参数发送给训练数据库,包括:
将P个不同的最新数据库配置参数分别发送给所述P个训练数据库;
所述获取反馈自所述训练数据库的训练结果,包括:
获取反馈自所述P个训练数据库的训练结果;
所述根据所述训练数据库的训练结果更新所述待优化数据库的数据库配置参数,包括:
根据所述P个训练数据库的训练结果更新所述待优化数据库的数据库配置参数。
16.根据权利要求9所述的自学习优化装置,其特征在于,所述数据库最终配置参数为支持在线调整类参数或重启数据库实例类参数;
在所述数据库最终配置参数为支持在线调整类参数的情况下,所述将最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库,还包括:
自动将所述数据库最终配置参数配置给所述待优化数据库,并持续记录所述待优化数据库的负载情况;
在所述数据库最终配置参数为重启数据库实例类参数的情况下,所述将最新数据库配置参数作为数据库最终配置参数配置给所述待优化数据库,还包括:
由数据库管理人员将所述数据库最终配置参数配置给所述待优化数据库,以及重启所述待优化数据库。
17.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令在被控制器执行时能够使得所述控制器执行权利要求1至8中任意一项所述的基于流量镜像的数据库自学习优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307572.7A CN110134665B (zh) | 2019-04-17 | 2019-04-17 | 基于流量镜像的数据库自学习优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307572.7A CN110134665B (zh) | 2019-04-17 | 2019-04-17 | 基于流量镜像的数据库自学习优化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110134665A true CN110134665A (zh) | 2019-08-16 |
CN110134665B CN110134665B (zh) | 2021-05-25 |
Family
ID=67570199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910307572.7A Active CN110134665B (zh) | 2019-04-17 | 2019-04-17 | 基于流量镜像的数据库自学习优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134665B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111199054A (zh) * | 2019-12-20 | 2020-05-26 | 深圳昂楷科技有限公司 | 一种数据脱敏方法、装置及数据脱敏设备 |
CN111339066A (zh) * | 2020-05-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 数据库优化方法、装置、电子设备及计算机可读存储介质 |
CN111723076A (zh) * | 2020-06-24 | 2020-09-29 | 苏州松鼠山人工智能科技有限公司 | 一种生成数据库索引的方法和装置 |
WO2022001965A1 (zh) * | 2020-06-30 | 2022-01-06 | 中兴通讯股份有限公司 | 数据库配置参数调整方法、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120066260A1 (en) * | 2006-02-01 | 2012-03-15 | Oracle International Corporation | System And Method For Building Decision Trees In A Database |
CN102622441A (zh) * | 2012-03-09 | 2012-08-01 | 山东大学 | 一种基于Oracle数据库的自动性能识别调优系统 |
US20140074872A1 (en) * | 2012-09-10 | 2014-03-13 | International Business Machines Corp. | Managing Workload Optimized Systems using Relational Database Modeling and Triggers |
CN103853786A (zh) * | 2012-12-06 | 2014-06-11 | 中国电信股份有限公司 | 数据库参数的优化方法与系统 |
CN105122241A (zh) * | 2013-03-15 | 2015-12-02 | 亚马逊科技公司 | 具有数据库引擎和独立分布式存储服务的数据库系统 |
CN106021411A (zh) * | 2016-05-13 | 2016-10-12 | 大连理工大学 | 一种具有集群自适应性的Storm任务部署与配置平台 |
CN107276808A (zh) * | 2017-06-21 | 2017-10-20 | 北京华创网安科技股份有限公司 | 一种流量异常监测的优化方法 |
CN108491226A (zh) * | 2018-02-05 | 2018-09-04 | 西安电子科技大学 | 基于集群缩放的Spark配置参数自动调优方法 |
CN109344201A (zh) * | 2018-10-17 | 2019-02-15 | 国网江苏省电力有限公司信息通信分公司 | 一种基于机器学习的数据库性能负载评估系统和方法 |
-
2019
- 2019-04-17 CN CN201910307572.7A patent/CN110134665B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120066260A1 (en) * | 2006-02-01 | 2012-03-15 | Oracle International Corporation | System And Method For Building Decision Trees In A Database |
CN102622441A (zh) * | 2012-03-09 | 2012-08-01 | 山东大学 | 一种基于Oracle数据库的自动性能识别调优系统 |
US20140074872A1 (en) * | 2012-09-10 | 2014-03-13 | International Business Machines Corp. | Managing Workload Optimized Systems using Relational Database Modeling and Triggers |
CN103853786A (zh) * | 2012-12-06 | 2014-06-11 | 中国电信股份有限公司 | 数据库参数的优化方法与系统 |
CN105122241A (zh) * | 2013-03-15 | 2015-12-02 | 亚马逊科技公司 | 具有数据库引擎和独立分布式存储服务的数据库系统 |
CN106021411A (zh) * | 2016-05-13 | 2016-10-12 | 大连理工大学 | 一种具有集群自适应性的Storm任务部署与配置平台 |
CN107276808A (zh) * | 2017-06-21 | 2017-10-20 | 北京华创网安科技股份有限公司 | 一种流量异常监测的优化方法 |
CN108491226A (zh) * | 2018-02-05 | 2018-09-04 | 西安电子科技大学 | 基于集群缩放的Spark配置参数自动调优方法 |
CN109344201A (zh) * | 2018-10-17 | 2019-02-15 | 国网江苏省电力有限公司信息通信分公司 | 一种基于机器学习的数据库性能负载评估系统和方法 |
Non-Patent Citations (4)
Title |
---|
LIN MA 等: "Query-based Workload Forecasting for Self-Driving Database Management Systems", 《SIGMOD "18: PROCEEDINGS OF THE 2018 INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA》 * |
张燕飞: "面向负载的数据库管理系统自动调优", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李晓丽: "数据库自优化模型的研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
黄旭: "分布式MySQL数据库集群在线监测系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111199054A (zh) * | 2019-12-20 | 2020-05-26 | 深圳昂楷科技有限公司 | 一种数据脱敏方法、装置及数据脱敏设备 |
CN111199054B (zh) * | 2019-12-20 | 2023-09-19 | 深圳昂楷科技有限公司 | 一种数据脱敏方法、装置及数据脱敏设备 |
CN111339066A (zh) * | 2020-05-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 数据库优化方法、装置、电子设备及计算机可读存储介质 |
CN111339066B (zh) * | 2020-05-20 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 数据库优化方法、装置、电子设备及计算机可读存储介质 |
CN111723076A (zh) * | 2020-06-24 | 2020-09-29 | 苏州松鼠山人工智能科技有限公司 | 一种生成数据库索引的方法和装置 |
WO2022001965A1 (zh) * | 2020-06-30 | 2022-01-06 | 中兴通讯股份有限公司 | 数据库配置参数调整方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110134665B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134665A (zh) | 基于流量镜像的数据库自学习优化方法及装置 | |
US11896905B2 (en) | Methods and systems for continuing to execute a simulation after processing resources go offline | |
CN109091868B (zh) | 对战行为确定的方法、装置、计算机设备及存储介质 | |
CN107368891A (zh) | 一种深度学习模型的压缩方法和装置 | |
CN110019151A (zh) | 数据库性能调整方法、装置、设备、系统及存储介质 | |
US11058957B2 (en) | Method, device and system for game difficulty assessment | |
JP5420044B1 (ja) | ゲーム管理サーバ装置、および、ゲーム管理サーバ装置用プログラム | |
US10272341B1 (en) | Procedural level generation for games | |
CN108776944B (zh) | 一种用于网络竞赛式学习的数据处理系统和方法 | |
CN106157979B (zh) | 一种获取人声音高数据的方法和装置 | |
CN107335220B (zh) | 一种消极用户的识别方法、装置及服务器 | |
CN109947438A (zh) | 基于机器学习的游戏安装方法及电子设备、可读存储介质 | |
CN101539968A (zh) | 一种围棋人机对弈系统 | |
US9639455B2 (en) | Autonomous media version testing | |
CN109925718A (zh) | 一种分发游戏微端地图的系统及方法 | |
Yin et al. | A data-driven approach for online adaptation of game difficulty | |
US8417489B2 (en) | Duration estimation of repeated directed graph traversal | |
US20230364501A1 (en) | Information provision device, information provision method, and information provision program | |
CN111176743B (zh) | 一种基于用户使用习惯的唤醒性能优化方法及装置 | |
CN113780415B (zh) | 基于小程序游戏的用户画像生成方法、装置、设备及介质 | |
US20160379510A1 (en) | System and method for adjusting the difficulty of a computer-implemented quiz | |
CN110263937A (zh) | 一种数据处理方法、设备及存储介质 | |
CN109948062A (zh) | 一种目标匹配方法、装置、服务器、系统及存储介质 | |
CN110334200A (zh) | 一种问题答案库的生成方法、装置及存储介质 | |
KR101259573B1 (ko) | 무선 센서 네트워크 시뮬레이터를 위한 파라미터 추출장치 및 방법 |
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 |