📣
TiDB Cloud Essential 开放公测中。此页面由 AI 自动翻译,英文原文请见此处。

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)

  • 集群配置:

    节点类型节点规格节点数量节点存储
    TiDB16 vCPU, 32 GiB2N/A
    TiKV16 vCPU, 64 GiB31000 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 性能测试。

  1. TiDB Cloud 控制台中,创建一个满足测试环境要求的 TiDB Cloud Dedicated 集群。

    更多信息,请参见创建 TiDB Cloud Dedicated 集群

  2. 在基准测试执行器上,连接到新创建的集群并创建名为 tpcc 的数据库。

    要连接到集群,请参见通过专用连接点连接到 TiDB Cloud Dedicated

    要创建 tpcc 数据库,执行以下 SQL 语句:

    CREATE DATABASE tpcc;
  3. 将 TPC-C 数据加载到 tpcc 数据库。

    1. 本文中的测试基于 go-tpc 实现。你可以使用以下命令下载测试程序:

      curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/pingcap/go-tpc/master/install.sh | sh
    2. 运行以下 go-tpc tpcc 命令,向 tpcc 数据库导入 1,000 个仓库。将 ${HOST}${THREAD}${PASSWORD} 替换为你的实际值。本文使用 ${THREAD} 值为 50100200 进行三次测试。

      go-tpc tpcc --host ${HOST} --warehouses 1000 prepare -P 4000 -D tpcc -T ${THREAD} --time 2h0m0s -p ${PASSWORD} --ignore-error
  4. 为确保 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;
  5. 运行以下 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
  6. 从结果中提取 NEW_ORDER 的 tpmC 数据。

    TPC-C 使用 tpmC(每分钟事务数)来衡量最大限定吞吐量(MQTh,Max Qualified Throughput)。事务是 NewOrder 事务,最终的衡量单位是每分钟处理的新订单数。

测试结果

v8.5.0 在测试环境中的 TPC-C 性能如下:

线程数v8.5.0 tpmC
5043,146
10073,875
200103,395

TPC-C

文档内容是否有帮助?