最佳实践

 

基准测试

更新时间 2023-09-06

作为关系型数据库,Postgresql 具有所有关系型数据库的特征。

测试模型:TPC-C

本小节主要介绍如何创建 benchmark 数据库,并使用满足 TPC-C 基准测试规范的 PostgreSQL 测试工具 BenchmarkSQL 进行基准测试。

测试方法

步骤一:创建 benchmark 用户和数据库

以 benchmark 5.0 版本为例。

  1. 在安装了 PostgreSQL 的服务器上启动 PostgreSQL 并登录。

  2. 执行以下命令连接数据库,并输入密码:

    psql -h 192.168.1.253 -U postgres -d qingcloud
    
  3. 执行以下命令创建一个用户和密码:

    以用户名为pgtest,密码Zhu88jie为例。

    CREATE USER pgtest WITH ENCRYPTED PASSWORD 'Zhu88jie';
    
  4. 执行以下命令创建名为benchmarksql的用户数据库:

    CREATE DATABASE benchmarksql OWNER benchmarksql;
    
  5. 执行\q退出数据库。

步骤二:创建配置文件

  1. 进入run目录,复制props.pg文件并比编辑产生的副本,设置与基准测试有关的参数,分别执行以下命令:

    $ cd run
    $ cp props.pg my_postgres.properties
    $ vi my_postgres.properties
    

    首次实验时,首先修改下面的参数:

    • “conn=jdbc:postgresql://localhost:5432/postgres”修改为“conn=jdbc:postgresql://192.168.1.253:5432/qingcloud”
    • “ localhost”修改为postgresql所在服务器的ip地址
    • “5432”修改为 postgresql所在的端口
    • “postgres”修改为所测量的数据库
    参数 参数值 描述
    warehouses 1 初始化加载数据时,需要创建多少仓库的数据。每仓库约80MB数据,数量根据实际服务器内存配置。
    loadWorkers 4 表示加载数据时,开启加载数据的进程数,加载速度会随worker数量的增加而有所提升。
    terminals 1 终端数量,指同时有多少终端并发执行,通常设置为CPU线程总数的2~6倍。
    runTxnsPerTerminal 10 每个终端(terminal)运行的固定事务数量,例如:如果该值设置为10,意味着每个terminal运行10个事务,如果有32个终端,那整体运行320个事务后,测试结束。该参数配置为非0值时,下面的runMins参数必须设置为0
    runMins 0 要测试的整体时间,单位为分钟,如果runMins设置为60,那么测试持续1小时候结束。该值设置为非0值时,runTxnsPerTerminal参数必须设置为0。这两个参数不能同时设置为正整数,如果设置其中一个,另一个必须为0,主要区别是runMins定义时间长度来控制测试时间;runTxnsPerTerminal定义事务总数来控制时间。
    limitTnxsPermin 300 限制每分钟执行的事务总数。0表示不限制。
    terminalWarehouseFixed true 用于指定终端和仓库的绑定模式,设置为true时可以运行4.x兼容模式,意思为每个终端都有一个固定的仓库。设置为false时可以均匀的使用数据库整体配置,TPCC规定每个终端都必须有一个绑定的仓库,所以一般使用默认值true。
  2. 执行以下命令开始测试:

    ./runDatabaseDestroy.sh props.pg
    

步骤三:创建模式并初始化数据库

执行以下命令创建数据库基准:

./runDatabaseBuild.sh props.pg

步骤四:执行测试

执行以下命令用 benchmark 内置脚本测试:

./runBenchmark.sh props.pg
这篇文档解决了您的问题吗?
0
0