TiDB v8.5.0 在 TiDB Cloud 上的 TPC-C 性能测试报告
本文提供了 TiDB v8.5.0 版本在 TiDB Cloud Dedicated 集群上的 TPC-C 性能测试步骤和结果。本报告也可以作为 TiDB Self-Managed v8.5.0 集群性能的参考。
测试概述
本测试旨在展示 TiDB v8.5.0 在在线事务处理(OLTP)场景下的 TPC-C 性能。
测试环境
TiDB 集群
测试在具有以下设置的 TiDB 集群上进行:
集群类型:TiDB Cloud Dedicated
集群版本:v8.5.0
云服务提供商:AWS (us-west-2)
集群配置:
节点类型 节点规格 节点数量 节点存储 TiDB 16 vCPU, 32 GiB 2 N/A TiKV 16 vCPU, 64 GiB 3 1000 GiB
参数配置
TiKV 参数 prefill-for-recycle 可以使日志回收在初始化后立即生效。本文在启用 prefill-for-recycle 的情况下进行测试:
raft-engine.prefill-for-recycle = true
基准测试执行器
基准测试执行器向 TiDB 集群发送 SQL 查询。在本测试中,其硬件配置如下:
- 机器类型:Amazon EC2 (us-west-2)
- 实例类型:c6a.2xlarge
测试步骤
本节介绍如何逐步执行 TPC-C 性能测试。
在 TiDB Cloud 控制台中,创建一个满足测试环境要求的 TiDB Cloud Dedicated 集群。
更多信息,请参见创建 TiDB Cloud Dedicated 集群。
在基准测试执行器上,连接到新创建的集群并创建名为
tpcc的数据库。要连接到集群,请参见通过专用连接点连接到 TiDB Cloud Dedicated。
要创建
tpcc数据库,执行以下 SQL 语句:CREATE DATABASE tpcc;将 TPC-C 数据加载到
tpcc数据库。本文中的测试基于 go-tpc 实现。你可以使用以下命令下载测试程序:
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/pingcap/go-tpc/master/install.sh | sh运行以下
go-tpc tpcc命令,向tpcc数据库导入 1,000 个仓库。将${HOST}、${THREAD}和${PASSWORD}替换为你的实际值。本文使用${THREAD}值为50、100和200进行三次测试。go-tpc tpcc --host ${HOST} --warehouses 1000 prepare -P 4000 -D tpcc -T ${THREAD} --time 2h0m0s -p ${PASSWORD} --ignore-error
为确保 TiDB 优化器能生成最优执行计划,在进行 TPC-C 测试之前执行以下 SQL 语句收集统计信息:
ANALYZE TABLE customer; ANALYZE TABLE district; ANALYZE TABLE history; ANALYZE TABLE item; ANALYZE TABLE new_order; ANALYZE TABLE order_line; ANALYZE TABLE orders; ANALYZE TABLE stock; ANALYZE TABLE warehouse;为加快统计信息收集速度,在收集前执行以下 SQL 语句:
SET tidb_build_stats_concurrency=16; SET tidb_distsql_scan_concurrency=16; SET tidb_index_serial_scan_concurrency=16;运行以下
go-tpc tpcc命令对 TiDB Cloud Dedicated 集群进行压力测试。每个并发测试持续两小时。go-tpc tpcc --host ${HOST} -P 4000 --warehouses 1000 run -D tpcc -T ${THREAD} --time 2h0m0s -p ${PASSWORD} --ignore-error从结果中提取
NEW_ORDER的 tpmC 数据。TPC-C 使用 tpmC(每分钟事务数)来衡量最大限定吞吐量(MQTh,Max Qualified Throughput)。事务是 NewOrder 事务,最终的衡量单位是每分钟处理的新订单数。
测试结果
v8.5.0 在测试环境中的 TPC-C 性能如下:
| 线程数 | v8.5.0 tpmC |
|---|---|
| 50 | 43,146 |
| 100 | 73,875 |
| 200 | 103,395 |
