数据库旋钮(Knob)调整(数据库调优)配置生成器。
X. Huang et al., “LLMTune: Accelerate Database Knob Tuning with Large Language Models,” Apr. 17, 2024, arXiv: arXiv:2404.11581. Accessed: Nov. 07, 2024. [Online]. Available: http://arxiv.org/abs/2404.11581
【摘要】数据库旋钮调整是数据库社区中的一个关键挑战,旨在优化旋钮值(即配置)以增强特定工作负载的数据库性能。现代数据库管理系统 (DBMS) 通常具有数百个可调整旋钮,每个旋钮都具有连续或离散值,这对数据库管理员 (DBA) 推荐最佳配置构成了重大挑战。因此,已经开发了各种基于机器学习 (ML) 的调整方法来自动化此配置过程。尽管引入了各种优化器,但实际应用揭示了一个新的问题:这些方法通常需要大量工作负载运行才能达到令人满意性能,这是一个既耗时又资源密集的过程。这种低效率很大程度上源于最佳配置通常与默认设置相差甚远,因此在调整过程中需要进行多次迭代。认识到这一点,我们认为一个有效的起点可以显著减少在效率较低区域中的冗余探索,从而有可能加快优化器的调整过程。基于此假设,我们介绍了LLMTune,这是一种基于大型语言模型 (LLM) 的配置生成器,旨在为新的工作负载生成初始高质量配置。这些生成的配置可以作为各种基础优化器的起点,加速其调整过程。为了获得LLMTune的监督微调训练数据,我们设计了一个新的自动数据生成框架,能够有效地创建大量<工作负载,配置>
对。我们进行了彻底的实验,以评估LLMTune对不同工作负载(如TPC-H和JOB)的有效性。与领先方法相比,LLMTune在识别更优配置方面表现出更快的速度。例如,对于具有挑战性的TPC-H工作负载,我们的LLMTune在找到最佳性能配置方面实现了显著的15.6倍加速比。
1 引言
- 数据库性能优化对于提高系统效率和用户体验至关重要。
- 旋钮调优是调整数据库配置参数以适应特定工作负载的重要技术。
- 现代数据库管理系统拥有数百个旋钮,导致搜索空间巨大,人工调优困难且耗时。
- 现有的自动化调优方法,如BO-based和RL-based,虽然能够找到合适的配置,但通常需要大量工作负载运行,效率低下。
- 本文提出LLMTune,一种基于LLM的配置生成器,旨在为新的工作负载生成高质量的初始配置,从而加速调优过程。
2 相关工作
- 旋钮调优:
- BO-based方法:利用GP模型进行迭代优化,例如iTuned、SMAC和OnlineTune。
- RL-based方法:使用DRL模型直接生成最佳配置,例如CDBTune、QTune和WATuning。
- DL-based方法:使用深度学习模型预测性能,例如DNN Method和iBTune。
- Knowledge Transfer方法:利用历史调优任务的知识来初始化新的调优模型或优化搜索空间,例如workload mapping、model ensemble和model pre-training。
- LLM在数据库中的应用:
- DB-GPT:利用LLM进行查询重写和索引调优。
- DB-BERT:使用BERT模型进行数据库旋钮调优。
- CodeXDB:使用GPT-3将复杂SQL查询简化为可管理的步骤。
- Trummer:为DBA提供利用LLM进行大规模数据管理的教程。
- Evaporate:将半结构化文档处理成可查询的表格。
- GPT在文本到SQL、KBQA和代码生成等数据库相关任务中的应用。
3 问题定义
- LLM:基于Transformer架构,能够学习文本数据并执行各种语言相关任务。
- 数据库旋钮调优问题:给定数据库和工作负载,开发一个LLM,将数据库和工作负载作为输入,输出能够最大化或最小化特定性能指标的配置。
- 工作负载泛化:评估模型对未见过的数据库模式和工作负载的适应能力。
4 系统概述
- LLMTune分为三个阶段:
- 数据构建:利用GPT-4生成工作负载,并使用HEBO调优方法找到最佳配置。
- LLM训练:使用LLaMA-Factory框架对LLM进行监督微调,使其能够根据给定的工作负载和数据库特征生成配置变化。
- 调优阶段:使用多步推理生成初始配置,并使用基线方法进行进一步优化。
5 LLM训练数据构建
- 数据构建工作流程:
- 工作负载生成:利用GPT-4生成可执行、分类明确和多样化的工作负载。
- 验证:在数据库中执行工作负载,并丢弃产生SQL错误的工作负载。
- 标签收集:使用HEBO调优方法找到最佳配置。
- 成本模型构建:使用随机森林和梯度提升模型构建成本模型,以预测工作负载的性能。
- 工作负载生成:
- 输入GPT-4的信息:数据库模式、列值和工作负载类型(OLAP和OLTP)。
- 输出:包含多个SQL查询的工作负载,满足可执行、分类明确和多样化的要求。
- 标签收集:
- 使用HEBO调优方法找到最佳配置。
- 记录中间调优步骤,用于LLM训练。
- 成本模型构建:
- 输入:归一化配置、表访问频率、工作负载指标。
- 输出:归一化性能指标。
- 目标:减少HEBO调优时间,提高数据生成效率。
6 LLM训练
- LLM输入:
- 工作负载特征:表访问频率、SQL查询数量、读写比、平均谓词数量、关键词比例等。
- 内部指标:数据库运行时指标,例如pg_stat_database和pg_stat_bgwriter。
- 查询计划:所有SQL查询的查询计划,以及PostgreSQL数据库引擎提供的成本估计。
- LLM输出:配置变化,即相对于每个旋钮初始值的变化量。
- LLM微调:使用LLaMA-Factory框架进行监督微调,训练LLM生成配置变化。
7 调优阶段
- 生成:使用多步推理生成初始配置。
- 应用之前生成的配置,执行工作负载,收集查询计划和内部指标。
- 将收集到的信息输入LLM,得到配置变化。
- 将配置变化加到之前生成的配置上,得到新的配置。
- 重复以上步骤,直到性能不再提升。
- 优化:使用基线方法进行进一步优化。
- 使用HEBO、SMAC或CDBTune等基线方法对生成的初始配置进行进一步优化。
8 实验
- 实验设置:
- 数据集:TPC-H、JOB和BIRD数据库,共3871个工作负载。
- 指标:平均查询延迟(秒)和找到最佳配置所需的总时间(分钟)。
- 基线方法:HEBO、SMAC、CDBTune、workload mapping、model ensemble和model pre-training。
- 环境配置:PostgreSQL 12.2、Intel Xeon CPU、NVIDIA RTX 3090 GPU。
- in-schema工作负载评估:
- LLMTune在in-schema场景下取得了显著的性能提升和效率提升。
- LLMTune比workload mapping、model ensemble和model pre-training等现有方法更有效。
- 消融实验表明,LLMTune的各个组件都对性能有重要影响。
- cross-schema工作负载评估:
- LLMTune在cross-schema场景下也取得了显著的性能提升和效率提升。
- LLMTune比workload mapping、model ensemble和model pre-training等现有方法更有效。
- LLMTune在cross-schema场景下的性能略低于in-schema场景,但仍优于其他方法。
9 结论
- LLMTune是一种创新的数据库调优方法,具有效率高、有效性高和泛化能力强等优点。
- LLMTune利用LLM的强大能力来克服现有方法的局限性,并为数据库性能优化提供了新的解决方案。
- LLMTune在数据库调优领域具有广阔的应用前景。