海山数据库(He3DB)+AI(三):旋钮调优问题综述

0 背景

在数据库优化问题中,旋钮调优(knob tuning)对系统的性能或资源利用起着至关重要的作用,该问题面临如下挑战:1)数据库配置中有成千上百的旋钮配置,如何确定哪旋钮会影响数据库的性能和资源使用?2)面对巨大的搜索空间,如何在有限时间内找到合适的配置参数?3)随着云服务的增长,需要为各种情况如不同的应用程序、数据集和硬件,调整大量的数据库实例,如何应对越来越棘手的情况?

随机机器学习的发展,越来越多基于学习的调参方法被提出,其主要思想是搜集旋钮配置及对应的性能数据,让模型去训练学习,使得在遇到相似场景时,能够快速获得较好的参数推荐。本次带来TKDE上的论文Automatic Database Knob Tuning: A Survey[1],对该问题进行的定义和现有方法进行介绍。

1 问题介绍

旋钮调优问题可以被分为4个子问题:1)调优的目标是什么?2)调什么?3)以什么去调?4)如何调?如图1所示。

在这里插入图片描述

图1 旋钮调优问题

1)调优的目标是什么?

对于一个数据库系统来说,调优的目标主要可分为两个方面:一是提高系统的性能,如吞吐量、延迟;二是在不牺牲性能的情况下提高资源利用率。此外,对于一个调优方法来说,其评价标准除性能和资源利用率外,还包括适应性和安全两个维度。

2)调什么?

调整的是数据库系统中数以千计的旋钮。旋钮的类型或连续或离散,带来巨大的搜索空间,此处面临两个挑战:一是如何评估不同旋钮之间的相关性,二是在不同的任务中如何选择重要的旋钮进行调整。

3)以什么去调?

假设确定了合适的旋钮,那如何来确定调优特征,如工作负载,数据库状态和硬件环境,这些特征反映了数据库的执行行为,潜在的影响调优性能。

4)如何调?

在确定了调整旋钮和调优特征后,使用什么方法来进行调整,这里面临两大挑战:一是巨大的搜索空间,二是调优成本。旋钮之间的参数组合是一个巨大的搜索空间,对于每个旋钮设置,需要执行工作负载来得到反馈,而这可能需要很长的时间。现有方法可分为手工调和自动调整两大类。

针对以上四个问题,本文从下面四个部分进行了回答:参数选择(knob selection),特征选择(feature selection),调参方法(tuning methods)和迁移方法(transfer techniques),主要流程如图2所示。

在这里插入图片描述

图2 旋钮调优流程

2 参数选择(knob selection)

(1)参数介绍

数据库系统中有成千上百的参数,根据其作用的模块不同可将其分为七类:访问控制旋钮(Access Control,AC),查询优化器(Query Optimizer,QP),查询执行(Query Executor,QE),后台进程(Background Process,BP),CPU资源,内存资源和磁盘资源管理,如下图所示。

在这里插入图片描述

图3 参数分类

其中,访问控制旋钮主要影响并发访问和数据库事务,通过平衡衡性能和吞吐量影响数据库性能。查询优化器中通过选择顺序扫描或索引扫描,贪心算法或遗传算法来影响查询计划的生成。查询执行旨在配置物理执行机制和锁机制。后台进程如日志记录,审计和复制等进程,这些任务对于保证数据库实例的可靠性至关重要。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值