CN113872788A - 数据库配置参数调整方法、设备及存储介质 - Google Patents
数据库配置参数调整方法、设备及存储介质 Download PDFInfo
- Publication number
- CN113872788A CN113872788A CN202010618107.8A CN202010618107A CN113872788A CN 113872788 A CN113872788 A CN 113872788A CN 202010618107 A CN202010618107 A CN 202010618107A CN 113872788 A CN113872788 A CN 113872788A
- Authority
- CN
- China
- Prior art keywords
- database
- parameters
- parameter
- current
- state
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000012512 characterization method Methods 0.000 claims abstract description 77
- 230000002787 reinforcement Effects 0.000 claims abstract description 39
- 239000013598 vector Substances 0.000 claims description 82
- 230000009471 action Effects 0.000 claims description 67
- 238000011156 evaluation Methods 0.000 claims description 55
- 238000005457 optimization Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 30
- 238000003062 neural network model Methods 0.000 claims description 14
- 238000004088 simulation Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000005070 sampling Methods 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000009530 blood pressure measurement Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000000306 recurrent effect Effects 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006854 communication Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例涉及数据库配置参数调整方法、设备及存储介质。本申请实施例包括获取来自数据库服务器的数据库状态混合表征参数;将所述数据库状态混合表征参数输入到深度强化学习模型中生成目标数据库配置参数;将所述目标数据库配置参数发送至数据库服务器。本申请实施例能够利用深度强化学习模型将来自数据库服务器的数据库状态混合表征参数进行处理后生成数据库配置参数,并将生成的数据库配置参数发送到数据库服务器进行配置,从而克服了数据库配置自动化程度低、速度慢、效率低的问题,有效提高了数据库配置的自动化程度、速度和效率。
Description
技术领域
本申请实施例涉及但不限于数据库技术领域,尤其涉及一种数据库配置参数调整方法、设备及存储介质。
背景技术
数据库是长期储存在计算机内、有组织的、可共享的数据集合。随着科学技术的发展,用于用户信息连接的数据量急剧增长,数据库作为信息技术存储服务的基础支撑,其应用将更加广泛,数据库的广泛应用随之而来的是数据库的优化问题。
目前,大规模数据库的优化一般依赖于数据库管理员,但是数据库的差异化配置对于数据库管理员而言是一个繁杂、重复、耗时费力的挑战,而经验不同的数据库管理员对数据库的配置参数质量也大相径庭,从而使数据库配置参数的调整存在自动化程度低、速度慢、效率低的问题。
发明内容
本申请实施例提供了数据库配置参数调整方法、设备及存储介质,能够快速、高效率地对数据库配置参数进行调整,以便使数据库配置参数得到优化。
第一方面,本申请实施例提供了一种数据库配置参数调整方法,应用于数据库调优模块,包括:获取来自数据库服务器的数据库状态混合表征参数;将所述数据库状态混合表征参数输入到深度强化学习模型中生成目标数据库配置参数;将所述目标数据库配置参数发送至数据库服务器。
第二方面,本申请实施例提供了一种数据库配置参数调整方法,应用于数据库服务器,包括:发送数据库状态混合表征参数给数据库调优模块,以使数据库调优模块执行如第一方面所述的方法;接收来自所述数据库调优模块发送的目标数据库配置参数;根据所述数据库配置参数对数据库服务器进行参数配置。
第三方面,本申请实施例提供了一种电子设备,包括:至少一个处理器,以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述指令时实现如第一方面所述的方法或如第二方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面所述的方法或第二方面所述的方法。
本申请实施例包括:获取来自数据库服务器的数据库状态混合表征参数;将所述数据库状态混合表征参数输入到深度强化学习模型中生成目标数据库配置参数;将所述目标数据库配置参数发送至数据库服务器。本申请实施例能够利用深度强化学习模型将获取到的数据库状态混合表征参数进行处理后生成目标数据库配置参数,并将生成的数据库配置参数发送到数据库服务器进行配置,从而克服了数据库配置自动化程度低、速度慢、效率低的问题,有效提高了数据库配置的自动化程度、速度和效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是本发明实施例提供的数据库配置参数调整方法的流程图;
图2是本申请实施例提供的数据库配置参数调整示意图;
图3是本发明另一实施例提供的数据库配置参数调整方法的流程图;
图4是本申请实施例提供的数据库配置参数调整中混合表征模块示意图;
图5是本申请另一实施例提供的数据库配置参数调整模块示意图;
图6是本申请另一实施例提供的数据库配置参数调整模块中奖励函数模块示意图;
图7是本发明实施例提供的数据库配置参数自调优模块示意图;
图8是本发明另一实施例提供的数据库配置参数调整方法的流程图;
图9是本发明另一实施例提供的数据库配置参数自调优原理流程图;
图10是本发明另一实施例提供的数据库配置参数调整方法的流程图;
图11是本发明另一实施例提供的数据库配置参数调整方法的流程图;
图12是本发明实施例提供的数据库配置参数调整方法应用场景图;
图13(a)、13(b)是本发明另一实施例提供的数据库配置参数调整方法整体流程图;
图14是本发明另一实施例提供的数据库配置参数调整方法应用场景图;
图15是本发明一实施例提供的数据库配置参数调整电子设备示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
数据库是长期储存在计算机内、有组织的、可共享的数据集合。随着科学技术的发展,用于用户信息连接的数据量急剧增长,数据库作为信息技术存储服务的基础支撑,其应用将更加广泛,数据库的广泛应用随之而来的是数据库的优化问题。
目前,大规模数据库的优化一般依赖于数据库管理员,但是数据库的差异化配置对于数据库管理员而言是一个繁杂、重复、耗时费力的挑战,而经验不同的数据库管理员对数据库的配置参数质量也大相径庭,从而使数据库配置参数的调整存在自动化程度低、速度慢、效率低的情况。
基于此,本申请实施例提出了一种数据库配置参数调整方法、设备及存储介质,本申请实施例能够利用深度强化学习模型将获取到的数据库状态混合表征参数进行处理后生成目标数据库配置参数,并将生成的数据库配置参数发送到数据库服务器进行配置,从而克服了数据库配置自动化程度低、速度慢、效率低的问题,有效提高了数据库配置的自动化程度、速度和效率。
需要说明的是,下列多种实施例中,电子设备可以是平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及个人数字助理(personal digital assistant,PDA)、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备等包括上述折叠屏的设备,本申请实施例对该电子设备的具体形态不作特殊限制。
第一方面,本申请实施例提供了一种数据库配置参数调整方法,应用于数据库调优模块。
在一些实施例中,参照图1,数据库配置参数调整方法包括:
步骤S1100,获取来自数据库服务器的数据库状态混合表征参数;
步骤S1200,将数据库状态混合表征参数输入到深度强化学习模型中生成目标数据库配置参数;
步骤S1300,将目标数据库配置参数发送至数据库服务器。
在一些实施例中,步骤S1100中的数据库状态混合表征参数可以是数据库的状态参数或者配置参数等,通过数据库的这些状态混合表征参数可以了解到数据库的性能,比如数据库状态参数中的数据库性能参数等,而数据库配置参数的好坏直接影响到数据库的查询和响应速度。
在一些实施例中,步骤S1200中,将上述的数据库状态混合表征参数输入到深度强化学习模型进行训练后会生成目标数据库的配置参数,这些配置参数会对数据库的优化起到重要作用。
可以理解的,机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为。以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习分为监督学习、无监督学习和强化学习,其中监督学习是计算机获得简单的输入给出期望的输出,过程是通过一个“训练模型”,学习通用的准则来从输入映射到输出;无监督学习是没有给出标记用来学习算法,让它自己去发现输入的结构,无监督学习自己可以被当成一个目标或者一个实现结果的途径,也可以叫做特征学习;强化学习是一个计算机程序与动环境交互,同时表现出确切目标,比如驾驶一辆交通工具或者玩一个游戏对抗一个对手,这个程序的奖惩机制会作为反馈,实现它在问题领域中的导航。
其中,深度强化学习模型是深度学习模型和强化学习模型相结合形成的深度强化学习模型,本实施例中深度学习模型为循环神经网络模型,循环神经网络模型以下简称为RNN(Recurrent Neural Network)是深度学习算法之一,RNN是一类以序列数据为输入,在序列的演进方向进行递归且所有节点即循环单元按链式连接的递归神经网络,使得RNN能捕捉到各个输出参数的相关性,可以综合数据库状态混合表征参数并进行处理。强化学习模型属于上述强化学习,将深度学习和强化学习结合形成深度强化学习,克服了传统强化学习算法无法处理高维状态空间的问题,结合强化学习与深度学习,实现了从感知到动作的端对端学习的一种全新的算法,使特征变得简单,实现无监督学习。同时智能体在自我学习的过程中可以发现特征之间的内在联系。因此深度强化学习具备了使智能体实现完全自主的学习的一种甚至多种技能的潜力,应用在本实施例中能够提供高维度参数处理的能力,并且通过自主学习不断优化模型参数。
本实施例将步骤S1100中获取到的数据库状态混合表征参数输入到深度强化学习模型中生成数据库配置参数,可以达到更快的收敛速度,提高配置参数生成的速度,提高配置效率。
在一些实施例中,步骤S1300中的数据库服务器由运行在局域网中的一台或多台计算机和数据库管理***软件共同构成,数据库服务器可以为客户的应用程序提供数据服务,将步骤S1200中生成的目标数据库配置参数发送给数据库服务器,可以使数据库服务器得到优化,从而提高数据库服务器中数据库性能的提高。
本实施例能够利用深度强化学习模型将获取到的数据库状态混合表征参数进行处理后生成目标数据库配置参数,并将生成的数据库配置参数发送到数据库服务器进行配置,从而克服了数据库配置速度慢、效率低的问题,有效提高了数据库配置的速度和效率。在一些实施例中,数据库状态表混合征参数包括以下的一种或多种:数据库性能参数、当前数据库配置参数、硬件资源参数、硬件资源状态参数。
在一些实施例中,数据库性能参数包括但不限于吞吐量、查询时延、自动VACUUM次数,其中,吞吐量是指对网络、设备、端口、虚电路或其他设施单位时间内成功传送数据的数量,数据的数量以比特、字节、分组等测量,吞吐量的大小直接影响到数据库数据写入、数据读出以及数据库访问的响应速度;其中查询时延是数据库从开始查询到数据库作出响应之间的延时,数据库查询时延的大小直接影响到数据库的访问响应速度;其中,自动VACUUM的主要作用是把空闲页移到数据库末尾,从而减小数据库大小,自动VACUUM可以使数据库占用空间更小。
其中,硬件资源参数包括但不限于CPU的数量、内存容量大小、存储空间大小等参数,CPU(Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据其中内存主要作用是记忆与加载功能,内存容量可以理解为内存条的存储容量,一般内存容量以MB作为单位,内存容量越大越有利于硬件***的运行。例如,计算机的内存容量通常是指随机存储器(RAM)的容量。内存的容量一般都是2的整次方倍,比如64MB、128MB、256MB等,内存容量越大越有利于硬件***或者计算机***的运行。
其中,硬件资源状态参数包括但不限于CPU利用率、内存利用率、存储利用率等参数。其中,CPU利用率是运行进程占用的CPU的百分比,CPU利用率的大小直接影响到CPU的使用寿命,CPU利用率过高会导致CPU内部老化,从而减小了CPU的使用寿命;内存占用率指运行进程所占用的内存,内存的利用率过高会使CPU的访问速度变慢,影响整个硬件资源的性能。
在一些实施例中,参照图2,深度强化学习模型包括混合表征模块和自调优模块,混合表征模块连接自调优模块,其中混合表征模块使用的为RNN模型,自调优模块使用的为强化学习模型。
自调优模块通过控制接口将数据库配置参数传输给服务器的控制接口,服务器通过控制压测装置输出工作负载压力信号给目标数据库(如数据库服务器)加压;参数采集模块对目标数据库中的硬件资源状态参数、数据库性能参数进行采集,结合服务器自身的硬件资源参数,将上述参数通过服务器的控制接口传送给数据库调优模块中的混合表征模块进行混合表征,输出数据库状态混合表征向量输送给自调优模块,自调优模块通过强化学习中的当前动作网络完成与数据库的交互,从而把自调优模块生成的配置参数传输给目标数据库。
本实施例能够实现通过RNN模型和强化学习模型形成的深度强化学习模型,再结合数据库状态混合表征参数,获得数据库的配置参数,从而提高了数据库配置参数的生成速度,提高了数据库配置的效率。
参照图3,步骤S1200具体包括:
步骤S1210,将数据库状态混合表征参数输入到混合表征模块;
步骤S1220,混合表征模块利用RNN模型对数据库状态混合表征参数处理,得到数据库状态混合表征向量;
步骤S1230,将数据库状态混合表征向量输入到自调优模块,自调优模块利用加强学习模型对数据库状态混合表征向量处理得到目标数据库配置参数。
在一些实施例中,步骤S1210中将上述数据库状态混合表征参数输入到混合表征模块的目的是为了得到数据库状态混合表征的向量,混合表征即各种特征相互融合,输入到混合表征模块中。
本实施例中使用了上述参数的混合表征,能够保证数据库状态表征的完备性和准确性。
在一些实施例中,步骤S1220中混合表征模块中使用的是神经网络模型对上述数据库状态混合表征参数的特征进行处理,得到一个数据库状态混合表征向量,更为具体的是,使用的神经网络模型为循环神经网络模型即RNN,RNN是指一个随着时间的推移,重复发生的结构;一个典型的RNN网络包含一个输入,一个输出和一个神经网络单元,其中RNN网络的神经网络单元不仅仅与输入和输出存在联系,其与自身也存在一个回路也即上一个时刻的网络状态信息将会作用于下一个时刻的网络状态。RNN能够提高模型的收敛速度,从而提高了数据库配置参数的生成速度,使数据库配置更加高效。
在一些实施例中,数据库状态混合表征参数包括数据库性能参数、当前数据库配置参数、硬件资源参数、硬件资源状态参数,上述步骤S1220包括:
步骤S1221,获取当前数据库性能参数和前次数据库性能参数;以及,获取当前数据库配置参数和前次数据库配置参数;以及,获取当前硬件资源状态参数和前次硬件资源状态参数;以及,获取硬件资源参数;
步骤S1222,根据当前数据库性能参数获得当前数据库性能参数特征向量;根据前次数据库性能参数获得前次数据库性能参数特征向量;根据当前数据库配置参数获得当前数据库配置参数特征向量;根据前次数据库配置参数获得前次数据库配置参数特征向量;根据当前硬件资源状态参数获得当前硬件资源状态参数特征向量;根据前次硬件资源状态参数获得前次所述硬件资源状态参数特征向量;根据硬件资源参数获得硬件资源参数特征向量;
步骤S1223,根据当前数据库性能参数特征向量和前次数据库性能参数特征向量,计算得到数据库性能参数差值特征向量;根据当前数据库配置参数特征向量和前次数据库配置参数特征向量,计算得到数据库配置参数差值特征向量;根据当前硬件资源状态参数特征向量和前次硬件资源状态参数特征向量,计算得到硬件资源状态参数差值特征向量;步骤S1224,将数据库性能参数特征向量、数据库性能参数差值特征向量、数据库配置参数特征向量、数据库配置参数差值特征向量、硬件资源状态参数特征向量、硬件资源状态参数差值特征向量、硬件资源参数特征向量输入到神经网络模型中,利用神经网络模型输出数据库状态混合表征向量。
在一些实施例中,步骤S1222中将步骤S1221获取到的参数特征,输入到混合表征模块后,进行预处理编码,预处理的过程是将获取到的当前数据库性能参数和前次数据库性能参数;以及,当前数据库配置参数和前次数据库配置参数;以及,当前硬件资源状态参数和前次硬件资源状态参数;以及,获取硬件资源参数进行向量化处理,并且通过步骤S1223获得参数差值向量,通过参数的向量以及相应的参数差值向量,进行神经网络模型训练之后输出数据库状态混合表征向量。
在一些实施例中,参照图4,图中历史记录为前次数据库性能参数、前次数据库配置参数、前次数据库硬件资源状态参数,通过结合当前数据库性能参数、当前数据库配置参数、当前数据库硬件资源状态参数,进行预处理之后形成数据库状态混合表征向量传输给自调优模块,同时,将当前数据库性能参数、当前数据库硬件资源状态参数、前次数据库性能参数、前次数据库硬件资源状态参数以及前次数据库配置数据库输入到样本池,作为样本存储。
本实施例能够实现自调优模块中数据库状态混合表征向量的生成以及实现样本池中参数的生成,为优化数据库调优模块的提供参数基础。
在一些实施例中,步骤S1224中存在数据库性能参数特征向量、数据库性能参数差值向量、数据库配置参数特征向量、数据库配置参数差值向量、硬件资源状态参数特征向量、硬件资源状态参数差值向量、硬件资源参数向量这七个向量输入到神经网络模型中,利用神经网络模型输出数据库状态混合表征向量。这七个特征向量具有相关性,采用循环神经网络RNN对其进行关系提取并进行编码降维,实现数据库状态混合表征,这样提高了数据库表征向量对数据库及其硬件资源环境状态表征的全面性和准确性,提高了数据库配置参数调整的有效性和高效性。
本实施例中以硬件资源参数为CPU为4核、内存为32G、存储为256G的数据库服务器为例说明本实施例的核心思想。其中,内存为运行内存,也可以叫做RAM,关机后数据就会不存在。内存的大小决定了机器的运行速度;存储为256G代表CPU的存储能力,能够存储256G大小的数据。假设数据库相关的采集数据,以10个维度的向量特征为例,则数据库硬件资源参数特征向量为[4,32,256,0,0,0,0,0,0,0],其中,4代表CPU未4核,32代表内存大小是32G,256代表存储大小为256G,向量后面缺失的维度以补0处理,即后面补充7个0作为补充维度。
本实施例中的当前硬件资源状态参数特征向量为[0.6,0.58,0.3,0,0,0,0,0,0,0],其中,0.6代表CPU的利用率,0.58代表内存利用率,0.3代表存储利用率,同样,后面7个0代表缺失的维度;前次的硬件资源状态参数特征向量为[0.4,0.48,0.5,0,0,0,0,0,0,0],则硬件资源状态参数差值向量为,当前硬件资源状态参数特征向量减去前次硬件资源状态参数特征向量,则硬件资源状态参数差值向量为[0.2,0.10,-0.2,0,0,0,0,0,0,0];
本实施例中的当前配置参数特征向量为[542,730,9,7,55,23,99,10,67,86],其中542代表数据库配置参数中的temp_buffers,即临时缓冲区大小,用于数据库会话访问临时表数据,730代表work_mem,写入临时文件之前内部排序操作和散列表使用的内存大小,9代表max_wal_size,在自动WAL检查点使得WAL增长到最大尺寸等相关配置参数向量,若前次配置参数特征向量为[372,650,3,4,32,21,76,13,67,56],则数据库配置参数差值向量为当前的当前配置参数特征向量与前次当前配置参数特征向量之间的差值向量,即[170,80,6,3,23,2,23,-3,0,30]。
本实施例中当前数据库性能参数特征向量为[1154.5,8.5,515,9325.0,854.8,0.0,91,1.0,6.7,8.6],其中,1154.5代表n_tup_ins状态参数,8.5代表buffers_alloc配置参数,515代表xact_commit配置参数,9325.0代表n_dead_tup状态参数等。则性能数据库性能参数差值向量为[104.0,3.0,15,2.0,-122.1,0,23,0.2,1.4,1.0]。
本实施例中利用了数据库性能参数、数据库配置参数、硬件资源参数、当前值以及当前值与前次值之间的差值进行混合表征,其中,前次值可以理解为历史值,可以理解的,在进行数据库配置参数调优过程中不会只观察当前的数据库性能参数,而是经过一次数据库配置参数调整之后观察数据库性能参数的变化情况,而数据库性能参数的变化又是由数据库配置参数的变化量所决定的,而当前的数据库性能参数总体又是由硬件资源参数所决定的,将数据库管理员的人工调整过程进行抽象化就是利用硬件资源参数、数据库性能参数、数据库配置参数的当前值和前次值或者历史值对数据库的状态进行混合表征,并且RNN可以捕捉各参数间的关系从而可以实时、准确作出数据库配置参数的调整。
在一些实施例中,参照图5,深度强化学习模型还包括数据库配置参数奖励函数模块;
具体的,步骤S1200还包括:
S1240,将数据库状态混合表征参数分别输入到混合表征模块和数据库配置参数奖励函数模块,生成奖励策略;
S1250,将奖励策略存储到样本池中;
S1260,对样本池采样获得采样数据;
S1270,利用采样数据,对自调优模块进行优化。
可以理解的,S1240中数据库状态混合表征参数包括数据库性能参数、当前数据库配置参数、硬件资源参数、硬件资源状态参数,其中,数据库配置参数是数据库运行过程中所配置的参数,该参数会影响数据库的性能参数和数据库硬件状态参数,在强化学习中通常称为动作a;其中数据库的性能参数,其中性能参数包括但不限于数据库的吞吐量、时延的性能指标,数据库硬件状态参数包括但不限于CPU利用率、内存利用率、存储利用率等指标。数据库配置参数奖励函数模块中的数据库配置参数奖励函数主要用于评价当前数据库配置参数的好坏,例如数据库的吞吐量、时延是否满足业务需求,在强化学习中通常称为奖励r。
其中,的数据库性能参数和硬件资源状态参数可以统称为数据库状态参数,在强化学习中称为状态s,可以理解的,数据库状态参数和数据库配置参数是成对出现的,即一组数据库配置参数对应着一组数据库状态参数,数据库状态参数包括但不限于数据库性能参数、当前配置参数、硬件资源状态参数,其中硬件资源状态参数包括CPU利用率和/或内存利用率,在强化学习中通常称为状态s。
在一些实施例中,步骤S1240中的数据库配置参数奖励函数模块用于生成当前数据库配置参数的奖励值r,混合表征模块用于输出数据库配置参数、数据库性能参数和硬件资源状态参数,其中的数据库性能参数和硬件资源状态参数可以结合看作是数据库状态参数,当前的数据库状态参数表示为s_,前次的数据库状态参数表示为s,当前数据库配置参数表示为a,结合混合表征模块和数据库配置参数奖励函数模块共同输出(s,a,r,s_)的样本,再执行步骤S1250将奖励策略放在样本池。
在一些实施例中,上述步骤S1240包括:
S1241,将当前数据库性能参数与前次数据库性能参数差值、当前硬件资源状态参数与前次硬件资源状态参数差值归一化处理后输出当前数据库配置参数的奖励值;
其中,归一化处理为,计算当前数据库性能参数与前次数据库性能参数差值在前次数据库性能参数中的占比;以及,当前硬件资源状态参数与前次硬件资源状态参数差值在前次硬件资源状态参数的占比,并对占比乘以相应的加权值求和后输出当前数据库配置参数的奖励值;
S1242,根据当前数据库配置参数的奖励值、当前数据库配置参数、当前数据库性能参数、当前硬件资源状态参数、前次数据库性能参数、前次硬件资源状态参数,生成奖励策略。
在一些实施例中,步骤S1241中的归一化是把数变为0到1之间的小数,本实施例中的归一化是通过计算当前数据库性能参数和前次数据库性能参数,以及,当前硬件资源状态参数与前次硬件资源状态参数之间的差值,并且分别通过当前数据库性能参数和前次数据库性能参数与当前数据库性能参数的占比,以及,当前硬件资源状态参数与前次硬件资源状态参数差值在前次硬件资源状态参数的占比,并且对上述占比乘以相应的加权值求和,输出当前数据库配置参数的奖励值;具体公式如下:
r=(当前数据库性能参数和前次数据库性能参数差值/前次数据库性能参数)*α+(当前硬件资源状态参数与前次硬件资源状态参数差值/前次硬件资源状态参数)*β;
其中,α,β为加权值,r为对上述数据库性能参数和硬件资源状态参数归一化处理后的归一化值,在本实施例中代表当前数据库配置参数的奖励值。
在一些实施例中,参照图6,步骤S1241中的硬件资源状态参数包括CPU利用率和内存利用率,利用步骤S1241中的归一化方法处理过程中,可以根据数据库配置参数调整过程中对数据库性能参数、CPU利用率和内存利用率的侧重程度不同,进行通过设置加权值的大小,进行具体的归一化处理,具体的归一化公式为:
Δperfor=cur_perfor-hist_perfor;
Δcpu_rate=cur_cpu_rate-hist_cpu_rate;
Δmen_rate=cur_men_rate-hist_men_rate;
其中,α、β、γ为加权值,r为当前数据库配置参数的奖励值,cur_perfor为当前数据库性能参数,hist_perfor为前次或者历史数据库性能参数,cur_cpu_rate为当前CPU利用率,hist_cpu_rate为前次或者历史CPU利用率,cur_men_rate为当前内存利用率,hist_men_rate为前次或者历史内存利用率,△perfor为当前数据库性能参数和前次或者历史数据库性能参数的差值,△cpu_rate为当前CPU利用率和前次或者历史CPU利用率的差值,△men_rate为当前内存利用率和前次或者历史内存利用率的差值。
可以理解的,可以通过设置加权值的大小来调整在数据库配置参数调整过程中对数据库性能参数、CPU利用率和内存利用率的侧重程度不同,例如侧重于对数据库性能参数的优化,那么性能参数分量权值α可以设置为较大值,如果侧重于对CPU利用率的优化,则β可以设置为较大值,同理如果数据库优化侧重于内存利用率的优化,则将γ设置为较大值,对上述各个分量归一化是为了解决三个参数量纲和变化程度不同的问题。
例如,本是实施例中对数据库的优化比较侧重于数据库性能参数,则综合实验考虑之后设定其中的加权值α为0.8,β为0.1,γ为0.1,cur_perfor=8550tps,hist_perfor=6800tps,cur_cpu_rate=85%,hist_cpu_rate=56%,cur_men_rate=72%,hist_men_rate=63%,则根据上述归一化处理后,r为0.2647,则此处的0.2647就是奖励输出,也即是当前数据库配置参数的奖励值。
本实施例中当前数据库配置参数的奖励值的生成是结合数据库性能参数、CPU利用率和内存利用率参数的当前值和前次值或历史值来计算,可以理解的,在对数据配置参数优化过程中关注的不是当前数据库性能的绝对值,更多的是关注在对数据库配置参数进行调整之后数据库性能参数、CPU利用率和内存利用率的变化量,其中的参数历史值可以是历史最大值或者数据库默认配置时对应采集值或者是滑动窗口内记录的均值。在计算奖励过程中首先对上述数据库性能参数、CPU利用率和内存利用率三个参数分别求差值,然后对三个差值进行归一化,最后加权求和作为奖励输出。
在一些实施例中,参照图7,为自调优模块原理图,模块内包括当前动作网络、当前评价网络、目标动作网络、目标评价网络,其中当前动作网络主要利用当前状态生成下次动作,当前评价网络用于对当前状态和下次动作进行评估,目标动作网络用于利用下次状态生成下次动作,并且利用目标评价网络对下次动作和下次状态进行评估。其中,当前状态参数表示为states,当前动作表示为actions,下次状态表示为next_states,下次动作表示为next_states,通过当前动作网络、当前评价网络、目标动作网络、目标评价网络之间的相互作用,在当前评价网络和目标评价网络之间会通过损失函数有机地建立联系。
在一些实施例中,参照图7和图8,自调优模块包括:当前动作网络、当前评价网络、目标动作网络、目标评价网络;当前动作网络用于根据数据库状态混合表征参数生成目标数据库配置参数并发送到数据库服务器;采样数据包括当前数据库配置参数、当前数据库状态参数、下次数据库状态参数、当前数据库配置参数的奖励值;步骤S1270中的采样数据包括当前数据库配置参数、当前数据库状态参数、下次数据库状态参数,其中数据库状态参数包括数据库性能参数和数据库硬件资源状态参数,上述步骤S1270包括:
步骤S1271:将当前数据库状态参数输入到当前动作网络中,并生成下次数据库配置参数;
其中,当前数据库状态参数可以表示为states,下次数据库配置参数可以表示为next_actions,可以理解的,当前动作网络还用于通过处理当前数据库状态参数和混合表征向量输出目的数据库配置参数。
步骤S1272:将下次数据库配置参数和当前数据库状态参数输入到当前评价网络,以确定第一损失函数值;
步骤S1273:根据第一损失函数值对当前动作网络进行优化并根据当前动作网络输出的参数对目标动作网络进行软更新;
其中,当前数据库状态参数为states,第一损失函数为policy_loss=-Q'(states,next_actions)
其中,policy_loss可以作为当前网络的损失值,可以对当前动作网络进行优化,Q'(states,next_actions)表示当前数据库状态参数和下次数据库配置参数在当前评价网络中的评估值。
步骤S1274:将下次数据库状态参数输入到目标动作网络中,生成下次数据库配置参数;
其中,下次数据库状态参数表示为next_states;
步骤S1275:将当前数据库配置参数和当前数据库状态参数输入到当前评价网络中,生成当前动作评估值;
步骤S1276:将下次数据库配置参数和下次数据库状态参数到目标评价网络中,生成下次动作评估值;
步骤S1277:根据当前动作评估值、下次动作评估值和当前数据库配置参数的奖励值计算得到第二损失函数值;
步骤S1278:利用第二损失函数值优化当前评价网络,同时通过当前评价网络输出的参数对目标评价网络进行软更新。
具体的,第二损失函数公式如下:
Loss=Q'(next_state,next_action)-Q(state,action)
其中,Q'(next_state,next_action)为当前动作评估值,Q(state,action)为前次动作评估值,Loss()表示目标评价网络和当前评价网络之间的损失值,其中Q(state,action)在图7中的表示为Q(s,a)。
其中,Q(state,action)与Q'(state_next,action_next)之间的关系为:
Q(state,action)=r+γ*(max(Q'(next_state,next_action)));
其中r表示当前数据库配置参数的奖励值,max(Q'(next_state,next_action)为下一个状态采取的动作可能产生的最高评估分,在本实施例中即表示下一次数据库参数对应的数据库配置所产生的最高评估分,其中γ为0到1的数值。
可以理解的,将Q(state,action)的公式代入Loss函数公式中得到:
Loss=-r+(1-γ)Q'(next_state,next_action)
当γ取值为1时,目标评估值Loss=-r,也即当前评估值加上Loss值即加上-r,为目标评估值,其中r为步骤S1241中的当前数据库配置参数的奖励值。
可以理解的,本发明实施例中的自调优模块由四个部分组成,当前动作网络、当前评价网络、目标动作网络、目标评价网络,四个网络均由神经网络组成;其中,动作网络是根据当前的状态决定下一时刻施加到环境上去的最好动作;此处,可以把动作当作数据库要配置的配置参数,状态可以看作数据库的状态参数。
具体的,通过Loss公式所求得的值即第二损失函数值,对当前评价网络进行优化,以便决定当前动作网络的输出值,即通过优化后的当前评价网络可以预测输入状态参数对应的下一数据库配置参数(目标数据库配置参数)。
其中,目标动作网络,可以为目标评价网络提供下一个状态所对应的动作,即下一个数据库状态所对应的数据库配置参数。其中的数据库状态为数据库性能参数和数据库硬件资源状态参数。目标评价网络主要是负责目标Q值的计算,同时,当前评价网络也需要进行模块的优化,所以需要一个目标值和当前评价网络的生成值进行比较,获取损失值,来优化当前评价网络。
可以理解的,本实施例能够实现定期的用目标评价网络的参数更新当前评价网络的参数,利用软更新方式每更新一次使用一次损失函数,这样就可以保证每次更新都会根据损失函数进行调整,保证模块的更优化。
可以理解的,通过自调优模块中的update()函数来触发整个自调优模块的优化过程,自调优模块从样本池中获取前次状态参数表示为state,前次配置参数表示为action,当前状态参数表示为next_state以及当前数据库配置参数的奖励值reward(在上述实施例中表示为r)参数后经过步骤S1271至步骤S1277处理后输出优化后的数据库配置参数。本实施例中的配置参数因为加入了当前数据库配置参数的奖励值reward,能够使自调优模块生成的数据库配置参数更优,将本实施例中的数据库配置参数输入到目标数据库服务器中进行配置,能够提高目标数据库服务器中数据库的访问速度、读取速度以及其他数据库的处理事项。
在一些实施例中,参照图9,为数据库调优模块原理流程图,混合表征模块负责为自调优模块提供数据库状态混合表征向量,同时也为样本池提供参数样本,同时混合表征模块接收目标数据库发送的数据库性能参数、数据库配置参数、数据库硬件资源状态参数,并对上述参数进行混合表征处理,同时,目标数据库接收自调优模块生成的数据库配置参数,从而形成了一个不间断更新数据库配置参数的有机***,能够快速、高效的完成数据库的生成、优化和配置。
在一些实施例中,当前动作网络负责自优化模块对数据库环境的交互,即根据数据库状态参数生成数据库配置参数,并把配置参数配置到数据库中。当前评价网络负责对每一对数据库state-action的价值(好坏)的评价,评价即Q值,从而能够确定在什么数据库状态下采取什么的动作,可以理解的,在本实施例中的体现即是,在什么样的数据库状态下采用什么样的数据库配置参数能带来更高的数据库性能,其中,数据库状态包括数据库性能参数、数据库硬件资源状态参数,数据库性能包括吞吐量、时延等,高的数据库性能即高的吞吐量、低延时等。
在一些实施例中,数据服务器包括备份数据库服务器和业务数据库服务器,步骤S1100包括:
步骤1110:获取备份服务器的数据库状态混合表征参数;
步骤S1300包括:
步骤S1310:将目标数据库配置参数发送至业务数据库服务器。
可以理解的,业务数据库服务器为正在运行、正在使用的服务器。
在一些实施例中,对数据库服务器进行离线模式优化,可以把需要进行数据库配置的服务器叫做业务服务器,在进行数据库配置参数调整时,是通过一台备份服务器进行,业务服务器和备份服务器的数据库状态混合表征参数相同,此时需要通过步骤S1110获取备份服务器的数据库状态混合表征参数,目的是为了在执行上述步骤S1100至S1300的方法之后生成的目标数据库配置参数也同样适用于业务服务器。
在一些实施例中,在备份服务器通过新生成的目标配置参数进行配置优化之后,数据库运行正常,则可以执行步骤S1310,将目标数据库配置参数发送至业务数据库服务器进行业务数据库服务器的调优工作。
本实施例能够通过在备份服务器上先进行数据库配置参数的调整工作,配置成功并且配置后数据库运行正常时,才会把相关的配置参数配置到业务服务器,这种离线方式对业务服务器进行数据库配置参数调整,可以防止在数据库配置参数调整过程中的意外情况破坏正在运行的业务服务器,造成不必要的损失。
在一些实施例中,对数据库服务器进行在线模式优化,数据库调优模块直接从业务数据库获取数据库状态混合表征参数,并且在获取到上述数据库状态混合表征参数之后,执行上述步骤S1100至S1300的方法获得目标数据库配置参数,并且实时把新生成的目标数据库配置参数传送给业务数据库,以便业务数据库进行实时的数据库配置参数的配置。
本实施例能够实现业务数据库配置参数的实时在线优化,提高优化的效率。
在一些实施例中,数据库配置参数调整方法中步骤S1100、S1200,包括:
S1120,获取来自数据库服务器的数据库状态混合表征参数;
S1280,将数据库状态混合表征参数输入到深度强化学习模型中生成中间数据库配置参数,将中间数据库配置参数发送至数据库服务器;
S1290,重复执行上述步骤N次,直至得到目标数据库配置参数。即,将中间数据库配置参数作为数据库服务器的数据库配置参数输入到数据库服务器的中,重复执行步骤S1120、S1280直到达到N次,得到目标数据库配置参数,其中,N为正整数,可以预设N的取值。通过多次迭代,获得更优的数据库配置参数。
在一些实施例中,设置预设的迭代次数N=max_iter,其中,max_iter表示为最大的迭代次数,迭代次数表示为iter,迭代次数的增加表示为iter++;当进行迭代时,每迭代一次,iter的数值增加1,直到迭代次数iter达到最大迭代次数max_iter,即本实施例中的N时,结束迭代。即当iter>N时,表示迭代结束,此时可以获取到了更优的数据库配置参数,如果iter≤max_iter,则继续重复执行步骤S1120、S1280直到迭代次数iter的数值达到最大迭代次数max_iter即本实施例中的N。其中,N为正整数,可以预设N的取值,N可以通过实验值或者经验值获取。
本实施例能够通过预设迭代次数的方式,不断通过模型训练收敛,直到获取到更优的数据库配置参数,增强了数据库配置参数配置的实时性和高效性。
第二方面,本申请实施例提供了一种数据库配置参数调整方法,应用于数据库服务器。
在一些实施例中,参照图10,数据库配置参数调整方法包括:
步骤S2100,发送数据库状态混合表征参数给数据库调优模块,以使数据库调优模块执行如第一方面的方法;
步骤S2200,接收来自数据库调优模块发送的目标数据库配置参数;
步骤S2300,根据目标数据库配置参数对数据库服务器进行参数配置。
在一些实施例中,在一些实施例中,数据库状态混合表征参数包括以下的一种或多种:数据库性能参数、当前数据库配置参数、硬件资源参数、硬件资源状态参数。
在一些实施例中,参照图11,上述步骤S2100之前还包括:
步骤S2400,获取第一次数据库状态混合表征参数;
步骤S2500,获取来自压力模拟服务器的工作负载压力信号;
步骤S2600,根据工作负载压力信号对数据库服务器进行加压操作;
步骤S2700,加压操作结束后,获取第二次数据库状态混合表征参数。
在一些实施例中,数据库服务器包括备份数据库服务器和业务数据库服务器,步骤S2100包括:
步骤2110:利用备份数据库服务器发送数据库状态混合表征参数给数据库调优模块执行步骤S1100至步骤S1300的方法生成目标数据库配置参数;
步骤2120:利用业务服务器接收目标数据库配置参数;
步骤2130:根据目标数据库配置参数对业务数据库服务器进行参数配置。
为了更好的理解本发明实施例的核心思想,下面根据具体的应用场景进行对本发明实施例数据库配置参数调整的整体方案。
在一些实施例中,参照图12,应用场景的具体物理环境如下表:
表1实施例物理环境
数据库版本 | PG10.11数据库 |
CPU核数 | 4 |
内存 | 4G |
磁盘存储 | 20G |
数据库配置参数调试模式 | 离线 |
其中,表1中所处的物理环境为基于PASS环境,PG10.11数据库表示Postgresql10.11版本的数据库,离线调试模式为在业务开始之前对通过数据库调优服务器101(数据库调优服务器内置有数据库调优模块)最配置参数进行调优,获取到较优的配置之后直接配置到业务数据库中,然后开启数据库服务。
在一些实施例中,数据库配置参数调整***包括数据库配置参数自调优服务器101、数据库查询压力模拟服务器103、基于PASS平台的PG数据库服务器(业务服务器)三部分组成。其中,数据库调优服务器101是本实施例的核心,其负责数据库调优模块的运行、对数据库用户查询压力模拟服务器的控制、与PG10.11数据库服务器交互。业务服务器负责PG10.11数据库的运行、对数据库运行硬件资源进行限定、接收数据库用户查询压力模拟服务器的查询、与数据库调优服务器101交互。数据库用户查询压力模拟服务器负责压测装置的运行、在自调优模块的控制下对PG10.11数据库进行压力测试,以模拟实际运行过程中的数据库工作负载。其中,在本实施例中PG10.11数据库可以作为业务服务器。
其中,数据库调优服务器101分别与数据库查询压力模拟服务器103和业务服务器102双向通信连接,数据库查询压力模拟服务器输出通过单向连接业务服务器,通信连接方式可以为RJ45口或者其他通信连接方式。
在一些实施例中,参照图13(a)、13(b),数据库配置参数调整方法具体包括:
步骤S3100:获取数据库服务器硬件资源参数;
步骤S3200:构建数据库调优模块,若是已有已经训练好的数据库配置参数则进行加载,否则进行下一步骤;
步骤S3300:获取PG10.11数据库默认配置参数;
步骤S3400:对PG10.11数据库环境状态进行复位;
可以理解的,对PG10.11数据库环境状态进行复位是为了对数据库中的数据表进行重建,防止多次压测后数据库表变化,保证数据库每次压测环境的一致性,使得每次压测所获得的数据库性能参数具有可比性。
步骤S3500:将当前数据库配置参数通过网络配置到数据库服务器PG10.11数据库中,并对数据库进行复位。
可以理解的,当前数据库配置参数只有在第一轮模型训练时等于默认配置参数,在模型训练不断迭代的过程中,当前配置参数会不断更新,有一些配置参数需要数据库复位才可以生效。
步骤S3600:对数据库性能参数进行第一次采集;
其中,采集的数据库状态参数包括但不限于如表2所示类型:
表2数据库配置参数类型
步骤S3700:控制数据库查询压力模拟服务器开始对PG数据库服务器中PG10.11数据库进行加压,并开始对数据库硬件资源状态参数实时记录。
其中,数据库硬件资源状态参数包括但不限于:CPU利用率、内存利用率、存储利用率等参数;
步骤S3800:PG数据库服务器中PG10.11数据库加压结束,停止对数据库硬件资源状态参数记录;
步骤S3900:对数据库性能参数进行第二次采集;
步骤S31000:根据步骤S3600中第一次采集到的数据库性能参数和步骤S3900中第二次采集到的数据库状态参数差值计算数据库当前性能参数,根据压测过程中数据库硬件资源状态参数记录计算该过程中数据库硬件资源状态参数如CPU利用率、内存利用率、存储利用率等参数的均值。
步骤S31100:根据步骤S31000中采集到的数据库性能参数、硬件资源状态参数以及S3500中的当前数据库配置参数,以及上述参数的历史记录值进行求差值,然后利用当前参数和所求差值参数的差值做混合表征,获取数据库状态混合表征向量。
步骤S31200:将生成的数据库状态混合表征向量输入到自调优模块生成新的数据库配置参数。
其中,所生成的数据库配置参数包括但是不限于,如表3所示:
表3数据库配置参数类型
步骤S31300:根据步骤S31000中采集到的各个数据库状态参数及其历史记录值来计算当前数据库配置参数的奖励值r,计算公式如下:
Δperfor=cur_perfor-hist_perfor;
Δcpu_rate=cur_cpu_rate-hist_cpu_rate;
Δmen_rate=cur_men_rate-hist_men_rate;
其中,α、β、γ为加权值,r为当前数据库配置参数的奖励值,cur_perfor为当前数据库性能参数,hist_perfor为前次或者历史数据库性能参数,cur_cpu_rate为当前CPU利用率,hist_cur_cpu_rate为前次或者历史CPU利用率,cur_men_rate为当前内存利用率,hist_men_rate为前次或者历史内存利用率,△perfor为当前数据库性能参数和前次或者历史数据库性能参数的差值,△cpu_rate为当前CPU利用率和前次或者历史CPU利用率的差值,△men_rate为当前内存利用率和前次或者历史内存利用率的差值。
其中,cur_perfor和hist_perfor参数可以是数据库吞吐量TPS、查询时延等参数;
步骤S31400:根据步骤S31300中计算的当前数据库配置参数的奖励值大小记录最佳数据库配置参数;
步骤S31500:将前次数据库状态参数、当前数据库配置参数、当前数据库配置参数的奖励值、当前数据库状态参数当作一个交互样本存储到经验池中,其中数据库状态参数包括数据库硬件资源状态参数、数据库性能参数。
步骤S31600:对样本池进行批采样,并对步骤S31200中的自调优模块进行优化。
具体的自调优模块优化过程如步骤S1270中描述,此处不再赘述。
步骤S31700:根据步骤S31200中生成的数据库配置参数更新当前数据库配置参数,以及,对步骤S31000中获得的数据库状态参数对当前数据库状态记录值进行更新,其中的数据库状态参数包括数据库性能参数和数据库硬件资源状态参数。
步骤S31800:若是当前迭代计数器iter值不大于最大迭代值max_iter则返回到S3500步骤,将数据库配置参数配置到PG10.11数据库中,继续迭代过程;否则执行步骤S31900。
步骤S31900:将最佳的数据库配置参数和相应的数据库性能参数返回给数据库管理员,由数据库管理员决定是否将模型推荐的数据库配置参数配置到服务器的目标数据库PG10.11中。
步骤S32000:保存当前数据库自调优模块参数。
在一些实施例中,本实施例提供了另一种应用场景下执行的数据库参数调整情况,如表4;
表4实施例物理环境
数据库版本 | PG10.11数据库 |
CPU核数 | 48 |
内存 | 128G |
磁盘存储 | 1T |
数据库配置参数调试模式 | 在线 |
参照图14,本实施例采用的是两台数据库服务器的模式,其中一台为备份数据库服务器102,另一台为业务数据库服务器104,两台服务器均是PG10.11数据库服务器,通过在备份数据库服务器102中寻找数据库较优配置参数然后再将配置参数推荐给业务数据库服务器104进行配置,避免调优过程中干扰到业务数据的正常运行。
数据库配置调试***由数据库调优服务器101(数据库调优服务器101内置有数据库调优模块)、数据库查询压力模拟服务器103、备份数据库服务器102和业务数据库服务器104四部分组成,其中数据库调优服务器101负责数据库调优模块的运行、对数据库用户查询压力模拟服务器103的控制、与备份数据库服务器102的交互、对业务数据库服务器104的参数配置。备份数据库服务器102负责交互数据库的运行,对数据库运行的硬件资源进行限定,接收数据库用户查询压力模拟服务器103的查询,与数据库调优服务器101交互。数据库查询压力模拟服务器103负责压测工具的运行、与数据库调优服务器101交互。上述服务器之间通过网线连接,但是不限于以上连接方式。
执行上述步骤S3100至步骤S32000的数据库配置参数调整方法。
第三方面,本申请实施例提供了一种电子设备。
在一些实施例中,参照图15,上述电子设备包括一个或多个处理器201;存储装置202,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现:如第一方面的数据库配置参数调整方法;或者,如第二方面的数据库配置参数调整方法。
第四方面,本申请实施例提供了一种计算机可读存储介质。
在一些实施例中,上述计算机可读存储介质存储有计算机可执行指令,上述计算机可执行指令用于执行:如第一方面中的数据库配置参数调整方法;或者,如第二方面的数据库配置参数调整方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围。
Claims (15)
1.一种数据库配置参数调整方法,应用于数据库调优模块,包括:
获取来自数据库服务器的数据库状态混合表征参数;
将所述数据库状态混合表征参数输入到深度强化学习模型中生成目标数据库配置参数;
将所述目标数据库配置参数发送至数据库服务器。
2.根据权利要求1所述的方法,其特征在于,所述数据库状态混合表征参数包括以下的一种或多种:数据库性能参数、当前数据库配置参数、硬件资源参数、硬件资源状态参数。
3.根据权利要求1所述的方法,其特征在于,所述深度强化学习模型包括混合表征模块和自调优模块,所述混合表征模块连接所述自调优模块;
所述将所述数据库状态混合表征参数输入深度强化学习模型生成目标数据库配置参数,包括:
将所述数据库状态混合表征参数输入到混合表征模块;
所述混合表征模块利用神经网络模型对所述数据库状态混合表征参数处理,得到混合表征向量;
将所述混合表征向量输入到所述自调优模块,所述自调优模块利用加强学习模型对所述混合表征向量处理得到目标数据库配置参数。
4.根据权利要求3所述的方法,其特征在于,当所述数据库状态混合表征参数包括数据库性能参数、当前数据库配置参数、硬件资源参数、硬件资源状态参数时;
所述将所述混合表征模块利用神经网络模型对所述数据库状态混合表征参数处理,得到混合表征向量,包括:
获取当前所述数据库性能参数和前次所述数据库性能参数;以及,获取所述当前数据库配置参数和前次所述数据库配置参数;以及,获取当前所述硬件资源状态参数和前次所述硬件资源状态参数;以及,获取所述硬件资源参数;
根据当前所述数据库性能参数获得当前所述数据库性能参数特征向量;根据前次所述数据库性能参数获得前次所述数据库性能参数特征向量;根据所述当前数据库配置参数获得所述当前数据库配置参数特征向量;根据前次所述数据库配置参数获得前次所述数据库配置参数特征向量;根据当前所述硬件资源状态参数获得当前所述硬件资源状态参数特征向量;根据前次所述硬件资源状态参数获得前次所述硬件资源状态参数特征向量;根据所述硬件资源参数获得所述硬件资源参数特征向量;
根据当前所述数据库性能参数特征向量和前次所述数据库性能参数特征向量,计算得到数据库性能参数差值特征向量;根据所述当前数据库配置参数特征向量和前次所述数据库配置参数特征向量,计算得到数据库配置参数差值特征向量;根据当前所述硬件资源状态参数特征向量和前次所述硬件资源状态参数特征向量,计算得到硬件资源状态参数差值特征向量;
将所述数据库性能参数特征向量、所述数据库性能参数差值特征向量、所述数据库配置参数特征向量、所述数据库配置参数差值特征向量、所述硬件资源状态参数特征向量、所述硬件资源状态参数差值特征向量、所述硬件资源参数特征向量输入到所述神经网络模型中,利用所述神经网络模型输出混合表征向量。
5.根据权利要求3所述的方法,其特征在于,所述深度强化学习模型还包括数据库配置参数奖励函数模块;
所述将所述数据库状态混合表征参数输入深度强化学习模型生成数据库配置参数,还包括:
将所述数据库状态混合表征参数分别输入到混合表征模块和数据库配置参数奖励函数模块,生成奖励策略;
将所述奖励策略存储到样本池中;
对所述样本池采样获得采样数据;
利用所述采样数据,对所述数据库调优模块进行优化。
6.根据权利要求5所述的方法,其特征在于,当所述数据库状态混合表征参数包括数据库性能参数、当前数据库配置参数、硬件资源参数、硬件资源状态参数时,所述将所述数据库状态混合表征参数分别输入到混合表征模块和数据库配置参数奖励函数模块,生成奖励策略,包括:
将当前所述数据库性能参数与前次数据库性能参数差值、当前所述硬件资源状态参数与前次所述硬件资源状态参数差值归一化处理后输出当前数据库配置参数的奖励值;
所述归一化处理为,计算所述当前所述数据库性能参数与前次数据库性能参数差值在所述前次数据库性能参数中的占比;以及,当前所述硬件资源状态参数与前次所述硬件资源状态参数差值在所述前次所述硬件资源状态参数的占比,并对所述占比乘以相应的加权值求和后输出所述当前数据库配置参数的奖励值;
根据所述当前数据库配置参数的奖励值、所述当前数据库配置参数、当前所述数据库性能参数、当前所述硬件资源状态参数、前次所述数据库性能参数、前次所述硬件资源状态参数,生成所述奖励策略。
7.根据权利要求5所述的方法,其特征在于,所述自调优模块包括:当前动作网络、当前评价网络、目标动作网络、目标评价网络;所述当前动作网络用于根据数据库状态混合表征参数生成目标数据库配置参数并发送到所述数据库服务器;所述采样数据包括当前数据库配置参数、当前数据库状态参数、下次数据库状态参数、当前数据库配置参数的奖励值;
所述利用所述采样数据,对所述自调优模块进行优化,包括:
将所述当前数据库状态参数输入到当前动作网络中,并生成下次数据库配置参数;
将所述下次数据库配置参数和所述当前数据库状态参数输入到当前评价网络,以确定第一损失函数值;
根据所述第一损失函数值对所述当前动作网络进行优化;根据所述当前动作网络输出的参数对目标动作网络进行软更新;
将所述下次数据库状态参数输入到所述目标动作网络中,生成下次数据库配置参数;
将所述当前数据库配置参数和所述当前数据库状态参数输入到当前评价网络中,生成当前动作评估值;
将所述下次数据库配置参数和所述下次数据库状态参数到目标评价网络中,生成下次动作评估值;
根据所述当前动作评估值、所述下次动作评估值和所述当前数据库配置参数的奖励值计算得到第二损失函数值;
利用所述第二损失函数值优化当前评价网络,同时通过当前评价网络输出的参数对所述目标评价网络进行软更新。
8.根据权利要求1所述的方法,所述数据服务器包括备份数据库服务器和业务数据库服务器,所述获取来自数据库服务器的数据库状态混合表征参数,包括:
获取备份服务器的数据库状态混合表征参数;
将所述目标数据库配置参数发送至数据库服务器,包括:
将所述目标数据库配置参数发送至业务数据库服务器。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述获取来自数据库服务器的数据库状态混合表征参数;将所述数据库状态混合表征参数输入到深度强化学习模型中生成目标数据库配置参数,包括:获取来自数据库服务器的数据库状态混合表征参数;
将所述数据库状态混合表征参数输入到深度强化学习模型中生成中间数据库配置参数;
将中间数据库配置参数发送至数据库服务器,并重复执行上述步骤N次,直至得到目标数据库配置参数。
10.一种数据库配置参数调整方法,应用于数据库服务器,包括:
发送数据库状态混合表征参数给调优模块,以使调优模块执行如权利要求1-9任一项所述的方法;
接收来自所述数据库调优模块发送的目标数据库配置参数;
根据所述数据库配置参数对数据库服务器进行参数配置。
11.根据权利要求10所述的方法,其特征在于,所述数据库状态混合表征参数包括以下的一种或多种:数据库性能参数、当前数据库配置参数、硬件资源参数、硬件资源状态参数。
12.根据权利要求10所述的方法,其特征在于,所述发送数据库状态混合表征参数给数据库调优模块,以使数据库调优模块执行如权利要求1-9任一项所述的方法之前,还包括:
获取第一次数据库状态混合表征参数;
获取来自压力模拟服务器的工作负载压力信号;
根据所述工作负载压力信号对数据库服务器进行加压操作;
所述加压操作结束后,获取第二次数据库状态混合表征参数。
13.根据权利要求10所述的方法,所述数据库服务器包括备份数据库服务器和业务数据库服务器,所述发送数据库状态混合表征参数给数据库调优模块,以使数据库调优模块执行如权利要求1-9任一项所述的方法;包括:
利用备份数据库服务器发送所述数据库状态混合表征参数给数据库调优模块执行如权利要求1-9任一项所述的方法生成目标数据库配置参数;
利用业务服务器接收所述目标数据库配置参数;
根据所述目标数据库配置参数对业务数据库服务器进行参数配置。
14.电子设备,包括:
至少一个处理器,以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述指令时实现如权利要求1至9任一项所述的方法或如权利要求10至13任一项所述的方法。
15.计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至9任一项所述的方法或如权利要求10至13任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010618107.8A CN113872788A (zh) | 2020-06-30 | 2020-06-30 | 数据库配置参数调整方法、设备及存储介质 |
PCT/CN2021/102782 WO2022001965A1 (zh) | 2020-06-30 | 2021-06-28 | 数据库配置参数调整方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010618107.8A CN113872788A (zh) | 2020-06-30 | 2020-06-30 | 数据库配置参数调整方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113872788A true CN113872788A (zh) | 2021-12-31 |
Family
ID=78981855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010618107.8A Pending CN113872788A (zh) | 2020-06-30 | 2020-06-30 | 数据库配置参数调整方法、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113872788A (zh) |
WO (1) | WO2022001965A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594981A (zh) * | 2023-05-18 | 2023-08-15 | 合芯科技(苏州)有限公司 | 一种数据库***参数优化方法、装置及电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115640278B (zh) * | 2022-09-30 | 2023-08-08 | 北京柏睿数据技术股份有限公司 | 一种数据库性能智能优化的方法及*** |
CN116401232B (zh) * | 2023-03-24 | 2024-01-30 | 天云融创数据科技(北京)有限公司 | 数据库参数配置优化方法、装置、电子设备及存储介质 |
CN117234711B (zh) * | 2023-09-05 | 2024-05-07 | 合芯科技(苏州)有限公司 | Flink***资源动态分配方法、***、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101083563B1 (ko) * | 2009-04-24 | 2011-11-14 | 엔에이치엔비즈니스플랫폼 주식회사 | 데이터베이스 관리 방법 및 시스템 |
US11106996B2 (en) * | 2017-08-23 | 2021-08-31 | Sap Se | Machine learning based database management |
US11061902B2 (en) * | 2018-10-18 | 2021-07-13 | Oracle International Corporation | Automated configuration parameter tuning for database performance |
CN110019151B (zh) * | 2019-04-11 | 2024-03-15 | 深圳市腾讯计算机***有限公司 | 数据库性能调整方法、装置、设备、***及存储介质 |
CN110134665B (zh) * | 2019-04-17 | 2021-05-25 | 北京百度网讯科技有限公司 | 基于流量镜像的数据库自学习优化方法及装置 |
CN110134697B (zh) * | 2019-05-22 | 2024-01-16 | 南京大学 | 一种面向键值对存储引擎的参数自动调优方法、装置、*** |
-
2020
- 2020-06-30 CN CN202010618107.8A patent/CN113872788A/zh active Pending
-
2021
- 2021-06-28 WO PCT/CN2021/102782 patent/WO2022001965A1/zh active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594981A (zh) * | 2023-05-18 | 2023-08-15 | 合芯科技(苏州)有限公司 | 一种数据库***参数优化方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2022001965A1 (zh) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113872788A (zh) | 数据库配置参数调整方法、设备及存储介质 | |
Kang et al. | Policy optimization with demonstrations | |
CN112052948B (zh) | 一种网络模型压缩方法、装置、存储介质和电子设备 | |
CN111638958A (zh) | 云主机负载处理方法、装置、控制设备及存储介质 | |
CN113409898B (zh) | 分子结构获取方法、装置、电子设备及存储介质 | |
CN110727943A (zh) | 一种入侵检测方法及装置 | |
CN114780233A (zh) | 基于微服务链路分析和强化学习的调度方法及装置 | |
CN111738435A (zh) | 一种基于移动设备的在线稀疏训练方法及*** | |
CN113902116A (zh) | 一种面向深度学习模型推理批处理优化方法与*** | |
Chen et al. | Pessimism meets invariance: Provably efficient offline mean-field multi-agent RL | |
CN114462614A (zh) | 量子噪声强度确定方法及装置、电子设备和介质 | |
CN114819168B (zh) | 一种矩阵特征值的量子比较方法及装置 | |
CN110009048A (zh) | 一种神经网络模型的构建方法以及设备 | |
CN106549827A (zh) | 网络状态的探测方法及装置 | |
US20210150371A1 (en) | Automatic multi-objective hardware optimization for processing of deep learning networks | |
CN114912041A (zh) | 信息处理方法、电子设备和计算机程序产品 | |
CN107563511A (zh) | 一种实时***可用时间快速估算与优化方法 | |
CN109347900B (zh) | 基于改进狼群算法的云服务***自适应演化方法 | |
Zong et al. | Research on data mining of sports wearable intelligent devices based on big data analysis | |
CN112419098B (zh) | 基于安全信息熵的电网安全稳定仿真样本筛选扩充方法 | |
KR20200090061A (ko) | 인공신경망 모델의 검증 방법 및 장치 | |
CN117709415A (zh) | 一种量子神经网络模型的优化方法及装置 | |
CN115688873A (zh) | 图数据处理方法、设备及计算机程序产品 | |
CN113722554A (zh) | 数据分类方法、装置及计算设备 | |
CN111324444A (zh) | 一种云计算任务调度方法及装置 |
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 |