掌桥专利:专业的专利平台
掌桥专利
首页

数据库的参数调整方法及参数调整装置、电子设备

文献发布时间:2023-06-19 12:24:27


数据库的参数调整方法及参数调整装置、电子设备

技术领域

本发明涉及数据处理技术领域,具体而言,涉及一种数据库的参数调整方法及参数调整装置、电子设备。

背景技术

相关技术中,常见的数据库(比如oracle、mysql、postgresql等),其可配置的参数众多,参数配置是否合理对于运行的数据库系统性能至关重要。但由于数据库类型的不同、业务特征的多样性、硬件环境的多样性和多变性、参数的数量和彼此之间的复杂关系等原因,如果采用手工方式对数据库进行参数调优的方式,会使得优化工作效率低,效果不佳,优化结果持久性较差,而且需要优化人员对该类数据库有较专业的技术知识。

现有方案中,通过手动方式调整数据库的参数,没有明确的参数配置算法,或规则配置算法效率较低,导致实际优化效率和质量不高;且无法配置合法的参数空间,导致优化任务存在安全险风险;无法定义明确复杂的优化目标,导致无法适应多样性优化目标的需求。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种数据库的参数调整方法及参数调整装置、电子设备,以至少解决相关技术中采用手工方式对数据库进行参数调优,效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种数据库的参数调整方法,包括:基于预设数据库的参数调整规则生成参数空间,其中,所述参数空间可被划分为多个子空间,所述多个子空间中至少包括目标子空间;在所述目标子空间进行参数采样,得到多个参数样本;评估每个所述参数样本的性能得分,以确定目标参数样本;根据评估出的目标参数样本对所述预设数据库进行参数调整。

可选地,在基于预设数据库的参数调整规则生成参数空间之前,所述参数调整方法还包括:配置参与调整所述预设数据库的参数的参数域,其中,所述参数域中不包括影响所述预设数据库非性能状态的参数;配置参与调整所述预设数据库的参数的最小步长和映射关系;基于参数取值的来源类型,配置所述预设数据库的参数的取值范围规则。

可选地,基于参数取值的来源类型,配置所述预设数据库的参数的取值范围规则的步骤,包括:在参数取值的来源类型为独立取值参数,配置所述预设数据库的参数的取值范围为合法取值范围;在参数取值的来源类型为仅依赖其他参数值的参数,配置所述预设数据库的参数的取值范围为被依赖参数的函数;在参数取值的来源类型为仅依赖于资源限制的参数,配置所述预设数据库的参数的取值范围为被依赖资源的函数;在参数取值的来源类型为依赖于其他参数值和资源限制的参数,配置所述预设数据库的参数的取值范围为被依赖参数和资源的函数。

可选地,基于预设数据库的参数调整规则生成参数空间的步骤,包括:基于所述预设数据库的参数的取值范围规则,采用最优中心点算法生成参数空间。

可选地,在基于预设数据库的参数调整规则生成参数空间之后,所述参数调整方法还包括:根据预先配置的样本集大小和参数的最小步长,将所述参数空间划分为多个子空间,其中,每个参数在所述参数空间中被平均分割为每轮样本集大小数量的参数段,且每个所述参数段的区间长度大于等于参数的最小步长;采用最大基数原则和未采样空间优先原则从所述多个子空间中选择出所述目标子空间,其中,所述最大基数原则是指不同参数样本的同一个参数分布在不同的子空间。

可选地,评估每个所述参数样本的性能得分,以确定目标参数样本的步骤,包括:确定预设数据库的待调整目标;基于所述预设数据库的待调整目标,采集预设数据库的多个性能目标数据;基于所述多个性能目标数据计算每个所述参数样本的性能得分;确定与最高性能得分对应的参数样本,并将该参数样本表征为所述目标参数样本。

可选地,在根据评估出的目标参数样本对所述预设数据库进行参数调整之后,所述参数调整方法还包括:配置所述预设数据库的新一轮样本集大小;根据评估出的目标参数样本生成新一轮的有界参数空间;基于新一轮样本集大小和参数的最小步长,将新一轮的有界参数空间划分为多个新一轮子空间;采用最大基数原则和未采样空间优先原则从所述多个新一轮子空间中选择出新一轮目标子空间;在所述新一轮目标子空间进行参数采样,得到多个参数样本;评估每个所述参数样本的性能得分,以确定新一轮目标参数样本;根据评估出的新一轮目标参数样本对所述预设数据库进行参数调整。

可选地,根据评估出的目标参数样本生成新一轮的有界参数空间的步骤,包括:以所述目标参数样本为中心,采用最优点中心算法确定新一轮样本集的有界参数空间。

可选地,所述参数调整方法还包括:获取每轮样本集大小、调整轮数和每个参数样本的验证时长;基于所述每轮样本集大小、所述调整轮数和每个参数样本的验证时长,配置所述预设数据库的参数调整任务的资源上限。

根据本发明实施例的另一方面,还提供了一种数据库的参数调整装置,包括:生成单元,用于基于预设数据库的参数调整规则生成参数空间,其中,所述参数空间可被划分为多个子空间,所述多个子空间中至少包括目标子空间;采样单元,用于在所述目标子空间进行参数采样,得到多个参数样本;评估单元,用于评估每个所述参数样本的性能得分,以确定目标参数样本;调整单元,用于根据评估出的目标参数样本对所述预设数据库进行参数调整。

可选地,所述数据库的参数调整装置还包括:第一配置单元,用于在基于预设数据库的参数调整规则生成参数空间之前,配置参与调整所述预设数据库的参数的参数域,其中,所述参数域中不包括影响所述预设数据库非性能状态的参数;第二配置单元,用于配置参与调整所述预设数据库的参数的最小步长和映射关系;第三配置单元,用于基于参数取值的来源类型,配置所述预设数据库的参数的取值范围规则。

可选地,所述第三配置单元包括:第一配置模块,用于在参数取值的来源类型为独立取值参数,配置所述预设数据库的参数的取值范围为合法取值范围;第二配置模块,用于在参数取值的来源类型为仅依赖其他参数值的参数,配置所述预设数据库的参数的取值范围为被依赖参数的函数;第三配置模块,用于在参数取值的来源类型为仅依赖于资源限制的参数,配置所述预设数据库的参数的取值范围为被依赖资源的函数;第四配置模块,用于在参数取值的来源类型为依赖于其他参数值和资源限制的参数,配置所述预设数据库的参数的取值范围为被依赖参数和资源的函数。

可选地,所述生成单元包括:第一生成模块,用于基于所述预设数据库的参数的取值范围规则,采用最优中心点算法生成参数空间。

可选地,所述数据库的参数调整装置还包括:第一划分单元,用于在基于预设数据库的参数调整规则生成参数空间之后,根据预先配置的样本集大小和参数的最小步长,将所述参数空间划分为多个子空间,其中,每个参数在所述参数空间中被平均分割为每轮样本集大小数量的参数段,且每个所述参数段的区间长度大于等于参数的最小步长;选择单元,用于采用最大基数原则和未采样空间优先原则从所述多个子空间中选择出所述目标子空间,其中,所述最大基数原则是指不同参数样本的同一个参数分布在不同的子空间。

可选地,所述评估单元包括:第一确定模块,用于确定预设数据库的待调整目标;第一采集模块,用于基于所述预设数据库的待调整目标,采集预设数据库的多个性能目标数据;第一计算模块,用于基于所述多个性能目标数据计算每个所述参数样本的性能得分;第二确定模块,用于确定与最高性能得分对应的参数样本,并将该参数样本表征为所述目标参数样本。

可选地,所述数据库的参数调整装置还包括:第四配置单元,用于在根据评估出的目标参数样本对所述预设数据库进行参数调整之后,配置所述预设数据库的新一轮样本集大小;第二生成模块,用于根据评估出的目标参数样本生成新一轮的有界参数空间;第二划分单元,用于基于新一轮样本集大小和参数的最小步长,将新一轮的有界参数空间划分为多个新一轮子空间;选择模块,用于采用最大基数原则和未采样空间优先原则从所述多个新一轮子空间中选择出新一轮目标子空间;采样模块,用于在所述新一轮目标子空间进行参数采样,得到多个参数样本;评估模块,用于评估每个所述参数样本的性能得分,以确定新一轮目标参数样本;调整模块,用于根据评估出的新一轮目标参数样本对所述预设数据库进行参数调整。

可选地,第二生成模块包括:第三确定模块,用于以所述目标参数样本为中心,采用最优点中心算法确定新一轮样本集的有界参数空间。

可选地,所述数据库的参数调整装置还包括:获取单元,用于获取每轮样本集大小、调整轮数和每个参数样本的验证时长;第五配置单元,用于基于所述每轮样本集大小、所述调整轮数和每个参数样本的验证时长,配置所述预设数据库的参数调整任务的资源上限。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的数据库的参数调整方法。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的数据库的参数调整方法。

本发明实施例中,采用基于预设数据库的参数调整规则生成参数空间,其中,参数空间可被划分为多个子空间,多个子空间中至少包括目标子空间,在目标子空间进行参数采样,得到多个参数样本,评估每个参数样本的性能得分,以确定目标参数样本,根据评估出的目标参数样本对预设数据库进行参数调整。在该实施例,可以自动化配置参数调整规则,并对数据库的参数进行自动化调整,不仅提高了数据库参数优化的效率,而且保证了参数值的合法性和全面的覆盖率,从而解决相关技术中采用手工方式对数据库进行参数调优,效率较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的数据库的参数调整方法的流程图;

图2是根据本发明实施例的另一种可选的数据库的参数调整方法的示意图;

图3是根据本发明实施例的一种可选的数据库的参数调整装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明可以应用于各种数据库中,例如,oracle、mysql、postgresql等,针对不同类型、多样性的业务特征、硬件环境的多样性和多变性、参数的数量和彼此之间的复杂关系等方面的数据库。

相对于现有技术中,数据库实际的参数取值范围会依赖环境和其他参数而动态生成,现有方案的参数取值规则无法实现其动态生成,通过本发明的参数规则和参数空间算法可以实现动态参数空间的生成。现有技术没有明确的参数配置算法,或规则配置算法效率较低,导致实际优化效率和质量不高,本发明通过最大基数原则和最优点中心算法大幅提升了参数优化的效率。现有技术无法记忆优化历史,会导致总是使用近似的参数配置重复优化,本发明通过记录优化历史和起始优化点特性,通过使用未采样空间优先原则,可以有效地多次运行优化任务,避免因实际情况违反最优点中心算法的假设而陷入次最优区域陷阱。现有技术无法配置复杂明确的优化目标,能纳入考虑的优化目标也较少,导致优化目标不能适用于多变复杂的场景,本发明实现了优化目标的可复杂配置性和结果的明确性。下面结合各个实施例来详细说明本发明。

实施例一

根据本发明实施例,提供了一种数据库的参数调整方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的数据库的参数调整方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,基于预设数据库的参数调整规则生成参数空间,其中,参数空间可被划分为多个子空间,多个子空间中至少包括目标子空间;

步骤S104,在目标子空间进行参数采样,得到多个参数样本;

步骤S106,评估每个参数样本的性能得分,以确定目标参数样本;

步骤S108,根据评估出的目标参数样本对预设数据库进行参数调整。

通过上述步骤,可以基于预设数据库的参数调整规则生成参数空间,其中,参数空间可被划分为多个子空间,多个子空间中至少包括目标子空间;在目标子空间进行参数采样,得到多个参数样本;评估每个参数样本的性能得分,以确定目标参数样本;根据评估出的目标参数样本对预设数据库进行参数调整。在该实施例,可以自动化配置参数调整规则,并对数据库的参数进行自动化调整,不仅提高了数据库参数优化的效率,而且保证了参数值的合法性和全面的覆盖率,从而解决相关技术中采用手工方式对数据库进行参数调优,效率较低的技术问题。

下面结合上述各实施步骤来详细说明本发明。

可选的,在基于预设数据库的参数调整规则生成参数空间之前,参数调整方法还包括:配置参与调整预设数据库的参数的参数域,其中,参数域中不包括影响预设数据库非性能状态的参数;配置参与调整预设数据库的参数的最小步长和映射关系;基于参数取值的来源类型,配置预设数据库的参数的取值范围规则。

配置参数域时,参与数据库参数调整或者优化的参数不包括可能影响数据库非性能状态的参数,比如影响复制、影响权限的参数将不在参数域中。

在定义参数的最小步长和映射关系时,需要定义参数域中每一个参数取值的最小步长;所有类型的数值都需要映射为数值类型,比如布尔类型的参数值将转换为0和1,最小步长为1,枚举类型需要对枚举值进行映射成整数。

另一种可选的,基于参数取值的来源类型,配置预设数据库的参数的取值范围规则的步骤,包括:在参数取值的来源类型为独立取值参数,配置预设数据库的参数的取值范围为合法取值范围;在参数取值的来源类型为仅依赖其他参数值的参数,配置预设数据库的参数的取值范围为被依赖参数的函数;在参数取值的来源类型为仅依赖于资源限制的参数,配置预设数据库的参数的取值范围为被依赖资源的函数;在参数取值的来源类型为依赖于其他参数值和资源限制的参数,配置预设数据库的参数的取值范围为被依赖参数和资源的函数。

定义参数的首轮取值范围规则,根据参数取值来源分为四类:

a)独立取值的参数:其取值范围不依赖于其他参数和资源限制;取值范围为参数的合法取值范围。

b)其取值范围只依赖于其他参数值的参数:取值范围为被依赖参数的函数: Ymax=ƒ(X1,X¬2,X3,…,Xn),Ymin=ƒ(X1,X¬2,X3,…,Xn),其中Y为取值的参数,X为被依赖的参数。

c)其取值范围只依赖于资源限制的参数;取值范围为被依赖资源的函数:Ymax=ƒ(R1, R2, R3,…, Rn),Ymin=ƒ(R1, R2, R3,…, Rn),其中Y为取值的参数,R为被被依赖的资源,R在首轮参数空间中为常量。

d)其取值范围依赖于其他参数值和资源限制的参数;取值范围为被依赖参数和资源的函数:Ymax=ƒ(X1,X¬2,X3,…,Xn, R1, R2,R3,…, Rn),Ymin=ƒ(X1,X¬2,X3,…,Xn,R1,R2,R3,…, Rn),其中Y为取值的参数,X为被依赖的资源,R为被依赖的资源。

步骤S102,基于预设数据库的参数调整规则生成参数空间,其中,参数空间可被划分为多个子空间,多个子空间中至少包括目标子空间。

可选的,基于预设数据库的参数调整规则生成参数空间的步骤,包括:基于预设数据库的参数的取值范围规则,采用最优中心点算法生成参数空间。

对于首轮参数空间,确定首轮参数空间:其空间根据参数规则模块中参数的取值范围规则来确定,为了后续能够正常使用最优中心点算法,首轮参数空间必须为凸集。假设X

实际的参数取值范围会依赖环境和其他参数而动态生成,现有方案的参数取值规则无法实现其动态生成,通过本发明的参数规则和参数空间算法可以实现动态参数空间的生成。

另一种可选的,在基于预设数据库的参数调整规则生成参数空间之后,参数调整方法还包括:根据预先配置的样本集大小和参数的最小步长,将参数空间划分为多个子空间,其中,每个参数在参数空间中被平均分割为每轮样本集大小数量的参数段,且每个参数段的区间长度大于等于参数的最小步长;采用最大基数原则和未采样空间优先原则从多个子空间中选择出目标子空间,其中,最大基数原则是指不同参数样本的同一个参数分布在不同的子空间。

在划分子空间时,根据配置的每轮样本集大小和参数规则模块中的最小步长,将参数空间划分为子空间;每个参数将在参数空间中被平均分割为每轮样本集大小数量的段且每个段的区间长度不能小于参数规则模块中定义的最小步长。即子空间中参数P

在选择子空间时,可以基于最大基数原则和未采样空间优先原则来选择子空间,并记录参数样本,子空间数量为每轮样本集大小;其中,最大基数原则是指:不同样本的同一个参数都尽可能在不同的子空间,这样可以使得样本集有最大的覆盖面,同时减少优化任务的资源使用。该原则是基于一个假设,即对性能有重要影响的参数往往可以较为独立地影响性能,受其他参数的影响不大。该原则在保证参数覆盖率的同时,提高了优化效率。而未采样空间优先原则是指:会优先避开使用起始化点之后的优化任务采样过的点所在的子空间,该原则可以降低在多次运行优化任务时,陷入次最优区域陷阱的概率。

相对于现有数据库优化时没有明确的参数配置算法,或规则配置算法效率较低,导致实际优化效率和质量不高的弊端,本发明通过最大基数原则和最优点中心算法大幅提升了参数优化的效率。

相对于现有数据库优化时无法记忆优化历史,会导致总是使用近似的参数配置重复优化的弊端,本发明通过记录优化历史和起始优化点特性,通过使用未采样空间优先原则,可以有效地多次运行优化任务,避免因实际情况违反最优点中心算法的假设而陷入次最优区域陷阱。

步骤S104,在目标子空间进行参数采样,得到多个参数样本。

步骤S106,评估每个参数样本的性能得分,以确定目标参数样本。

可选的,评估每个参数样本的性能得分,以确定目标参数样本的步骤,包括:确定预设数据库的待调整目标;基于预设数据库的待调整目标,采集预设数据库的多个性能目标数据;基于多个性能目标数据计算每个参数样本的性能得分;确定与最高性能得分对应的参数样本,并将该参数样本表征为目标参数样本。

在定义待调整目标时,使用公式为:y=ƒ(X

在计算性能得分时,根据阶段分为两种:根据操作模块在优化预备阶段返回的的性能目标数据计算初始性能得分;根据操作模块在优化阶段返回的性能目标数据计算参数样本的性能得分。

在评估每一轮的最优参数样本时,通过比较本轮所有样本的性能得分,获取本轮最优的参数样本。有且仅有两种情况:如果没有参数样本的性能得分超过该轮的起始参数样本,则发送重新运行信号,同时发送修改参数信号将参数修改为该轮的起始参数样本;如果有参数样本性能得分超过该轮的起始参数样本,则基于性能得分最高的参数样本将参数修改为性能得分最高的参数样本。

步骤S108,根据评估出的目标参数样本对预设数据库进行参数调整。

可选的,在根据评估出的目标参数样本对预设数据库进行参数调整之后,参数调整方法还包括:配置预设数据库的新一轮样本集大小;根据评估出的目标参数样本生成新一轮的有界参数空间;基于新一轮样本集大小和参数的最小步长,将新一轮的有界参数空间划分为多个新一轮子空间;采用最大基数原则和未采样空间优先原则从多个新一轮子空间中选择出新一轮目标子空间;在新一轮目标子空间进行参数采样,得到多个参数样本;评估每个参数样本的性能得分,以确定新一轮目标参数样本;根据评估出的新一轮目标参数样本对预设数据库进行参数调整。

在确定新一轮的有界参数空间时,包括:空间的确定采用最优点中心算法,即取以上一轮最优样本点为中心,不超过其他任何样本点的空间;假设参数为P

在本实施例中,根据评估出的目标参数样本生成新一轮的有界参数空间的步骤,包括:以目标参数样本为中心,采用最优点中心算法确定新一轮样本集的有界参数空间。最优点中心算法基于一个假设:在一个连续参数空间中,样本集里最优的样本点周围出现差不多或更优样本点的概率要大于其他样本点。

现有方案无法配置复杂明确的优化目标,能纳入考虑的优化目标也较少,导致优化目标不能适用于多变复杂的场景,本发明实现了优化目标的可复杂配置性和结果的明确性。

作为本实施例可选的实施方式,参数调整方法还包括:获取每轮样本集大小、调整轮数和每个参数样本的验证时长;基于每轮样本集大小、调整轮数和每个参数样本的验证时长,配置预设数据库的参数调整任务的资源上限。

本实施例中,在通过配置优化任务的资源上限时,包括:设置每轮样本集大小和优化轮数,每个样本验证的时间,优化任务的资源上限为每轮样本集大小×优化轮数×每个样本验证的时间。

在开始调整数据库的参数时,根据优化起始点的设置可以分为两种模式:全新起始点:将不会考虑之前的优化历史,重新开始优化。指定优化起始点:优化任务会参考起始优化点之后运行的优化任务。

在终止数据库的参数调整时,可以满足以下三个条件之一,则停止优化任务:1、达到资源上限后会发送完成信号;2、配置允许性能得分连续低于优化任务初始性能得分的最大样本个数,当满足该条件时,发送终止信号;3人工干预终止优化任务:可以手动停止优化任务,发送终止信号。

通过上述实施例,能够通过参数规则和参数空间算法保证了参数值的合法性和全面的覆盖率,通过最大基数原则和最优点中心算法大幅提升了参数优化的效率;通过记录优化历史和起始优化点特性,通过使用未采样空间优先原则,可以有效地多次运行优化任务,避免因实际情况违反最优点中心算法的假设而陷入次最优区域陷阱;通过配置通过资源上限和实时评估机制保障了参数优化的可控性、可恢复性和产生最终结果的确定性。

下面结合另一种可选的实施方式来说明本发明。

图2是根据本发明实施例的另一种可选的数据库的参数调整方法的示意图,如图2所示,该数据库的参数调整方法使用的功能模块包括:参数规则模块、参数配置模块、评估模块、操作模块、控制模块,每个模块的功能如下:

1.参数规则模块:

1.配置参数域:参与优化的参数不包括可能影响数据库非性能状态的参数,比如影响复制、影响权限的参数将不在参数域中。

2.定义参数的最小步长和映射关系:

a) 定义参数域中每一个参数取值的最小步长。

b)所有类型的数值都需要映射为数值类型,比如布尔类型的参数值将转换为0和1,最小步长为1,枚举类型需要对枚举值进行映射成整数。

3.定义参数的首轮取值范围规则,根据参数取值来源分为四类:

a)独立取值的参数:其取值范围不依赖于其他参数和资源限制;取值范围为参数的合法取值范围。

b)其取值范围只依赖于其他参数值的参数:取值范围为被依赖参数的函数: Y

c) 其取值范围只依赖于资源限制的参数;取值范围为被依赖资源的函数:Y

d)其取值范围依赖于其他参数值和资源限制的参数;取值范围为被依赖参数和资源的函数:Y

2.参数配置模块:

1.确定首轮参数空间:其空间根据参数规则模块中参数的取值范围规则来确定,为了后续能够正常使用最优中心点算法,首轮参数空间必须为凸集。假设X

2.划分子空间:根据控制模块中配置的每轮样本集大小和参数规则模块中的最小步长,将参数空间划分为子空间;每个参数将在参数空间中被平均分割为每轮样本集大小数量的段且每个段的区间长度不能小于参数规则模块中定义的最小步长。即子空间中参数P

3.选择子空间并进行参数采样:基于最大基数原则和未采样空间优先原则来选择子空间,并记录参数样本,子空间数量为每轮样本集大小。

a)最大基数原则为:不同样本的同一个参数都尽可能在不同的子空间,这样可以使得样本集有最大的覆盖面,同时减少优化任务的资源使用。该原则是基于一个假设,即对性能有重要影响的参数往往可以较为独立地影响性能,受其他参数的影响不大。该原则在保证参数覆盖率的同时,提高了优化效率。

b)未采样空间优先原则:会优先避开使用起始化点之后的优化任务采样过的点所在的子空间。该原则可以降低在多次运行优化任务时,陷入次最优区域陷阱的概率。

4.发送参数样本:将参数样本发送给操作模块,一次发送一个样本。

5.判断该轮运行情况:根据从评估模块接收的信号判断是否重新运行或进入下轮。

6.确定下一轮的有界参数空间:空间的确定采用最优点中心算法,即取以上一轮最优样本点为中心,不超过其他任何样本点的空间;假设参数为P

a)最优点中心算法基于一个假设:在一个连续参数空间中,样本集里最优的样本点周围出现差不多或更优样本点的概率要大于其他样本点。

3.评估模块:

1.定义优化目标:y=ƒ(X

a)反应数据库业务处理能力的指标:比如QPS,吞吐量、平均延迟等;

b)反应数据库对资源使用程度的指标;比如CPU使用率,内存占用等,IOPS等;

c) 优化范围:实例、模式等;

比如优化目标定义为:y=(X

2.计算性能得分,根据阶段分为两种:

a) 根据操作模块在优化预备阶段返回的的性能目标数据计算初始性能得分;

b)根据操作模块在优化阶段返回的性能目标数据计算参数样本的性能得分。

3. 评估每一轮的最优参数样本:该轮结束时,通过比较本轮所有样本的性能得分,获取本轮最优的参数样本。有且仅有两种情况:

a)如果没有参数样本的性能得分超过该轮的起始参数样本,则发送重新运行信号给参数配置模块,同时发送修改参数信号给操作模块使其将参数修改为该轮的起始参数样本;

b) 如果有参数样本性能得分超过该轮的起始参数样本,则将性能得分最高的参数样本发送给参数配置模块,同时发送修改参数信号给操作模块使其将参数修改为性能得分最高的参数样本。

4.评估整个优化任务的最优参数样本并发送给操作模块:在以下两种情况会将整个优化任务的最优参数样本发送给操作模块:

a) 收到控制模块的完成信号;

b)收到控制模块的终止信号。

4.操作模块:

1.采集初始参数样本:根据参数规则模块的配置在预备阶段采集数据库的参数作为优化任务的初始参数样本;

2. 采集性能目标:根据评估模块定义的优化目标,在预备阶段和优化阶段采集性能目标。

3. 参数修改:其参数来源有两个:

a)根据参数配置模块生成的参数样本对数据库做参数修改;

b)根据评估模块评估的最优参数样本对数据库做参数修改。

5.控制模块:

1.配置优化任务的资源上限:设置每轮样本集大小和优化轮数,每个样本验证的时间,优化任务的资源上限为每轮样本集大小 × 优化轮数 × 每个样本验证的时间;

2.开始优化:根据优化起始点的设置可以分为两种模式:

a) 全新起始点:将不会考虑之前的优化历史,重新开始优化。

b)指定优化起始点:优化任务会参考起始优化点之后运行的优化任务。

3.终止优化:满足以下三个条件之一,则停止优化任务:

a) 达到资源上限后会发送完成信号给评估模块;

b)配置允许性能得分连续低于优化任务初始性能得分的最大样本个数,当满足该条件时,发送终止信号给评估模块;

c) 人工干预终止优化任务:可以手动停止优化任务,将发送终止信号给评估模块。

优化任务的流程分为两个大步骤,先做基础配置,然后运行优化任务:

基础配置流程:

1. 在参数规则模块配置参数域、最小步长、映射关系、取值范围规则。

2.在评估模块定义优化目标;

3. 在控制模块配置优化任务的资源上线。

优化任务流程:

步骤1,优化任务开始后,进入优化预备阶段,操作模块采集初始性能目标、初始参数样本,评估模块根据优化目标计算初始性能得分;

步骤2,进入优化阶段,参数配置模块根据配置的参数规则生成首轮参数空间和子空间;

步骤3,选择子空间并进行参数采样,将参数样本发送给操作模块;

步骤4,操作模块做出参数修改后,会将采集的性能目标发送给评估模块计算性能得分;

步骤5,重复3-4的步骤,如果该轮已评估的样本数达到控制模块的每轮样本集大小,则转到步骤6;如果满足控制模块中终止优化的条件,则终止优化,跳转到步骤8;

步骤6,评估这一轮的最优参数样本,如果比起初始参数样本,没有更优的参数样本,则回到步骤3,如果有更优的参数样本,则转到步骤7;

步骤7,根据更优的参数样本生成新一轮的有界参数空间;然后转到步骤3;

步骤8,控制模块发送完成信号或者终止信号给评估模块,评估模块会将整个优化任务的已出现的最优参数样本发送给操作模块来做出最终的参数修改。

通过上述实施方式,可以利用预先配置的参数规则和生成的参数空间,优化调整数据库的参数值,实现参数的全面覆盖,能够应用不同类型、多样业务特征的数据库,使用未采样空间优先原则,可以有效地多次运行优化任务,避免因实际情况违反最优点中心算法的假设而陷入次最优区域陷阱,同时还可以保障参数优化的可控性、可恢复性和产生最终结果的确定性。

下面结合另一种可选的实施例来说明本发明。

实施例二

本实施例提供了一种数据库的参数调整装置,该装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。

图3是根据本发明实施例的一种可选的数据库的参数调整装置的示意图,如图3所示,该参数调整装置可以包括:生成单元31、采样单元33、评估单元35、调整单元37,其中,

生成单元31,用于基于预设数据库的参数调整规则生成参数空间,其中,参数空间可被划分为多个子空间,多个子空间中至少包括目标子空间;

采样单元33,用于在目标子空间进行参数采样,得到多个参数样本;

评估单元35,用于评估每个参数样本的性能得分,以确定目标参数样本;

调整单元37,用于根据评估出的目标参数样本对预设数据库进行参数调整。

上述数据库的参数调整装置,可以通过生成单元31基于预设数据库的参数调整规则生成参数空间,其中,参数空间可被划分为多个子空间,多个子空间中至少包括目标子空间,通过采样单元33在目标子空间进行参数采样,得到多个参数样本,通过评估单元35评估每个参数样本的性能得分,以确定目标参数样本,通过调整单元37根据评估出的目标参数样本对预设数据库进行参数调整。在该实施例,可以自动化配置参数调整规则,并对数据库的参数进行自动化调整,不仅提高了数据库参数优化的效率,而且保证了参数值的合法性和全面的覆盖率,从而解决相关技术中采用手工方式对数据库进行参数调优,效率较低的技术问题。

可选的,数据库的参数调整装置还包括:第一配置单元,用于在基于预设数据库的参数调整规则生成参数空间之前,配置参与调整预设数据库的参数的参数域,其中,参数域中不包括影响预设数据库非性能状态的参数;第二配置单元,用于配置参与调整预设数据库的参数的最小步长和映射关系;第三配置单元,用于基于参数取值的来源类型,配置预设数据库的参数的取值范围规则。

可选的,第三配置单元包括:第一配置模块,用于在参数取值的来源类型为独立取值参数,配置预设数据库的参数的取值范围为合法取值范围;第二配置模块,用于在参数取值的来源类型为仅依赖其他参数值的参数,配置预设数据库的参数的取值范围为被依赖参数的函数;第三配置模块,用于在参数取值的来源类型为仅依赖于资源限制的参数,配置预设数据库的参数的取值范围为被依赖资源的函数;第四配置模块,用于在参数取值的来源类型为依赖于其他参数值和资源限制的参数,配置预设数据库的参数的取值范围为被依赖参数和资源的函数。

可选的,生成单元包括:第一生成模块,用于基于预设数据库的参数的取值范围规则,采用最优中心点算法生成参数空间。

可选的,数据库的参数调整装置还包括:第一划分单元,用于在基于预设数据库的参数调整规则生成参数空间之后,根据预先配置的样本集大小和参数的最小步长,将参数空间划分为多个子空间,其中,每个参数在参数空间中被平均分割为每轮样本集大小数量的参数段,且每个参数段的区间长度大于等于参数的最小步长;选择单元,用于采用最大基数原则和未采样空间优先原则从多个子空间中选择出目标子空间,其中,最大基数原则是指不同参数样本的同一个参数分布在不同的子空间。

可选的,评估单元包括:第一确定模块,用于确定预设数据库的待调整目标;第一采集模块,用于基于预设数据库的待调整目标,采集预设数据库的多个性能目标数据;第一计算模块,用于基于多个性能目标数据计算每个参数样本的性能得分;第二确定模块,用于确定与最高性能得分对应的参数样本,并将该参数样本表征为目标参数样本。

可选的,数据库的参数调整装置还包括:第四配置单元,用于在根据评估出的目标参数样本对预设数据库进行参数调整之后,配置预设数据库的新一轮样本集大小;第二生成模块,用于根据评估出的目标参数样本生成新一轮的有界参数空间;第二划分单元,用于基于新一轮样本集大小和参数的最小步长,将新一轮的有界参数空间划分为多个新一轮子空间;选择模块,用于采用最大基数原则和未采样空间优先原则从多个新一轮子空间中选择出新一轮目标子空间;采样模块,用于在新一轮目标子空间进行参数采样,得到多个参数样本;评估模块,用于评估每个参数样本的性能得分,以确定新一轮目标参数样本;调整模块,用于根据评估出的新一轮目标参数样本对预设数据库进行参数调整。

可选的,第二生成模块包括:第三确定模块,用于以目标参数样本为中心,采用最优点中心算法确定新一轮样本集的有界参数空间。

可选的,数据库的参数调整装置还包括:获取单元,用于获取每轮样本集大小、调整轮数和每个参数样本的验证时长;第五配置单元,用于基于每轮样本集大小、调整轮数和每个参数样本的验证时长,配置预设数据库的参数调整任务的资源上限。

上述的数据库的参数调整装置还可以包括处理器和存储器,上述生成单元31、采样单元33、评估单元35、调整单元37等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来根据评估出的目标参数样本对预设数据库进行参数调整。

上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的数据库的参数调整方法。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的数据库的参数调整方法。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:基于预设数据库的参数调整规则生成参数空间,其中,参数空间可被划分为多个子空间,多个子空间中至少包括目标子空间;在目标子空间进行参数采样,得到多个参数样本;评估每个参数样本的性能得分,以确定目标参数样本;根据评估出的目标参数样本对预设数据库进行参数调整。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 数据库的参数调整方法及参数调整装置、电子设备
  • 参数调整方法、病灶预测方法、参数调整装置及电子设备
技术分类

06120113284138