New-Order:客户输入一笔新的订货交易;
    Payment: 更新客户账户余额以反映其支付状况;
    Delivery: 发货(模拟批处理交易);
    Order-Status: 查询客户最近交易的状态;
    Stock-Level: 查询仓库库存状况,以便能够及时补货。

一、TIDB集群信息及节点配置

1. TIDB集群信息

类别

集群名称

tidb-test

集群版本

v6.3.0

2. TIDB集群节点配置

机器名称

IP

部署角色

TIDB-VM1

192.168.0.126

pd servers, tidb servers, tikv servers, tiflash servers, monitoring servers, grafana servers, alertmanager servers, cdc servers

TIDB-VM2

192.168.0.127

pd servers, tidb servers, tikv servers, tiflash servers, cdc servers

TIDB-VM3

192.168.0.128

pd servers, tidb servers, tikv servers, cdc servers

3.TIDB集群节点硬件配置

集群每个节点配置均相同,如下表所示:

类别

名称

OS

CentOS Linux release 7.9.2009

CPU

2vCPUs, Intel Xeon E3-12xx v2 @2.60GHz

RAM

6GB

DISK

200GB

4. 测试客户端机器信息

测试机器配置与集群的每个节点的机器硬件配置相同。

机器名称

IP

部署角色

TIDB-TEST-VM

10.11.0.126

TIUP TPC-C测试客户端

二、测试方案

  1. 通过单独的测试机器进行性能测试。
  2. 使用tiup工具对TIDB集群进行TPC-C测试。
  3. 通过 tiup工具导入 9 张表,以10 WAREHOUSE为例进行测试,其中:
  1. stock 表中有1,059,392条记录(每个仓库对应 10 万种商品的库存数据)。
  2. district 表中有100条记录(每个仓库为 10 个地区提供服务)。
  3. customer 表中有303,000条记录(每个地区有 3000 个客户)。
  4. item表中有100,000条数据。
  5. order_line表中有3,058,959条数据。
  6. new_order表中有90,140条数据。
  7. history 表中有312,447条记录(每个客户一条交易历史)。
  8. orders 表中有 312,440条记录(每个地区 3000 个订单),并且最后生成的 900 个订单被添加到 new-order 表中,每个订单随机生成 5 ~ 15 条 order-line 记录。
  1. TPC-C使用 tpmC 值 (Transactions per Minute) 来衡量系统最大有效吞吐量 (MQTh, Max Qualified Throughput),其中 Transactions 以 NewOrder Transaction 为准,即最终衡量单位为每分钟处理的新订单数。
  2. 测试完成之后,销毁测试数据。

三、测试步骤

1. 导入数据

tiup bench tpcc \
-H 192.168.0.127 \
-P 4000 \
-D tpcc \
-p 123123 \
-U root \
-T 16 \
--dropdata \
--warehouses 10 prepare

2. 验证数据正确性

tiup bench tpcc \
-H 192.168.0.127 \
-P 4000 \
-D tpcc \
-p 123123 \
-U root \
--warehouses 10 check

3. 运行测试

tiup bench tpcc \
-H 192.168.0.127 \
-P 4000 \
-D tpcc \
-p 123123 \
-U root \
--count 1000000 \
--isolation 4 \
--parts 3 \
--time 3000s \
--output table \
-T 16 \
--warehouses 10 run

参数说明:

-H, --host strings          Database host (default [127.0.0.1])\

-P, --port ints             Database port (default [4000])

-D, --db string             Database name (default "test")

-p, --password string       Database password

-U, --user string           Database user (default "root")

-T, --threads int           Thread concurrency (default 1)

--count int             Total execution count, 0 means infinite

--isolation int         Isolation Level 0: Default, 1: ReadUncommitted,

                                      2: ReadCommitted, 3: WriteCommitted,

                                      4: RepeatableRead, 5: Snapshot,

                                      6: Serializable, 7: Linerizable

--parts int            Number to partition warehouses (default 1)

--time duration        Total execution time (default 2562047h47m16.854775807s)

--output string         output style, valid values can be { plain | table | json }

(default "plain")

--warehouses int       Number of warehouses (default 10)

4. 测试完成之后,验证数据正确性

tiup bench tpcc \
-H 192.168.0.127 \
-P 4000 \
-D tpcc \
-p 123123 \
-U root \
-T 16 \
--warehouses 10 check

5. 清理测试数据

tiup bench tpcc \
-H 10.11.0.127 \
-P 4000 \
-D tpcc \
-p N1s=pH@-nT6F*A5728 \
-U root \
-T 16 \
--warehouses 10 cleanup

四、测试结果

1. 测试结果如下图所示

Current部分只展示一部分:

tidb 性能对比mysql tidb update性能_tidb 性能对比mysql

 2. 测试参数说明

  1. TAKES(S): 事务的运行时间范围,输出数据的时间减去开始测试时间。
  2. COUNT:   该段时间内完成的事务数。
  3. TPM: 流量指标(tpmC, transactions per minute), 每分钟处理的交易量。
  4. SUM(MS):  事务的请求总用时(ms)。
  5. AVG(MS):  事务的请求平均用时(ms)。
  6. 50TH(MS):  50%事务的请求用时(ms)范围。
  7. 90TH (MS):  90%事务的请求用时(ms)范围。
  8. 95TH (MS):  95%事务的请求用时(ms)范围。
  9. 99TH (MS):  99%事务的请求用时(ms)范围。
  10. 99.9TH (MS): 99.9%事务的请求用时(ms)范围。
  11. MAX(MS):  事务的请求最大用时(ms)。
  12. TPMC: 流量指标(tpmC, transactions per minute, C 指 TPC 中的 C 基准程序):每分钟可以处理的 New-Order 交易的数量。
  13. TPMTOTAL: 每分钟可以处理的全部交易的数量。
  14. EFFICIENCY: efficiency = 100 * tpmC / (specWarehouseFactor * Warehouses数量) , specWarehouseFactor 为每个 warehouse 提供的理论最大事务数, 等于12.86

3. TIDB集群监控指标

 3.1 CPU,内存,磁盘等负载

 

tidb 性能对比mysql tidb update性能_数据_02

 3.2 SQL数量

tidb 性能对比mysql tidb update性能_tidb_03

3.3 数据库时间

tidb 性能对比mysql tidb update性能_Database_04