面向自动参数调优的动态负载匹配方法
2021-03-18
(武汉大学计算机学院,武汉 430072)
0 引言
数据库参数调优是一项维持或提升数据库性能的重要工作。由于数据库的性能受到多个参数共同影响,再加上可调参数数量、数据库体量和业务量的剧增,导致传统基于人力的参数调优越来越困难。随着自治数据库[1]技术的发展,数据库自动参数调优技术成为了解决这一难题的主要选择之一。
得益于机器学习技术的发展,现在已经出现了一些数据库自动参数调优方法[2-3]和系统[4-5],例如OtterTune[2]。在这些方法中,对调优目标系统的工作负载的了解是进行调优的基础。只有准确地描述负载,才能找到与目标负载最相似的历史负载,从其对应的参数配置寻找目标负载的最优配置方案。
对负载的了解依赖于负载的描述、匹配以及预测方法。数据库负载的描述主要有两种方式:1)用负载所含的操作描述,例如SQL(Structured Query Language)语句的到达率[6-9]、SQL 到达率与数据库信息的结合体[10]、每秒事务总数与事务类型的混合率[11];2)使用运行时数据库中各项资源利用率或性能指标描述,例如系统资源(内存、中央处理器(Central Processing Unit,CPU)和磁盘等)的利用率、数据库资源(缓冲区、锁等)的利用率[12-15]、并发用户数和响应速度[16]。
虽然这些描述方式各有优势,但都是以点概面地以负载在某个时间点的表现来概括其整体特征,而忽视了负载会随时间变化的动态特性。这种以偏概全的描述方式实际上制约了调优方法的有效性和准确性。
针对现有自动调优工具中采用的负载描述和匹配方法无法捕捉负载动态特性的问题,本文提出了一种动态负载描述方法以及相应的匹配算法,并将其应用于OtterTune 上,并通过实验验证了其有效性。……
