【openGauss 分布式方案性能】经验分享
收藏回复举报
【openGauss 分布式方案性能】经验分享
新人帖
发表于2022-11-01 18:09:55
0 查看

本人有幸参与了 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 

压测示例

此 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

参数化构建

本帖最后由 匿名用户2023/11/17 15:14:07 编辑

我要发帖子