1、数据库系统参数调优方法综述曹蓉1鲍亮1崔江涛1李辉1周恒21(西安电子科技大学计算机科学与技术学院西安710071)2(浪潮集团有限公司济南250014)()Survey of Approaches to Parameter Tuning for Database SystemsCaoRong1,BaoLiang1,CuiJiangtao1,LiHui1,andZhouHeng21(School of Computer Science and Technology,Xidian University,Xian 710071)2(Inspur Group Co.,Ltd.,Jinan 25001
2、4)AbstractDatabase systems contain a vast number of configuration parameters controlling nearly all aspects ofruntime operation.Different parameter settings may lead to different performance values.Parameter tuning canimprovetheadaptabilityofdatabasetocurrentenvironmentbyselectingappropriateparamete
3、rsettings.However,parametertuningfacesseveralchallenges.Thefirstchallengeisthecomplexityofparameterspace,whilethesecondistheinsufficientsamplescausedbytheexpensiveperformancemeasurements.Moreover,theoptimalparameterconfigurationisnotuniversalwhentheenvironmentchanges.Therefore,regularusersandevenexp
4、ertadministratorsgrapplewithunderstandingandtuningconfigurationparameterstoachievegoodperformance.Wesummarizeandanalyzetheexistingworkonparametertuningfordatabasesystemsandclassifythemintotwocategories:tuningapproachesunderfixedenvironmentsandtuningapproachesunderchangedenviroments,accordingtowhethe
5、rtheapproacheshavetheabilitytocopewithenvironmentalchanges.Forthefirstone,theresearchworkisdividedintotraditionalparametertuningandmachinelearning-basedparametertuningaccordingtowhethertheapproachescanlearn from historical tasks.For the second one,the existing approaches are introduced according to
6、differentenvironmentalchangescenarios,respectively.Finally,wesummarizetheprosandconsofvariousapproachesanddiscusssomeopenresearchproblemsforparametertuning.Key wordsdatabasesystems;parametertuning;performancetuning;machinelearning;self-drivingdatabase摘要数据库系统具有大量的配置参数,参数配置不同会导致系统运行时很大的性能差异.参数优化技术通过选择
7、合适的参数配置,能够提升数据库对当前场景的适应性,因此得到国内外研究人员的广泛关注.通过对现有的数据库参数调优方法进行总结分析,根据参数优化方法是否具有应对环境变化的能力,将现有工作分为固定环境下的数据库参数优化方法和变化环境下的数据库参数优化方法 2 类.对于固定环境下的参数优化方法,按照方法是否具有从历史任务中学习的能力将研究工作分为传统的参数优化方收稿日期:2021-09-30;修回日期:2022-02-23基金项目:国家自然科学基金项目(62172316);教育部人文社会科学研究项目(17YJA790047);陕西省软科学研究计划项目(2020KRZ018);陕西省哲学社会科学重大理论
8、与现实问题研究项目(20JZ-25);陕西省重点研发计划项目(2019ZDLGY13-03-02);陕西省自然科学基金项目(2019JM-368);河北省重点研发计划项目(20310102D)ThisworkwassupportedbytheNationalNaturalScienceFoundationofChina(62172316),theMinistryofEducationHumanitiesandSocialScienceProjectofChina(17YJA790047),theSoftScienceResearchPlansofShaanxiProvince(2020KRZ0
9、18),theResearchProjectonMajorTheoreticalandPracticalProblemsofPhilosophyandSocialSciencesinShaanxiProvince(20JZ-25),theKeyResearchandDevelopmentProgramofShaanxiProvince(2019ZDLGY13-03-02),theNaturalScienceFoundationofShaanxiProvince(2019JM-368),andtheKeyResearchandDevelopmentProgramofHebeiProvince(2
10、0310102D).计 算 机 研 究 与 发 展DOI:10.7544/issn1000-1239.202110976JournalofComputerResearchandDevelopment60(3):635653,2023法和基于机器学习的参数优化方法 2 类并分别进行介绍.对于变化环境下的参数优化方法,按照不同的变化场景对现有工作进行分类介绍.最后,总结了现有工作中各类方法的优缺点,并对目前研究中待解决的问题和可能发展的方向进行了讨论.关键词数据库系统;参数调优;性能调优;机器学习;自治数据库中图法分类号TP392万维网、电子商务、物联网和其他应用的持续发展产生了大量且不断增长的原
11、始数据,因此需要一类软件系统来处理海量的原始数据,并通过分析数据从中提取有用信息.为了满足数据处理的需要,数据库系统应运而生,它不仅是存储介质、处理对象和管理系统的集合体,也是一个为应用系统提供数据的软件系统,是数据基础设施中必不可少的关键组成部分.在这种背景下,实现良好且健壮的数据库系统性能是高效执行数据存储、分析和管理的基础.然而,数据库系统性能与大量的配置参数直接相关,这些参数控制着系统运行时操作的各个方面,并极大地影响了数据库的性能1.数据库的配置参数主要分为 3 类:1)资源类;2)策略类;3)位置类2.资源类参数指定系统为某项任务分配多少资源,包括固定组件(例如垃圾收集线程数)和动
12、态活动(例如每个查询的内存使用量).策略类参数决定数据库系统如何处理特定任务.例如,通过设置特定参数可以控制数据库系统在事务提交时是否将预写日志刷新到磁盘.最后,位置类参数指定数据库系统在哪里找到需要的资源(例如文件路径),以及如何与外部进行交互(例如网络端口号).其中,资源类和策略类参数对数据库系统的性能影响较大,数据库性能优化应重点考虑这些参数在特定环境下的调优.数据库参数优化是一项维持或提升数据库性能的重要工作.通过调整数据库系统配置参数实现性能优化的一类技术统称为数据库参数优化技术.参数优化产生的性能优势在业界是众所周知的,合适的参数配置可以实现数据库数量级的性能提升3,而不合适的参数
13、配置则会导致其系统性能大幅度降低4.然而,由于数据库的性能受到多个参数共同影响,再加上可调参数数量、数据库体量和业务量的剧增,导致传统基于人力的参数优化越来越困难.另一种直观的方式则是通过测量数据库系统所有参数配置的性能,来确定最佳的参数配置.但由于高维配置空间的复杂性,这种方法通常是不可行的.例如,若对 1个仅具有 5 个可调参数的系统进行所有实验,假设每个参数有 6 种不同的取值,且每个实验的平均运行时间为 10min,则进行所有实验需要 60d,这通常是不可接受的5.因此,数据库自动参数优化技术是解决这一难题的主要选择之一,是一种很有前景且具有挑战性的系统性能优化方法.具体来说,数据库系
14、统参数优化有 3 个主要的挑战:1)复杂性.数据库系统通常存在数百个可调的参数2,参数具有连续型、离散型和枚举型等多种类型和不同的取值范围,而且参数之间存在复杂的隐性依赖关系.例如,某些参数可能会以不同的方式影响查询性能,而某些参数组合可能会产生不同的效果.有研究工作表明在复杂的参数空间中找到最优的系统参数配置是一个 NP-hard 问题6.2)样本不足.数据库参数优化通常需要大量数据样本来获得良好的结果,而收集这些数据是昂贵和耗时的.为了不干扰生产系统的运行,数据库管理员(databaseadministrator,DBA)首先需要部署 1 个数据库副本,并获取 1 个具有代表性的工作负载示
15、例,调优工具将在单独的测试系统上运行该工作负载的实验.根据工作负载示例运行时间的不同,收集足够的数据样本可能需要几天甚至几周的时间,而实际的调优过程往往有严格的时间限制,这将导致样本不足的问题.3)动态变化性.随着数据库系统的规模不断增大,复杂性增加,繁复多变的工作负载以及灵活的云基础设施使数据库系统的参数优化变得更具挑战性.当环境发生变化时(包括工作负载变化、硬件配置变化和软件版本变更),现有的最优参数配置将不再适用.在这种情况下,如何利用现有的优化知识,对新环境快速地进行参数优化也是亟待解决的问题.目前,大量研究工作通过在数据库系统中引入自配置特性来解决性能优化问题.值得一提的是,软件系统
16、参数优化领域也存在大量的研究成果.数据库管理系统是软件系统的一个类别.因此,一部分软件系统参数优化的工作也适用于数据库管理系统,在实验部分也会选取部分数据库管理系统对方案有效性进行验证.这部分工作通常满足 2 个条件:1)参数优化工作视系统性能模型为黑盒模型,无需对系636计算机研究与发展2023,60(3)统内部进行深入理解与分析;2)参数优化工作能够处理连续型、离散型和枚举型等多种类型的配置参数,与数据库系统的参数类型一致.在后续的文献综述中也会包含一部分满足上述 2 个条件且对数据库系统进行实验验证的软件系统参数优化工作,并在相应位置进行说明.本文对现有的数据库参数优化方法进行了全面的研究,总结出针对不同挑战和场景提出的不同方法或策略.本文将这些方法按照问题场景的不同分为 2 类:固定环境下的数据库参数优化方法和变化环境下的数据库参数优化方法.其中,针对固定环境下的数据库参数优化方法的研究工作较多,按照方法的特点进一步分为传统的数据库参数优化方法(包括手工参数优化方法、基于规则的参数优化方法、基于模型的参数优化方法和基于搜索的参数优化方法)和基于机器学习的数据库参数优化方法(包括