PolarDB for PostgreSQLPolarDB for PostgreSQL
  • 架构简介
  • 快速部署
  • 进阶部署
  • 共享存储设备的准备

    • 阿里云 ECS + ESSD 云盘存储
  • 文件系统的准备

    • 格式化并挂载 PFS
  • 部署 PolarDB-PG 数据库

    • 基于单机文件系统部署
    • 基于 PFS 文件系统部署
  • 更多部署方式

    • 购买商业版
  • 日常运维

    • 备份恢复
    • 共享存储在线扩容
    • 计算节点扩缩容
    • Replica 节点在线 Promote
  • 问题诊断

    • CPU 使用率高的排查方法
  • 性能测试

    • TPC-C 测试
    • TPC-H 测试
  • 功能分类

    • 高性能
    • 高可用
    • 安全
    • 弹性跨机并行查询(ePQ)
    • 第三方插件
  • PolarDB for PostgreSQL

    • 特性总览
    • HTAP 架构详解
    • 缓冲区管理
    • DDL 同步
    • LogIndex
  • PostgreSQL

    • ANALYZE 源码解读
    • Sequence 使用、原理全面解析
  • 基于 Docker 容器开发
  • 定制开发环境
  • 贡献代码
  • 贡献文档
  • 编码风格
  • 问题报告
  • English
  • 简体中文
GitHub
  • 架构简介
  • 快速部署
  • 进阶部署
  • 共享存储设备的准备

    • 阿里云 ECS + ESSD 云盘存储
  • 文件系统的准备

    • 格式化并挂载 PFS
  • 部署 PolarDB-PG 数据库

    • 基于单机文件系统部署
    • 基于 PFS 文件系统部署
  • 更多部署方式

    • 购买商业版
  • 日常运维

    • 备份恢复
    • 共享存储在线扩容
    • 计算节点扩缩容
    • Replica 节点在线 Promote
  • 问题诊断

    • CPU 使用率高的排查方法
  • 性能测试

    • TPC-C 测试
    • TPC-H 测试
  • 功能分类

    • 高性能
    • 高可用
    • 安全
    • 弹性跨机并行查询(ePQ)
    • 第三方插件
  • PolarDB for PostgreSQL

    • 特性总览
    • HTAP 架构详解
    • 缓冲区管理
    • DDL 同步
    • LogIndex
  • PostgreSQL

    • ANALYZE 源码解读
    • Sequence 使用、原理全面解析
  • 基于 Docker 容器开发
  • 定制开发环境
  • 贡献代码
  • 贡献文档
  • 编码风格
  • 问题报告
  • English
  • 简体中文
GitHub
  • 使用与运维

    • 日常运维

      • 备份恢复
      • 共享存储在线扩容
      • 计算节点扩缩容
      • Replica 节点在线 Promote
    • 问题诊断

      • CPU 使用率高的排查方法
    • 性能测试

      • TPC-C 测试
      • TPC-H 测试

TPC-C 测试

棠羽

2023/04/11

15 min

本文将引导您对 PolarDB for PostgreSQL 进行 TPC-C 测试。

  • 背景
  • 测试步骤
    • 部署 PolarDB-PG
    • 安装测试工具 BenchmarkSQL
    • TPC-C 配置
    • 导入数据
    • 预热数据
    • 正式测试
    • 查看结果

背景

TPC 是一系列事务处理和数据库基准测试的规范。其中 TPC-C (Transaction Processing Performance Council) 是针对 OLTP 的基准测试模型。TPC-C 测试模型给基准测试提供了一种统一的测试标准,可以大体观察出数据库服务稳定性、性能以及系统性能等一系列问题。对数据库展开 TPC-C 基准性能测试,一方面可以衡量数据库的性能,另一方面可以衡量采用不同硬件软件系统的性价比,是被业内广泛应用并关注的一种测试模型。

测试步骤

部署 PolarDB-PG

参考如下教程部署 PolarDB for PostgreSQL:

  • 快速部署
  • 进阶部署

安装测试工具 BenchmarkSQL

BenchmarkSQL 依赖 Java 运行环境与 Maven 包管理工具,需要预先安装。拉取 BenchmarkSQL 工具源码并进入目录后,通过 mvn 编译工程:

$ git clone https://github.com/pgsql-io/benchmarksql.git
$ cd benchmarksql
$ mvn

编译出的工具位于如下目录中:

$ cd target/run

TPC-C 配置

在编译完毕的工具目录下,将会存在面向不同数据库产品的示例配置:

$ ls | grep sample
sample.firebird.properties
sample.mariadb.properties
sample.oracle.properties
sample.postgresql.properties
sample.transact-sql.properties

其中,sample.postgresql.properties 包含 PostgreSQL 系列数据库的模板参数,可以基于这个模板来修改并自定义配置。参考 BenchmarkSQL 工具的 文档 可以查看关于配置项的详细描述。

配置项包含的配置类型有:

  • JDBC 驱动及连接信息:需要自行配置 PostgreSQL 数据库运行的连接串、用户名、密码等
  • 测试规模参数
  • 测试时间参数
  • 吞吐量参数
  • 事务类型参数

导入数据

使用 runDatabaseBuild.sh 脚本,以配置文件作为参数,产生和导入测试数据:

./runDatabaseBuild.sh sample.postgresql.properties

预热数据

通常,在正式测试前会进行一次数据预热:

./runBenchmark.sh sample.postgresql.properties

正式测试

预热完毕后,再次运行同样的命令进行正式测试:

./runBenchmark.sh sample.postgresql.properties

查看结果

                                          _____ latency (seconds) _____
  TransType              count |   mix % |    mean       max     90th% |    rbk%          errors
+--------------+---------------+---------+---------+---------+---------+---------+---------------+
| NEW_ORDER    |           635 |  44.593 |   0.006 |   0.012 |   0.008 |   1.102 |             0 |
| PAYMENT      |           628 |  44.101 |   0.001 |   0.006 |   0.002 |   0.000 |             0 |
| ORDER_STATUS |            58 |   4.073 |   0.093 |   0.168 |   0.132 |   0.000 |             0 |
| STOCK_LEVEL  |            52 |   3.652 |   0.035 |   0.044 |   0.041 |   0.000 |             0 |
| DELIVERY     |            51 |   3.581 |   0.000 |   0.001 |   0.001 |   0.000 |             0 |
| DELIVERY_BG  |            51 |   0.000 |   0.018 |   0.023 |   0.020 |   0.000 |             0 |
+--------------+---------------+---------+---------+---------+---------+---------+---------------+

Overall NOPM:          635 (98.76% of the theoretical maximum)
Overall TPM:         1,424

另外也有 CSV 形式的结果被保存,从输出日志中可以找到结果存放目录。

在 GitHub 上编辑此页
上次更新:
贡献者: Shijun.Zhou
Next
TPC-H 测试