本人有幸参与了 openGauss 众智计划的以下项目:
*《openGauss 分布式方案 E2E 性能提升》
*《openGauss 分布式方案后端 JDBC 线程池模型优化》
*《openGauss 分布式方案前端 Netty 线程优化》
在参与项目的过程中,积累了一些经验,再次回馈给社区。
【使用 Jenkins 构建自动化流水线作业】
流水线 JOB 展示

构建思路
组网规划
以 1 ShardingSphere-Proxy,1 openGauss 为例

环境前置构建
压测前环境准备
- 服务器优化
- DB 安装
- DB 优化 & 账号、库初始化
- ShardingSphere-Proxy 安装
- BenchmarkSQL 安装
- 压测数据生成
- 压测数据备份
压测启动
- 测试环境资源负载等预检测
- 恢复测试数据
- 启动 DB
- 配置 ShardingSphere-Proxy
- 启动 ShardingSphere-Proxy
- 启动 TPC-C 程序
流水线详情
DB 准备
Proxy 准备 
生成 TPC-C 所需配置文件 
生成压测数据 
备份测试数据 
服务器资源检测 & 优化 
恢复测试数据 & 启动 DB 
压测示例
参数化构建


【使用 Jenkins 构建自动化流水线作业】
流水线 JOB 展示
构建思路
组网规划
以 1 ShardingSphere-Proxy,1 openGauss 为例
环境前置构建
压测前环境准备
压测启动
流水线详情
DB 准备
Proxy 准备 
生成 TPC-C 所需配置文件
生成压测数据
备份测试数据
服务器资源检测 & 优化
恢复测试数据 & 启动 DB
压测示例
此 job 用于每日性能压测 false false DB DB 主机 DB-1 false allCases DB_TYPE 当前支持 MySQL 8.0(8.0.29) opengauss 3.0.0 postgres 14 mysql postgres opengauss DB_VERSION 8.0 14 3.0.0 Proxy Proxy 主机 ucloud_25 false allCases proxy_config 192.168.10.25:3333 false need_recover_data 默认值 0 为需要恢复数据 其余情况为不需要恢复数据 0 不需要 terminals 200 false runMins 60 false warehouse 200 false profiling_duration 180 false DB_VARIABLES 用于启动 DB 时指定相关参数 MySQL 参考 docker run -it --rm mysql:tag --verbose --help openGauss 参数一行一个 key=value eg:password_encryption_type=0 PostgreSQL 参考 https://hub.docker.com/_/postgres eg: -c shared_buffers=256MB -c max_connections=200 false commit_id Proxy 版本 latest false RULES Proxy 配置 Rules eg: rules: [] false need_release_resource 0 不需要 true false false false H 1 * * * true false true false false false false true never true Jenkins please retry a build true true true All {AQAAABAAAAAQ0VKGsMS37UAAtqZvkmBIizzHCP0loo4Yq0g9N8p1DXk=} false false release-check_Proxy & DB release-check_resource_before_test true false false false 0 false false true DB_SERVER ${DB} FAILURE false false release-check_resource_before_test true false false false 0 false false true DB_SERVER ${Proxy} network_card_name=enp7s0f1 false FAILURE false false SUCCESSFUL PARALLEL prepare_db & start db & get proxy prepare_db_data true false false false 0 false false true FAILURE false false get_daily_proxy true false false false 0 false false true FAILURE false false SUCCESSFUL PARALLEL config & start proxy config_proxy_single true false false false 0 false false true FAILURE false false SUCCESSFUL SEQUENTIALLY run run_1p_1d_tpcc true false false false 0 false false true FAILURE false false ALWAYS PARALLEL false参数化构建