Important

You are viewing the documentation of TiDB v6.0 (DMR). PingCAP does not provide bug fixes for v6.0. Any bugs will be fixed in future releases.

For general purposes, please use the latest LTS version of the TiDB database.

TiDB TPC-C Performance Test Report -- v4.0 vs. v3.0

Test purpose

This test aims to compare the TPC-C performance of TiDB 4.0 and TiDB 3.0 in the Online Transactional Processing (OLTP) scenario.

Test environment (AWS EC2)

Hardware configuration

Service typeEC2 typeInstance count
PDm5.xlarge3
TiKVi3.4xlarge3
TiDBc5.4xlarge3
TPC-Cm5.4xlarge1

Software version

Service typeSoftware version
PD3.0 and 4.0
TiDB3.0 and 4.0
TiKV3.0 and 4.0
BenchmarkSQLNone

Parameter configuration

TiDB v3.0 configuration

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

TiKV v3.0 configuration

storage.scheduler-worker-pool-size: 5
raftstore.store-pool-size: 3
raftstore.apply-pool-size: 3
rocksdb.max-background-jobs: 3
raftdb.max-background-jobs: 3
raftdb.allow-concurrent-memtable-write: true
server.grpc-concurrency: 6
readpool.storage.normal-concurrency: 10
readpool.coprocessor.normal-concurrency: 5

TiDB v4.0 configuration

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

TiKV v4.0 configuration

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

Global variable configuration

set global tidb_hashagg_final_concurrency=1;
set global tidb_hashagg_partial_concurrency=1;
set global tidb_disable_txn_auto_retry=0;

Test plan

  1. Deploy TiDB v4.0 and v3.0 using TiUP.

  2. Use BenchmarkSQL to import the TPC-C 5000 Warehouse data.

    1. Compile BenchmarkSQL:

      git clone https://github.com/pingcap/benchmarksql && cd benchmarksql && ant
      
    2. Enter the run directory, edit the props.mysql file according to the actual situation, and modify the conn, warehouses, loadWorkers, terminals, and runMins configuration items.

    3. Execute the runSQL.sh ./props.mysql sql.mysql/tableCreates.sql command.

    4. Execute the runSQL.sh ./props.mysql sql.mysql/indexCreates.sql command.

    5. Run MySQL client and execute the analyze table statement on every table.

  3. Execute the runBenchmark.sh ./props.mysql command.

  4. Extract the tpmC data of New Order from the result.

Test result

According to the test statistics, the TPC-C performance of TiDB v4.0 has increased by 50% compared with that of TiDB v3.0.

TPC-C

Was this page helpful?