openGauss源码解析(162)
openGauss源码解析:AI技术(9)
8.2.5 使用示例
1. 运行源码的方法
可以通过两种方式运行X-Tuner,一种是直接通过源码运行,另一种则是通过python的setuptools将X-Tuner安装到系统上,而后直接通过gs_xtuner命令调用。下面分别介绍两种运行X-Tuner的方法。
方法一:直接通过源代码运行。
(1) 切换到X-Tuner的代码根目录下,执行下述命令安装所需依赖。
pip install -r requirements.txt
(2) 安装成功后需要添加环境变量PYTHONPATH,然后执行main.py主文件,方法如下:
cd tuner # 切换到main.py文件所在的目录中
export PYTHONPATH='..' # 将上一级目录添加到PYTHONPATH环境变量中,即可寻找到包所在的路径
python main.py --help # 执行相应的功能,此处以获取帮助为例
方法二:将X-Tuner安装到系统中。
使用如下命令直接执行源码根目录中的setup.py文件。
python setup.py install
如果python的bin目录被添加到PATH环境变量中,则gs_xtuner命令也可以在任何地方被直接调用。例如,可以通过下述命令获取帮助信息。
gs_xtuner --help
2. 参数推荐模式使用示例
在了解如何运行X-Tuner后,可以看一下运行X-Tuner的几种模式,首先介绍一下在线参数推荐模式,执行下述命令,填写对应的数据库连接信息,并输入对应密码后即可获得参数推荐结果。
gs_xtuner recommend --db-name opengauss --db-user omm --port 5678 --host 192.168.1.100 --host-user omm
当然,上面的数据库连接信息比较长,也可以通过json文件的格式传入,某个包含数据库连接信息的json格式文件内容如下:
{
"db_name": "opengauss", # 数据库名
"db_user": "omm", # 登录到数据库上的用户名
"host": "127.0.0.1", # 数据库宿主机的IP地址
"host_user": "omm", # 登录到数据库宿主机的用户名
"port": 5432, # 数据库的侦听端口号
"ssh_port": 22 # 数据库宿主机的SSH侦听端口号
}
假设上述文件名为connection.json,则通过下述命令即可使用该文件。
gs_xtuner recommend –f connection.json
经过几秒钟的诊断,会给出数据库参数配置的诊断信息以及推荐的参数调优列表,结果示例如图8-4所示。
图8-4 参数推荐模式的结果示意图
在图8-4报告中,推荐了该环境上的数据库参数配置,并进行了风险提示。报告同时生成了当前workload的特征信息,其中有几个特征是比较有参考意义的,这些特征的具体获取方法都在character.py文件中可以看到,详细说明如表8-4所示。
表8-4 workload的特征信息说明
特征名称 |
特征说明 |
temp_file_size |
产生的临时文件数量,如果该结果大于0,则表明系统使用了临时文件。使用过多的临时文件会导致性能不佳,如果可能的话,需要提高work_mem参数的配置 |
cache_hit_rate |
shared_buffer的缓存命中率,表明当前workload使用缓存的效率 |
read_write_ratio |
数据库作业的读写比例 |
search_modify_ratio |
数据库作业的查询与修改数据的比例 |
ap_index |
表明当前workload的AP(analytical processing,分析处理)指数,取值范围是0到10,该数值越大,表明越偏向于数据分析与检索 |
workload_type |
根据数据库统计信息,推测当前负载类型,分为AP、TP以及HTAP三种类型 |
checkpoint_avg_sync_time |
数据库在checkpoint时,平均每次同步刷新数据到磁盘的时长,单位是毫秒 |
load_average |
平均每个CPU核心在1分钟、5分钟以及15分钟内的负载。一般地,该数值在1左右表明当前硬件比较匹配workload、在3左右表明运行当前作业压力比较大,大于5则表示当前硬件环境运行该workload压力过大(此时一般建议减少负载或升级硬件) |