面向负载感知的多模数据库arangodb参数调优的方法
技术领域
1.本发明涉及一种面向负载感知的多模数据库arangodb参数调优的方法,属于软件性能评测与数据库感知调优技术领域。
背景技术:2.随着物联网技术的快速发展和网络应用程序数量的快速增长,数据规模呈爆炸式增长,数据类型愈发丰富,例如,在“社交商务”和“智慧水利”等应用中,一般包含结构化的关系性数据和半结构化的文档类型的数据等,这些数据往往存储在一个承载数据存储和计算功能的专用软件数据库系统中。但是,传统的关系型数据库难以满足应用对数据结构多样的数据存储和查询。因此,为有效解决传统数据库的不足,多模数据库(multi model database,mmdb)被开发,多模数据库是数据库管理系统的一个新兴趋势,与采用单独的数据存储来满足各种用例的多语种持久性技术相比,它可以所有结构形式的数据都保存在单一引擎中,而不需要去为各种类型的数据去部署不同的数据库。多模数据库被认为是融合了灵活性、可扩展性和一致性的下一代数据管理系统。
3.多模数据库同时兼具了多种类型数据库(如文档数据库、图数据库)的特点,为用户存储和管理多种数据模型的数据提供了解决方案。但是,多模数据库仍存在着配置参数优化的问题,数据库系统给出的默认配置往往不能使性能达到最佳,一般需要针对实际的工作负载或应用进行配置参数优化。参数调优一直是数据库优化领域里一个艰巨的挑战和具有重大意义的研究工作,对参数进行调优需要调优者具备丰富的调优经验,一般由数据库管理者(database administrator,dba)完成。但是,由dba来调优的形式用于多模数据库存在一些局限:首先,dba通常擅长调优它们熟悉的系统,很难调优不熟悉的系统。其次,参数调整是一个np-hard的问题,面对几百个参数,dba往往很难对高维的参数空间进行调优。第三,由于系统可以构建在不同的环境中(例如本地、云或内存等),dba需要在不同的环境中长时间地调优系统,这严重影响了调优效率。最后,在应用程序场景中,工作负载通常动态且连续地变化,不断变化的工作负载也要求dba始终动态调优旋钮以实现高性能,这显然是非常低效的。
技术实现要素:4.发明目的:针对现有技术中存在的问题与不足,本发明提供一种面向负载感知的多模数据库arangodb参数调优的方法,为最大化利用系统资源,提高arangodb的性能提供了可行的方案。
5.技术方案:一种面向负载感知的多模数据库arangodb参数调优的方法,包括:基准测评工具mmdbench和参数调优框架adbtune。其中,adbtune包含配置参数排序、负载感知和参数调优。具体包括如下步骤:
6.(1)构建基准测评工具
7.(2)构建配置参数选择模块
8.(3)构建负载感知模块
9.(4)基于td3算法构建调优模型
10.所述步骤(1)中,基准测评工具mmdbench用来对执行的工作负载进行性能测评。它主要有两部分组成:负载生成器和度量指标收集器。所述负载生成器用来生成多模数据库的不同的数据请求分布方式和操作组成的工作负载;数据请求分布方式提供了zipfian(根据zipfian分布来选择数据)、uniform(等概率读取数据)和latest(最新的数据优先读取)等以满足不同场景的需求。度量指标收集器主要是收集执行负载中的性能指标。
11.所述工作负载生成器提供了多模数据库操作、数据请求分布方式、线程数和执行时间4个参数来生成能够模拟实际场景下的工作负载。其中,多模数据库操作包含文档、键值和图三种数据模型的查询、增加、更新和删除等基本操作,同时还提供复杂的聚合、连接和读写不同比例混合的操作,这些操作不光涵盖单模型,还包含多模数据的跨模型操作。线程数由用户指定,使基准测评工具能够生成多个线程来执行工作负载;执行时间是工作负载执行压力测试的时间,如果超出这个时间,基准测评工具mmdbench会切断所有线程的执行操作。具体生成工作负载步骤如下:首先,用户指定上述提到的多模数据库的操作、数据请求分布方式、线程数和执行时间这四个参数,然后,工作负载生成器根据这四个参数生成特定的工作负载,最后,执行工作负载,最终结果由度量指标收集器统计。
12.度量指标收集器主要是收集执行负载中的性能指标,即在执行工作负载中,收集器记录执行工作负载的次数和每次的延迟,即在执行工作负载中,收集器记录执行工作负载的次数和每次的延迟,然后由次数和执行时间参数计算得出吞吐量,延迟取所有延迟中下标为99%分位的值。
13.所述步骤(2)中,构建配置参数选择模块中,包括配置参数排序,配置参数排序用来对数据库参数进行排序,来筛选重要参数。具体来说,利用随机森林回归方法来构建特征分析模型,通过对估计计算变量的权重(特征重要性权重)进行排序。模型经过训练完成后会得到一个特征重要性参数_feature_importances,我们可以根据这个参数对配置参数进行排序,对于结果影响越大,该值就越大。adbtune保存了arangodb通过随机森林回归方法对不同调优指标按照特征重要性排序后配置参数列表。需要注意的是,用于调优的配置参数数量越多,往往得到的最终的性能提升率也越高,不过参数数量越多也造成了算法的复杂度越高,使得调优的时间复杂度增加。因此,可以在效率和性能提升率之间进行权衡选择较为合适的配置参数。比如,如果追求效率,就可以仅针对重要性高的前20个配置参数进行调优;如果追求性能提升率,就可以对所有可以调整的配置参数进行调优。
14.所述步骤(3)中,负载感知模块用来感知工作负载变化并搜索历史类似负载的经验,它能够对工作负载进行细粒度的分类,对于相似负载的经验知识可以迁移到当前调优任务,进而提高调优效率和性能。具体来说,把数据库内部状态变量向量化,进行z-score标准化,使这些变量处于同一数量级上后,再利用主成分析(principal component analysis,pca)方法进行降维处理。最后,使用k-means感知负载变化,若发生变化则利用皮尔森相关系数计算出新负载与历史负载的相似度,将经过调优的相似度最高的工作负载的预训练模型迁移到当前调优任务的模型中,然后对当前调优模型进行微调,以便提升算法的准确性和调优效率。
15.所述步骤(4)中,基于td3算法构建调优模型具体包含如下步骤:
16.(41)随机初始化当前行动者网络的参数θ
μ
与当前评论家的参数和初始化目标行动者网络参数θ
μ
′
和目标评论家网络与初始化调优经验池β。
17.(42)在默认配置下使用基准测评工具mmdbench进行基准测试,得到arangodb性能p和数据库内部状态s。
18.(43)若在线调优阶段,将利用步骤(3)中负载感知模块,把负载感知模块的预训练模型迁移到当前调优任务下的调优模型中。否则,不迁移。关于如何划分是否在线调优阶段,主要是根据是否提供给用户实际生产环境下使用的阶段,在真实场景下进行使用都属于在线调优阶段。
19.(44)根据数据库内部状态s,由当前行动者网络推荐一组配置参数a。
20.(45)将arangodb配置调整为a,使用mmdbench重新进行基准测试,得到性能p
′
和内部状态s
′
。根据p和p
′
有奖励函数计算出奖励r。
21.(46)从β随机采样批大小为n的小批量样本(s,s
′
,a,r)计算梯度对评论家和行动者进行参数更新。
22.(48)重复执行(44)~(46),直到模型收敛或达到截止条件,然后输出推荐配置。
23.优选的,步骤(45)中,奖励函数:
[0024][0025]
其中,δ
t
→0表示相对默认配置下arangodb的性能提升率,δ
t
→
t-1
表示相对arangodb的历史最优性能的提升率。δ
t
→0>0表示当前性能相对默认配置下有所提升,δ
t
→
t-1
>0表示当前性能相对历史最优有所提升。考虑到调优的最终目标是实现比初始设置更好的性能,我们需要减少调优的中间过程对设计奖励功能的影响。因此,当δ
t
→0的结果为正,且δ
t
→
t-1
为负时,设r=0。
[0026]
一种面向负载感知的多模数据库arangodb的参数调优系统,包括:基准测评工具mmdbench和参数调优工具adbtune,其中adbtune包含配置参数排序、负载感知和参数调优三个模块;mmdbench为调优任务生成相应工作负载后进行基准测试,然后根据度量指标收集器得到基准测试结果;adbtune包括配置参数选择、负载感知和调优算法选择;配置参数选择是利用随机森林回归算法得到配置参数与调优指标的相关性,根据相关性为依据选择配置参数进行调优;负载感知是根据k-means检测到工作负载变化后利用相似度算法计算当前工作负载与历史工作负载库中的相似度,然后把相似度最高的工作负载经调优后得到的预训练模型迁移到当前调优任务下的调优模型中;调优算法用来推荐配置参数。
[0027]
所述系统的实现方法和上述方法一样。
[0028]
有益效果:为了能够最大化开发多模数据库arangodb的性能,减少资源浪费和提高服务质量,提出了一种面向负载感知的多模数据库arangodb的参数调优其构建方法,针对各多模数据库支持的数据类型,生成的工作负载实现了不同的数据请求分布方式,如zipfian、uniform和latest,以满足不同场景的需求。在arangodb调优工具adbtune中,可以利用配置参数排序和负载感知大大减少调优的时间和最终的准确度。最后,利用调优算法实现调优并输出推荐配置,从而为arangodb实现性能优化和提高服务质量提供有效的方
案。
附图说明
[0029]
图1为本发明实施例的体系结构示意图;
[0030]
图2为本发明实施例的参数调优的流程图。
具体实施方式
[0031]
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。
[0032]
如图1所示,一种面向负载感知的多模数据库arangodb的参数调优系统,包括:基准测评工具mmdbench和参数调优工具adbtune,其中adbtune包含配置参数排序、负载感知和参数调优三个模块。mmdbench为调优任务生成相应工作负载后进行基准测试,然后根据度量指标收集器得到基准测试结果;adbtune包括配置参数选择、负载感知和调优算法选择。配置参数选择是利用随机森林回归算法得到配置参数与调优指标的相关性,我们会根据相关性为依据选择配置参数进行调优。负载感知核心是根据k-means检测到工作负载变化后利用相似度算法计算当前工作负载与历史工作负载库中的相似度,然后把相似度最高的工作负载经调优后得到的预训练模型迁移到当前调优任务下的调优模型中。调优算法用来推荐配置参数。
[0033]
如图2所示,本发明参数调优的执行步骤如下:
[0034]
(1)调优模型是基于td3算法构建的。td3包含行动者和双评论家两部分,行动者采用了两个相同的网络结构,当前行动者网络μ和目标行动者网络μ
′
;双评论家包含网络结构相同的两个当前评论家网络q1和q2与两个评论家目标网络q1′
和q2′
,其中目标网络的参数采用软更新的方式。因此,在调优模型中一共用到了六个深度神经网络。随机初始化当前行动者网络的参数θ
μ
与当前评论家网络的参数和初始化目标行动者网络参数θ
μ
′
和目标评论家网络的参数与初始化调优经验池β。
[0035]
(2)在默认配置下使用基准测评工具mmdbench生成工作负载,对arangodb进行基准测试,得到arangodb性能p。同时,在执行基准测试的期间adbtune会统计arangodb初始运行状态s。
[0036]
(3)配置参数选择模块以随机森林算法得到的重要性结果为依据选择对性能指标p重要性高的配置参数。具体来说,经过随机森林算法处理后,对于每一个配置参数都有一个范围[0,1]的特征权重值,权重值越大代表重要性越高。反之,越小。
[0037]
(4)若调优是离线训练阶段,也就是说数据仓库种没有历史调优数据和预训练模型等,那么将进行离线训练收集调优数据和预训练模型,该部分调优是非常耗时的(具体设置500个迭代步数进行训练)。若非离线训练阶段,将利用负载感知模块检测负载变化并根据皮尔森相关系数匹配历史最相似的工作负载,把对相似工作负载经过调优得到的预训练模型迁移到当前调优任务下的调优模型进行微调,这样能够有效的提升调优的效率(迭代步数设置为5)。
[0038]
(5)根据状态s,由行动者网络推荐一组配置参数a:a=u(s|θ
μ
)。
[0039]
(6)将arangodb配置调整为a,使用mmdbench重新进行基准测试,得到性能p
′
。同时,adbtune监测到arangodb的内部状态s
′
。根据p和p
′
有奖励函数计算出奖励r:
[0040][0041]
其中,δ
t
→0表示相对默认配置下arangodb的性能提升率,δ
t
→
t-1
表示相对arangodb的历史最优性能的提升率。δ
t
→0>0表示当前性能相对默认配置下有所提升,δ
t
→
t-1
>0表示当前性能相对历史最优有所提升。考虑到调优的最终目标是实现比初始设置更好的性能,我们需要减少调优的中间过程对设计奖励功能的影响。因此,当δ
t
→0的结果为正,且δ
t
→
t-1
为负时,设r=0。
[0042]
(7)将得到的训练数据四元组(s,a,r,s
′
)存入β。从β随机采样批大小为n的小批量样本对调优模型训练,当前评论家网络按计算梯度并用优化器进行参数更新。其中,由当前评论家根据状态s和动作a计算目标q值为代表由q函数相对于求导得到的梯度,y为目标值,由目标网络计算得到:
[0043][0044]
其中,由目标评论家网络输出的价值q为由目标行动者网络计算动作为u
′
(s
′
|θu′
),γ是折扣率,γ∈[0,1]。强化学习中的概念,当γ接近于0时,表示智能体更关心短期回报,反之,当γ接近于1时,表示智能体更在意长期回报。
[0045]
按照延迟策略更新当前行动者网络参数、目标行动者网络参数和目标评论家网络的参数,也就是说评论家更新多次(实验设为2),当前行动者网络参数、目标行动者网络参数和目标评论家网络才会更新一次。当前行动者网络按梯度更新参数,其中代表由对应函数对参数θ求导得到的梯度。更新目标行动者网络和目标评论家网络参数:
[0046][0047]
其中,τ为软更新权重。
[0048]
(8)若没有达到终止条件,则令s=s
′
,然后重复执行(4)~(7)阶段,否则进入下一阶段,表示此次调优结束。终止条件:若使用负载感知则设为5次终止,否则500次。参数θ
μ
、和收敛对应的是调优模型收敛,通过损失函数的变化来确定收敛与否,如果损失函数的变化趋于稳定,则说明已收敛。
[0049]
(9)输出推荐的配置,调优结束。
技术特征:1.一种面向负载感知的多模数据库arangodb参数调优的方法,其特征在于,包括,基准测评工具mmdbench和参数调优框架adbtune;其中,adbtune包含配置参数排序、负载感知和参数调优;具体包括如下步骤:(1)构建基准测评工具mmdbench,用来对执行的工作负载进行性能测评;(2)构建配置参数选择模块;包括配置参数排序,配置参数排序用来对数据库参数进行排序,来筛选重要参数;(3)构建负载感知模块,用来感知工作负载变化并搜索历史类似负载的经验;(4)基于td3算法构建调优模型。2.根据权利要求1所述的面向负载感知的多模数据库arangodb参数调优的方法,其特征在于,所述步骤(1)中,基准测评工具mmdbench包括负载生成器和度量指标收集器;所述负载生成器用来生成多模数据库的不同的数据请求分布方式和操作组成的工作负载;数据请求分布方式包括zipfian、uniform和latest;所述度量指标收集器主要是收集执行负载中的性能指标。3.根据权利要求2所述的面向负载感知的多模数据库arangodb参数调优的方法,其特征在于,所述工作负载生成器提供了多模数据库操作、数据请求分布方式、线程数和执行时间4个参数来生成能够模拟实际场景下的工作负载;其中,多模数据库操作包含文档、键值和图三种数据模型的查询、增加、更新和删除操作,同时还提供聚合、连接和读写不同比例混合的操作,这些操作不光涵盖单模型,还包含多模数据的跨模型操作;线程数由用户指定,使基准测评工具能够生成多个线程来执行工作负载;执行时间是工作负载执行压力测试的时间,如果超出这个时间,基准测评工具mmdbench会切断所有线程的执行操作;具体生成工作负载步骤如下:首先,用户指定上述提到的多模数据库的操作、数据请求分布方式、线程数和执行时间这四个参数,然后,工作负载生成器根据这四个参数生成特定的工作负载,最后,执行工作负载,最终结果由度量指标收集器统计。4.根据权利要求2所述的面向负载感知的多模数据库arangodb参数调优的方法,其特征在于,所述度量指标收集器是收集执行负载中的性能指标,即在执行工作负载中,收集器记录执行工作负载的次数和每次的延迟,即在执行工作负载中,收集器记录执行工作负载的次数和每次的延迟,然后由次数和执行时间参数计算得出吞吐量,延迟取所有延迟中下标为99%分位的值。5.根据权利要求2所述的面向负载感知的多模数据库arangodb参数调优的方法,其特征在于,所述步骤(2)中,构建配置参数选择模块中,利用随机森林回归方法来构建特征分析模型,通过对估计计算变量的权重进行排序;模型经过训练完成后会得到一个特征重要性参数,根据特征重要性参数对配置参数进行排序,对于结果影响越大,该值就越大;参数调优框架adbtune保存了arangodb通过随机森林回归方法对不同调优指标按照特征重要性排序后配置参数列表。6.根据权利要求5所述的面向负载感知的多模数据库arangodb参数调优的方法,其特征在于,所述步骤(3)中,负载感知模块用来感知工作负载变化并搜索历史类似负载的经验,对工作负载进行细粒度的分类;具体来说,把数据库内部状态变量向量化,进行z-score标准化,使所述状态变量处于同一数量级上后,再利用主成分析方法进行降维处理;最后,使用k-means感知负载变化,若发生变化则利用皮尔森相关系数计算出新负载与历史负载
的相似度,将经过调优的相似度最高的工作负载的预训练模型迁移到当前调优任务的模型中,然后对当前调优模型进行微调。7.根据权利要求1所述的面向负载感知的多模数据库arangodb参数调优的方法,其特征在于,所述步骤(4)中,基于td3算法构建调优模型具体包含如下步骤:(41)随机初始化当前行动者网络的参数θ
μ
与当前评论家的参数和初始化目标行动者网络参数θ
μ
′
和目标评论家网络与初始化调优经验池β;(42)使用基准测评工具mmdbench进行基准测试,得到arangodb性能p和数据库内部状态s;(43)若在线调优阶段,把负载感知模块的预训练模型迁移到当前调优任务下的调优模型中;否则,不迁移;(44)根据数据库内部状态s,由当前行动者网络推荐一组配置参数a;(45)将arangodb配置调整为a,使用mmdbench重新进行基准测试,得到性能p
′
和内部状态s
′
;根据p和p
′
有奖励函数计算出奖励r;(46)从β随机采样批大小为n的小批量样本(s,s
′
,a,r)计算梯度对评论家和行动者进行参数更新;(48)重复执行(44)~(46),直到模型收敛或达到截止条件,然后输出推荐配置。8.根据权利要求7所述的面向负载感知的多模数据库arangodb参数调优的方法,其特征在于,步骤(45)中,奖励函数:其中,δ
t
→0表示相对默认配置下arangodb的性能提升率,δ
t
→
t-1
表示相对arangodb的历史最优性能的提升率;δ
t
→0>0表示当前性能相对默认配置下有所提升,δ
t
→
t-1
>0表示当前性能相对历史最优有所提升;当δ
t
→0的结果为正,且δ
t
→
t-1
为负时,设r=0。9.一种面向负载感知的多模数据库arangodb的参数调优系统,其特征在于,包括:基准测评工具mmdbench和参数调优工具adbtune,其中adbtune包含配置参数排序、负载感知和参数调优三个模块;mmdbench为调优任务生成相应工作负载后进行基准测试,然后根据度量指标收集器得到基准测试结果;adbtune包括配置参数选择、负载感知和调优算法选择;配置参数选择是利用随机森林回归算法得到配置参数与调优指标的相关性,根据相关性为依据选择配置参数进行调优;负载感知是根据k-means检测到工作负载变化后利用相似度算法计算当前工作负载与历史工作负载库中的相似度,然后把相似度最高的工作负载经调优后得到的预训练模型迁移到当前调优任务下的调优模型中;调优算法用来推荐配置参数。
技术总结本发明公开一种面向负载感知的多模数据库ArangoDB参数调优的方法,涉及基准测评工具MMDBench和参数调优工具ADBTune,其中ADBTune包含配置参数选择、负载感知和参数调优三个模块。方法包含如下步骤:(1)构建基准测评工具;(2)构建配置参数选择模块;(3)构建负载感知模块;(4)基于TD3算法构建参数调优模型。本发明实现了工作负载的复杂性以及调优任务的多样性,通过TD3算法构建模型来学习多模数据库ArangoDB的参数和性能之间的映射关系。该方法可广泛应用于智慧水利、智慧农业等多领域的数据存储机制的性能优化。据存储机制的性能优化。据存储机制的性能优化。
技术研发人员:叶枫 李阳 刘炜 兰林 李凤生 傅晓
受保护的技术使用者:河海大学
技术研发日:2022.04.08
技术公布日:2022/7/5