Klustron(原KunlunBase) 和 TiDB 的 TPC-C 测试对比
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 隔离级别: