跳至主要內容

Klustron(原KunlunBase) 和 TiDB 的 TPC-C 测试对比

Klustron大约 3 分钟

Klustron(原KunlunBase) 和 TiDB 的 TPC-C 测试对比

Klustron 团队以友好交流学习借鉴的宗旨,在每个版本发布后我们会拿Klustron 与当前业界其他几个常见的分布式数据库系统做一系列性能对比,供业内人士参考借鉴。

我们近期会陆续发布各个产品的对比结果。欢迎大家阅读对比和亲自验证,如有任何疑问请在我司官网论坛提问。

具体来说,我们会用 Klustron 与 TiDB, CockroachDB, OceanBase 对比 sysbench, TPC-C, TPC-H, TPC-DS 的性能,与 greenplum 对比 TPC-H 和 TPC-DS 的性能。

同时,我们会用 Klustron-storage(也就是Klustron的存储节点)与Percona-MySQL, PostgreSQL, OpenGauss 做 sysbench 和 TPC-C 的性能对比。欢迎大家持续关注、转发、评论。

KunlunBase 和 TiDB 的 TPC-C 测试对比

服务器信息

本次测试使用了四台服务器,其中 132、134 、140 三台服务器用于安装部署集群,126 用于跑 go-tpc 的客户端。

集群部署情况

Klustron

  • Klustron 版本为1.1.1;

  • 在1 32、134、140 三台服务器上各部署一个计算节点和一个元数据节点;

  • 在132、134、140三台服务器上部署两个存储分片:

    • 132 和 134 都各有一个存储分片主节点;

    • 132 上有一个 134 为主的存储分片备节点;

    • 134 上有一个 132 为主的存储分片备节点;

    • 140 有两个存储分片的备节点。

TiDB

  • 使用 tiup 在132、134、140上各部署一个Tikv、Tidb、pd。

  • 部署的 TiDB 集群版本为6.1.2

集群配置参数

Klustron

innodb_buffer_pool_size :10737418240
enable_fullsync : true
sync_binlog : 1
innodb_flush_log_at_trx_commit = 1

TiDB

server_configs:
  tidb:
    log.slow-threshold: 300
    log.level: "error"
  tikv:
    readpool.storage.use-unified-pool: false
    log-level: "error"
    rocksdb.defaultcf.block-cache-size: "30GB"
    rocksdb.writecf.block-cache-size: "24GB"
    storage.block-cache.capacity: "30GB"
    readpool.coprocessor.use-unified-pool: true
  pd:
    schedule.leader-schedule-limit: 4
    schedule.region-schedule-limit: 2048
    schedule.replica-schedule-limit: 64

测试使用的命令

Klustron

灌 100 个 warehouse:

./go-tpc tpcc --conn-params sslmode=disable --db postgres --driver postgres \
--password abc --port 35001 --threads 10 --user abc --warehouses 100 --host 192.168.0.140 prepare

使用 RC 隔离级别运行测试:

./go-tpc tpcc --conn-params sslmode=disable --db postgres --driver postgres \
--password abc --port 35001 --threads $i --time 5m --user abc --host 192.168.0.140 \
--isolation 2 --warehouses 100 run > result/$i

使用 RR 隔离级别运行测试:

./go-tpc tpcc --conn-params sslmode=disable --db postgres --driver postgres \
--password abc --port 35001 --threads $i --time 5m --user abc --host 192.168.0.140 \
--isolation 4 --warehouses 100 run > result/$i

TiDB

灌 100 个 warehouse:

./go-tpc tpcc --db tpcc --password root --port 40002 --threads 10 --time 5m \
--user root --host 192.168.0.140 --warehouses 100 prepare

使用 RC 隔离级别运行测试:

./go-tpc tpcc --db tpcc --isolation 2 --password root --port 40002 --threads $i \
--time 5m --user root --host 192.168.0.140 --warehouses 100 run > result/$i

使用 RR 隔离级别运行测试:

./go-tpc tpcc --db tpcc --isolation 4 --password root --port 40002 --threads $i \
--time 5m --user root --host 192.168.0.140 --warehouses 100 run > result/$i

结果

使用的go-tpc版本为v1.12.0,该程序位置在126的 ~/.tiup/components/bench/v1.12.0 上。

在每个测试结束时,会暂停等待3分钟,再进行下一个并发数的测试。

RC 隔离级别:

RR 隔离级别:

END