现在有哪些公司或企业使用或者适配了openGauss 数据库?

全局优化算法的流程代码如下:

上述代码描述的是离线调优过程的策略,对于在线调优,则主要是以启发式规则的方法实现的,其主要代码存在于tuner/recommend.py中,此处逻辑大同小异,下面以shared_buffer参数推荐为例:

不同的参数应用的规则都不相同,主要参考数据库的workload特征、硬件环境、当前状态等。即对于AP与TP场景,参数配置是不同的,如果用户没有通过配置文件明确指定场景的类型,则根据character.py文件中定义的workload_type()方法自动判断,获取数据库特征的方法都在character.py文件中定义。

可以通过两种方式运行X-Tuner,一种是直接通过源码运行,另一种则是通过python的setuptools将X-Tuner安装到系统上,而后直接通过gs_xtuner命令调用。下面分别介绍两种运行X-Tuner的方法。

方法一:直接通过源代码运行。

(1) 切换到X-Tuner的代码根目录下,执行下述命令安装所需依赖。

(2) 安装成功后需要添加环境变量PYTHONPATH,然后执行main.py主文件,方法如下:

方法二:将X-Tuner安装到系统中。

使用如下命令直接执行源码根目录中的setup.py文件。

如果python的bin目录被添加到PATH环境变量中,则gs_xtuner命令也可以在任何地方被直接调用。例如,可以通过下述命令获取帮助信息。

2. 参数推荐模式使用示例

在了解如何运行X-Tuner后,可以看一下运行X-Tuner的几种模式,首先介绍一下在线参数推荐模式,执行下述命令,填写对应的数据库连接信息,并输入对应密码后即可获得参数推荐结果。

当然,上面的数据库连接信息比较长,也可以通过json文件的格式传入,某个包含数据库连接信息的json格式文件内容如下:

假设上述文件名为connection.json,则通过下述命令即可使用该文件。

经过几秒钟的诊断,会给出数据库参数配置的诊断信息以及推荐的参数调优列表,结果示例如图8-4所示。

图8-4 参数推荐模式的结果示意图

在图8-4报告中,推荐了该环境上的数据库参数配置,并进行了风险提示。报告同时生成了当前workload的特征信息,其中有几个特征是比较有参考意义的,这些特征的具体获取方法都在character.py文件中可以看到,详细说明如表8-4所示。

产生的临时文件数量,如果该结果大于0,则表明系统使用了临时文件。使用过多的临时文件会导致性能不佳,如果可能的话,需要提高work_mem参数的配置

数据库作业的查询与修改数据的比例

表明当前workload的AP(analytical processing,分析处理)指数,取值范围是0到10,该数值越大,表明越偏向于数据分析与检索

根据数据库统计信息,推测当前负载类型,分为AP、TP以及HTAP三种类型

数据库在checkpoint时,平均每次同步刷新数据到磁盘的时长,单位是毫秒

平均每个CPU核心在1分钟、5分钟以及15分钟内的负载。一般地,该数值在1左右表明当前硬件比较匹配workload、在3左右表明运行当前作业压力比较大,大于5则表示当前硬件环境运行该workload压力过大(此时一般建议减少负载或升级硬件)

3. 训练模式使用示例

在使用训练和调优模式前,用户需要先导入benchmark所需数据并检查benchmark能否正常跑通,并备份好此时的数据库参数,查询当前数据库参数的SQL语句如下所示:

训练模式和调优模式的过程类似,区别仅在于对配置文件的配置。X-Tuner模式使用的配置文件路径可以通过–help命令获取,代码如下所示:

通过help命令可以找到默认读取的配置文件路径,如果希望指定别的读取路径,则可以通过–x参数来完成。该配置文件的各个配置项的含义如表8-5所示。

表8-5 配置文件参数说明

可选,调优结果的保存路径

调优中间信息的记录日志存放路径

调优模式下采取哪种策略

是否在每一个迭代轮次中进行drop cache,drop cache可以使benchmark跑分结果更加稳定。若启动该参数,则需要将登录的系统用户加入到/etc/sudoers列表中,同时为其增加NOPASSWD权限(由于该权限可能过高,建议临时启用该权限,调优结束后关闭)

数据库使用总内存的惩罚系数,用于防止通过无限量占用内存而换取的性能表现。该数值越大,惩罚力度越大

RL模型保存或读取路径,包括保存目录名与文件名前缀。在train模式下该路径用于保存模型,在tune模式下则用于读取模型文件

每个回合的最大迭代步数

使用RL算法进行调优模式的回合数

全局搜索算法的最大迭代轮次(并非确定数值,可能会根据实际情况多跑若干轮)

PSO算法下的粒子数量

benchmark脚本的存储路径,若没有配置该选项,则使用benchmark驱动脚本中的配置

启动benchmark脚本的命令,若没有配置该选项,则使用benchmark驱动脚本中的配置

用户指定的当前workload所属的类型

训练模式是用来训练深度强化学习模型的,与该模式有关的配置项有以下几个方面。

(1) rl_algorithm:用于训练强化学习模型的算法,当前支持设置为ddpg。

(2) rl_model_path:训练后生成的强化学习模型保存路径。

(3) rl_steps:训练过程的最大迭代步数。

(5) scenario:明确指定的workload类型,如果为auto则为自动判断。在不同模式下,推荐的调优参数列表也不一样。

(6) tuning_list:用户指定需要调哪些参数,如果不指定,则根据workload类型自动推荐应该调的参数列表。如需指定,则tuning_list表示调优列表文件的路径。调优列表配置文件的文件内容示例如下所示:

待上述配置项配置完成后,可以通过下述命令启动训练:

训练完成后,会在配置项rl_model_path指定的目录中生成模型文件。

4. 调优模式使用示例

tune模式支持多种算法,包括基于强化学习的DDPG算法、基于全局搜索算法(global optimization algorithm,GOP)算法的贝叶斯优化算法以及PSO。

与tune模式相关的配置项如下。

(1) tune_strategy:指定选择哪种算法进行调优,支持RL、GOP以及auto(自动选择)。若该参数设置为RL,则RL相关的配置项生效。除train模式下生效的配置项外,test_episode配置项也生效,该配置项表明调优过程的最大回合数,该参数直接影响了调优过程的执行时间(一般地,数值越大越耗时)。

(3) max_iterations:最大迭代轮次,数值越高搜索时间越长,效果往往越好。

(5) 待上述配置项配置完成后,可以通过下述命令启动调优。

训练、调优过程的日志保存在配置文件指定的目录中,运行事件的记录日志文件名为opengauss-tuner.log,调优参数中间结果保存在名为recorder.log的文件中。在调优过程中,可以通过tail –f命令观察详细的运行过程。

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

(2) 离线参数推荐规则:可以通过修改recommend.py文件,对openGaussKnobAdvisor类进行扩展或修改,即可增加或修改待调优的参数。

(3) 离线调优算法模块:可以通过增加新的优化算法来寻找最优的参数配置,在xtuner.py文件中修改对应流程。

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

感谢大家学习第8章 AI技术中“8.1 概述”及“8.2 自调优”的精彩内容,下一篇我们开启“8.3 慢SQL发现”的相关内容的介绍。

}

我要回帖

更多关于 中外合资经营企业法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信