测试目的
对比 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 实例,一共三台。
测试结果
v4.0.0-rc 比 v3.0.8 在 TPC-C 性能上,提升了 40%。