鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

测试PostgreSQL

  1. 进入“/home”目录,将“benchmarksql5.0-for-mysql”目录下的所有文件和子目录复制到“benchmarksql5.0-for-postgresql”。
    1
    2
    cd /home
    cp -r /home/benchmarksql5.0-for-mysql /home/benchmarksql5.0-for-postgresql
    
  2. 在已部署好的PostgreSQL数据库创建数据库用户tpcc和数据库tpcc,并赋予tpcc用户超级权限。
    1
    create database tpcc;
    
  3. 修改配置文件。
    1. 进入BenchmarkSQL的run目录,并打开配置文件。
      1
      2
      3
      cd /home/benchmarksql5.0-for-postgresql/run/
      cp props.pg my_postgres.properties
      vi my_postgres.properties
      
    2. 修改配置文件中的表1表2参数,其他部分可使用默认值。
      表1 数据库信息参数

      参数名称

      参数值

      参数说明

      conn

      localhost

      表示数据库服务器地址,以实际情况为准。

      5432

      表示PostgreSQL数据库端口,以实际情况为准。

      postgres

      表示数据库名称,以实际情况为准,本例中为tpcc。

      user

      -

      修改为创建数据库用户的账号,以实际情况为准。

      password

      -

      修改为创建数据库用户的密码,以实际情况为准。

      warehouses

      -

      初始化加载数据时,需要创建多少仓库的数据。例如输入100,则创建100仓库数据,每一个数据仓库的数据量大概是76823.04KB,可有少量的上下浮动,因为测试过程中将会插入或删除现有记录。

      loadworker

      -

      表示加载数据时,每次提交进程数。

      表2 程序执行的场景参数

      参数名称

      参数说明

      terminals

      终端数量,指同时有多少终端并发执行,表示并发程度。

      runTxnsPerTerminal

      每分钟每个终端执行的事务数。

      runMins

      执行多少分钟。

      limitTnxsPermin

      每分钟执行的事务总数。

      terminalWarehouseFixed

      用于指定终端和仓库的绑定模式,设置为true时可以运行4.x兼容模式,意思为每个终端都有一个固定的仓库。设置为false时可以均匀的使用数据库整体配置。

      runMins和runTxnsPerTerminal这两个参数指定了两种运行方式,前者是按照指定运行时间执行,以时间为标准;后者以指定每个终端的事务数为标准执行。两者不能同时生效,必须有一个设定为0。

  4. 初始化数据。
    1. 在run目录下执行命令给文件赋予可执行权限。
      1
      chmod 777 *.sh
      

      如果已经赋予相关权限,不用重复执行当前步骤。

    2. 加载数据。
      1
      ./runDatabaseBuild.sh my_postgres.properties
      

      创建并初始化表9个表(分别为warehouse,Stock,Item,Order-Line,New-Order,History,District,Customer和Order)和1个配置表。

  5. 运行BenchmarkSQL程序。
    1
    ./runBenchmark.sh my_postgres.properties
    

    执行结束后,取tpmC (NewOrders)的值作为测试指标。

    在数据库性能测试中,tpmC (NewOrders)是一个常用的性能指标,它衡量了在每分钟创建订单的事务数。tpmC (NewOrders)值越大,说明数据库服务器的交易处理能力越强,从而整体性能越高。

  6. 删除数据库和数据。
    1
    ./runDatabaseDestroy.sh my_postgres.properties