Page 139 - 《软件学报》2025年第12期
P. 139
5520 软件学报 2025 年第 36 卷第 12 期
进行设计, 以鼓励或抑制特定行为 (动作).
2.3 参数优化模型的应用
模型经过离线训练之后, 将使用图 6 中描述的过程来为数据库系统推荐优化的配置参数. 首先, 需要将用户的
数据库负载回放以获取数据库的状态参数, Actor 网络基于获取的数据库状态参数为数据库系统推荐相应的配置
参数. 由于 DDPG 算法是确定性策略梯度方法, 存在动作空间 (参数空间) 探索性不足的缺陷. 为了获取最优的推
荐参数, 增加 DDPG 算法对未知参数设置的探索能力, 可以选择在 Actor 网络向前传播的过程中加入噪声, 或者将
产生的动作经过 OU (Ornstein-Uhlenbeck) 随机过程处理.
加入噪声
工作负载回放
数据库状态 动作
推荐参数
数据库系统 不加入噪声
动作
OU随机过程
Actor
图 6 推荐参数生成的过程
3 基于多目标强化学习的数据库参数自动调优方法
尽管许多实际问题可以简化为单目标强化学习 (SORL) 任务, 但这种方式只能在偏好空间中学习“平均”策略,
而不能针对特定偏好定制最优策略. 实际上, 许多现实世界的任务需要考虑它们的多目标性质 [23] . 多目标强化学
习 (MORL) 是强化学习 (RL) 的一个子领域, 它试图为至少有两个目标的问题找到最优策略 [24] .
针对数据库系统参数优化这一典型的多目标优化任务, 为了解决相关工作中存在的将多目标优化任务简单线
性变换为单目标优化任务带来的缺陷, 本文提出了原生多目标的强化学习算法 N-MODDPG, 该算法改进了传统
强化学习方法中的奖励机制, 避免了模型的重复训练. 为了实现目标偏好和相应的最优策略的快速对齐, 基于广义
的 Bellman 方程改进了 DDPG 算法中价值函数的更新方式, 使得价值函数的更新过程能够考虑整个偏好空间, 从
而避免次优解的产生, 实现了优化的 ON-MODDPG (optimized native multi-objective DDPG) 算法.
3.1 基于多目标强化学习的数据库调优系统
本文提出的多目标的强化学习算法 MODDPG 的系统架构 MODBTune, 如图 7 所示. 该系统主要由 3 个模块
组成, 分别是数据库系统模块、性能测试模块和系统调优模块.
数据库系统模块可以适配主流关系数据库系统 (MySQL, PostgreSQL 等), 该模块需要为系统调优模块提供数
据库状态参数.
性能测试模块为模型训练生成工作负载并监测数据库性能, 以及在线参数调优时回放用户的工作负载. 对于
数据库性能 (延迟和吞吐量) 的监测, 本文设置每 5 s 采样一次, 然后计算采样结果的平均值用于计算模型的奖励.
系统调优模块为数据库系统提供高性能的配置参数. 其中控制器用于协调数据库系统、性能测试和系统调优
这 3 个模块的工作.
图 7 中 Metrics 表示 DBMS 运行过程中的一些运行时度量指标, 是记录其内部运行的组件活动的计数器. 数
据库系统的运行时度量指标使 DBA 和监视工具能够观察系统的行为并诊断性能问题. 运行时度量指标有 3 种类
型: 累积指标、聚合指标和状态指标.
累积指标用于计算自某个时间点以来发生的事件数量. 例如, DBMS 可以记录自启动以来从磁盘读取的页面
数. 聚合指标用于记录一个时间窗口内的平均事件数. 例如, 获取表的行锁的平均时间. 状态指标用于记录活动或

