TPC-C 性能对比 - v4.0 对比 v3.0

测试目的

对比 TiDB 4.0 版本和 3.0 版本的 TPC-C 性能表现。

测试版本、时间、地点

TiDB 版本:v4.0.0-rc vs. v3.0.8

时间:2020 年 4 月

地点:北京

测试环境

AWS 机器:

类别 机型 数量 vCPUs
TiKV i3.4xlarge 3 16
TiDB c5.4xlarge 2 16
PD m5.xlarge 3 4

本文使用开源的 BenchmarkSQL 5.0 作为 TPC-C 测试工具并添加对 MySQL 协议支持。可以通过以下命令下载测试程序:

git clone -b 5.0-mysql-support-opt https://github.com/pingcap/benchmarksql.git

测试方案

使用 BenchmarkSQL 向集群导入 5000 warehouse 的数据。通过 HAProxy 代理,分别以递增并发数向集群发送请求,单次并发测试时间 10 分钟。

TiDB 版本信息

v4.0.0-rc

组件 GitHash
TiDB 79db9e30ab8f98ac07c8ae55c66dfecc24b43d56
TiKV f45d0c963df3ee4b1011caf5eb146cacd1fbbad8
PD 6f06805f3b0070107fcb4af68b2fc224dee0714d

v3.0.8

组件 GitHash
TiDB 8f13cf1449bd8903ff465a4f12ed89ecbac858a4
TiKV 0d3168cfd8224fbc48a07796df83ddac0fbcbf46
PD 456c42b8b0955b33426b58054e43b771801a74d0

TiDB 参数配置

[log]
level = "error"
[performance]
max-procs = 20
[prepared_plan_cache]
enabled = true

TiKV 参数配置

[readpool]
unify-read-pool = true
[readpool.unified]
min-thread-count = 5
max-thread-count = 6
[readpool.storage]

[readpool.coprocessor]
[storage]
scheduler-worker-pool-size = 3
[raftstore]
store-pool-size = 3
[rocksdb]
max-background-jobs = 3
wal-dir = ""
[raftdb]
max-background-jobs = 3
allow-concurrent-memtable-write = true
[server]
request-batch-enable-cross-command = false
[pessimistic-txn]
pipelined = true

集群拓扑

  • 每台 i3.4xlarge 上部署一个 TiKV 实例,一共三台。
  • 每台 c5.4xlarge 部署一个 TiDB 实例,一共两台。
  • 每台 m5.xlarge 部署一个 PD 实例,一共三台。

测试结果

tpcc

v4.0.0-rc 比 v3.0.8 在 TPC-C 性能上,提升了 40%