openGauss源码解析(157)
openGauss源码解析:AI技术(4)
2. 在线参数调优流程概述
X-Tuner采集操作系统的统计信息和workload特征,根据训练好的监督学习模型或先验规则,推荐给用户对应的参数修改建议。在线参数调优过程的流程图如图8-3所示。
图8-3 在线参数调优过程的流程图
8.2.4 openGauss关键源码解析
X-Tuner在项目中的源代码路径为:openGauss-server/src/gausskernel/dbmind/tools/xtuner。
1. 项目结构
X-Tuner文件结构如表8-2所示。
表8-2 X-Tuner主要文件结构
文件结构 |
说明 |
setup.py |
安装脚本 |
share |
配置文件示例 |
test |
单元测试文件的目录 |
tuner |
调优程序主代码目录 |
tuner/algorithms |
算法子模块 |
tuner/algorithms/pso.py |
粒子群算法 |
tuner/benchmark |
压力测试驱动脚本存储的目录 |
tuner/benchmark/sysbench.py |
sysbench驱动脚本 |
tuner/benchmark/template.py |
压力测试驱动脚本的模板 |
tuner/benchmark/tpcc.py |
TPC-C驱动脚本 |
tuner/benchmark/tpcds.py |
TPC-DS驱动脚本 |
tuner/benchmark/tpch.py |
TPC-H驱动脚本 |
tuner/character.py |
获取系统workload特征的模块 |
tuner/db_agent.py |
封装数据库操作的模块 |
tuner/db_env.py |
离线调优流程控制模块 |
tuner/env.py |
保持与强化学习gym库的接口一致 |
tuner/exceptions.py |
定义常见异常 |
tuner/executor.py |
封装shell连接 |
knobs/knob.py |
定义参数相关类 |
knobs/main.py |
入口文件 |
knobs/recommend.py |
定义参数推荐的算法与规则 |
knobs/recorder.py |
记录调优过程的模块 |
knobs/utils.py |
定义一些工具函数 |
knobs/xtuner.conf |
默认配置文件 |
knobs/xtuner.py |
调优主流程控制模块 |
knobs/README.md |
安装脚本 |