你正在查看已归档的 TiDB 文档,该文档不再更新。

查看最新 LTS 版本文档

TiDB TPC-C 性能对比测试报告 - v5.0 对比 v4.0

测试目的

测试对比 TiDB v5.0 和 v4.0 OLTP 场景下的性能。

测试环境 (AWS EC2)

硬件配置

服务类型EC2 类型实例数
PDm5.xlarge3
TiKVi3.4xlarge3
TiDBc5.4xlarge3
TPC-Cc5.9xlarge1

软件版本

服务类型软件版本
PD4.0、5.0
TiDB4.0、5.0
TiKV4.0、5.0
BenchmarkSQL

配置参数

TiDB v4.0 参数配置

log.level: "error" performance.max-procs: 20 prepared-plan-cache.enabled: true tikv-client.max-batch-wait-time: 2000000

TiKV v4.0 参数配置

pessimistic-txn.pipelined: true raftdb.allow-concurrent-memtable-write: true raftdb.max-background-jobs: 4 raftstore.apply-max-batch-size: 2048 raftstore.apply-pool-size: 3 raftstore.store-max-batch-size: 2048 raftstore.store-pool-size: 3 readpool.storage.normal-concurrency: 10 readpool.unified.max-thread-count: 20 readpool.unified.min-thread-count: 5 rocksdb.max-background-jobs: 8 server.grpc-concurrency: 6 storage.scheduler-worker-pool-size: 20

TiDB v5.0 参数配置

log.level: "error" performance.max-procs: 20 prepared-plan-cache.enabled: true tikv-client.max-batch-wait-time: 2000000

TiKV v5.0 参数配置

pessimistic-txn.pipelined: true raftdb.allow-concurrent-memtable-write: true raftdb.max-background-jobs: 4 raftstore.apply-max-batch-size: 2048 raftstore.apply-pool-size: 3 raftstore.store-max-batch-size: 2048 raftstore.store-pool-size: 3 readpool.storage.normal-concurrency: 10 readpool.unified.max-thread-count: 20 readpool.unified.min-thread-count: 5 rocksdb.max-background-jobs: 8 server.grpc-concurrency: 6 storage.scheduler-worker-pool-size: 20 server.enable-request-batch: false

TiDB v4.0 全局变量配置

set global tidb_hashagg_final_concurrency=1; set global tidb_hashagg_partial_concurrency=1;

TiDB v5.0 全局变量配置

set global tidb_hashagg_final_concurrency=1; set global tidb_hashagg_partial_concurrency=1; set global tidb_enable_async_commit = 1; set global tidb_enable_1pc = 1; set global tidb_guarantee_linearizability = 0; set global tidb_enable_clustered_index = 1;

测试方案

  1. 通过 TiUP 部署 TiDB v5.0 和 v4.0。

  2. 通过 BenchmarkSQL 导入 TPC-C 5000 Warehouse 数据。

    1. 编译 BenchmarkSQL:
```bash git clone https://github.com/pingcap/benchmarksql && cd benchmarksql && ant ``` 2. 进入 `run` 目录,根据实际情况编辑 `props.mysql` 文件,调整 `conn`、`warehouses`、`loadWorkers`、`terminals`、`runMins` 配置项。 3. 运行 `runSQL.sh ./props.mysql sql.mysql/tableCreates.sql` 命令。 4. 运行 `runSQL.sh ./props.mysql sql.mysql/indexCreates.sql` 命令。 5. 运行 MySQL client 并对每个表执行 `analyze table` 语句。
  1. 运行 runBenchmark.sh ./props.mysql 命令。

  2. 从结果中提取 New Order 的 tpmC 的数据。

测试结果

v5.0 比 v4.0 在 TPC-C 性能上提升了 36%

TPC-C