openGauss源码解析(165)

openGauss源码解析:AI技术(12)

8.2.6 对X-Tuner的二次开发

在8.2.3 X-Tuner的调优策略小节和8.2.5使用示例小节中已经展示了X-Tuner各个模块的作用,从结构上看,可以针对下述几个部分进行扩展。

(1) benchmark模块:可以通过benchmark/template.py模板文件的内容,自定义与生产环境类似的workload,并启动离线调优。
(2) 离线参数推荐规则:可以通过修改recommend.py文件,对openGaussKnobAdvisor类进行扩展或修改,即可增加或修改待调优的参数。
(3) 离线调优算法模块:可以通过增加新的优化算法来寻找最优的参数配置,在xtuner.py文件中修改对应流程。

8.2.7 X-Tuner的演进路线

对于离线参数调优过程来说,运行时间长、迭代次数多是该过程缓慢的主要原因,因此,找到一种高效的参数评估方法就显得尤为重要了。常见的可替代方案包括DBA经验估计,explain代价估计等。但是,上述方法都只能覆盖部分数据库参数,且误差往往不可控。未来,openGauss将聚焦通过算法手段高效评估数据库性能,实现一套完整的性能评估模型。

8.3 慢SQL发现

基于历史SQL语句信息进行模型训练,并用训练好的模型进行SQL语句的预测,利用预测结果判断该SQL语句是否是潜在的慢SQL。当发现潜在的慢SQL后,开发者便可以进行针对性优化或者风险评估,以防业务上线后发生问题。

8.3.1 慢SQL发现的功能

上线业务预检测:上线一批新业务前,使用SQL诊断功能评估此次上线业务的预估执行时长,便于用户参考是否应该修改上线业务。

workload分析:能够对现有workload进行分析,将现有workload自动分为若干类别,并依次分析此类别SQL语句执行代价,以及各个类别之间的相似程度。

posted @ 2024-04-30 11:18  openGauss-bot  阅读(1)  评论(0编辑  收藏  举报