TiDB Sysbench 性能测试报告 - v1.0.0

测试目的

测试 TiDB 在 OLTP 场景下的性能以及水平扩展能力。

注意: 不同的测试环境可能使测试结果发生改变。

测试版本、时间、地点

TiDB 版本:v1.0.0
时间:2017 年 10 月 20 日
地点:北京

测试环境

IDC机器

类别 名称
OS linux (CentOS 7.3.1611)
CPU 40 vCPUs, Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
RAM 128GB
DISK 1.5T SSD 2 + Optane SSD 1

Sysbench 版本: 1.0.6

测试脚本: https://github.com/pingcap/tidb-bench/tree/cwen/not_prepared_statement/sysbench

测试方案

场景一:sysbench 标准性能测试

测试表结构

  1. CREATE TABLE `sbtest` (
  2. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  3. `k` int(10) unsigned NOT NULL DEFAULT '0',
  4. `c` char(120) NOT NULL DEFAULT '',
  5. `pad` char(60) NOT NULL DEFAULT '',
  6. PRIMARY KEY (`id`),
  7. KEY `k_1` (`k`)
  8. ) ENGINE=InnoDB

部署方案以及配置参数

  1. // TiDB 部署方案
  2. 172.16.20.4 4*tikv 1*tidb 1*sysbench
  3. 172.16.20.6 4*tikv 1*tidb 1*sysbench
  4. 172.16.20.7 4*tikv 1*tidb 1*sysbench
  5. 172.16.10.8 1*tidb 1*pd 1*sysbench
  6. // 每个物理节点有三块盘:
  7. data3: 2 tikv (Optane SSD)
  8. data2: 1 tikv
  9. data1: 1 tikv
  10. // TiKV 参数配置
  11. sync-log = false
  12. grpc-concurrency = 8
  13. grpc-raft-conn-num = 24
  14. [defaultcf]
  15. block-cache-size = "12GB"
  16. [writecf]
  17. block-cache-size = "5GB"
  18. [raftdb.defaultcf]
  19. block-cache-size = "2GB"
  20. // Mysql 部署方案
  21. // 分别使用半同步复制和异步复制,部署两副本
  22. 172.16.20.4 master
  23. 172.16.20.6 slave
  24. 172.16.20.7 slave
  25. 172.16.10.8 1*sysbench
  26. Mysql version: 5.6.37
  27. // Mysql 参数配置
  28. thread_cache_size = 64
  29. innodb_buffer_pool_size = 64G
  30. innodb_file_per_table = 1
  31. innodb_flush_log_at_trx_commit = 0
  32. datadir = /data3/mysql
  33. max_connections = 2000
  • 标准 oltp 测试
- table count table size sysbench threads tps qps latency(avg / .95)
TiDB 32 100 万 64 * 4 3834 76692 67.04 ms / 110.88 ms
TiDB 32 100 万 128 * 4 4172 83459 124.00 ms / 194.21 ms
TiDB 32 100 万 256 * 4 4577 91547 228.36 ms / 334.02 ms
TiDB 32 500 万 256 * 4 4032 80657 256.62 ms / 443.88 ms
TiDB 32 1000 万 256 * 4 3811 76233 269.46 ms / 505.20 ms
Mysql 32 100 万 64 2392 47845 26.75 ms / 73.13 ms
Mysql 32 100 万 128 2493 49874 51.32 ms / 173.58 ms
Mysql 32 100 万 256 2561 51221 99.95 ms / 287.38 ms
Mysql 32 500 万 256 1902 38045 134.56 ms / 363.18 ms
Mysql 32 1000 万 256 1770 35416 144.55 ms / 383.33 ms

TiDB Sysbench 性能测试报告 - v1.0.0 - 图1

TiDB Sysbench 性能测试报告 - v1.0.0 - 图2

  • 标准 select 测试
- table count table size sysbench threads qps latency(avg / .95)
TiDB 32 100 万 64 * 4 160299 1.61ms / 50.06 ms
TiDB 32 100 万 128 * 4 183347 2.85 ms / 8.66 ms
TiDB 32 100 万 256 * 4 196515 5.42 ms / 14.43 ms
TiDB 32 500 万 256 * 4 187628 5.66 ms / 15.04 ms
TiDB 32 1000 万 256 * 4 187440 5.65 ms / 15.37 ms
Mysql 32 100 万 64 359572 0.18 ms / 0.45 ms
Mysql 32 100 万 128 410426 0.31 ms / 0.74 ms
Mysql 32 100 万 256 396867 0.64 ms / 1.58 ms
Mysql 32 500 万 256 386866 0.66 ms / 1.64 ms
Mysql 32 1000 万 256 388273 0.66 ms / 1.64 ms

TiDB Sysbench 性能测试报告 - v1.0.0 - 图3

TiDB Sysbench 性能测试报告 - v1.0.0 - 图4

  • 标准 insert 测试
- table count table size sysbench threads qps latency(avg / .95)
TiDB 32 100 万 64 * 4 25308 10.12 ms / 25.40 ms
TiDB 32 100 万 128 * 4 28773 17.80 ms / 44.58 ms
TiDB 32 100 万 256 * 4 32641 31.38 ms / 73.47 ms
TiDB 32 500 万 256 * 4 30430 33.65 ms / 79.32 ms
TiDB 32 1000 万 256 * 4 28925 35.41 ms / 78.96 ms
Mysql 32 100 万 64 14806 4.32 ms / 9.39 ms
Mysql 32 100 万 128 14884 8.58 ms / 21.11 ms
Mysql 32 100 万 256 14508 17.64 ms / 44.98 ms
Mysql 32 500 万 256 10593 24.16 ms / 82.96 ms
Mysql 32 1000 万 256 9813 26.08 ms / 94.10 ms

TiDB Sysbench 性能测试报告 - v1.0.0 - 图5

TiDB Sysbench 性能测试报告 - v1.0.0 - 图6

场景二:TiDB 水平扩展能力测试

部署方案以及配置参数

  1. // TiDB 部署方案
  2. 172.16.20.3 4*tikv
  3. 172.16.10.2 1*tidb 1*pd 1*sysbench
  4. 每个物理节点有三块盘:
  5. data3: 2 tikv (Optane SSD)
  6. data2: 1 tikv
  7. data1: 1 tikv
  8. // TiKV 参数配置
  9. sync-log = false
  10. grpc-concurrency = 8
  11. grpc-raft-conn-num = 24
  12. [defaultcf]
  13. block-cache-size = "12GB"
  14. [writecf]
  15. block-cache-size = "5GB"
  16. [raftdb.defaultcf]
  17. block-cache-size = "2GB"
  • 标准 oltp 测试
- table count table size sysbench threads tps qps latency(avg / .95)
1 物理节点 TiDB 32 100 万 256 * 1 2495 49902 102.42 ms / 125.52 ms
2 物理节点 TiDB 32 100 万 256 * 2 5007 100153 102.23 ms / 125.52 ms
4 物理节点 TiDB 32 100 万 256 * 4 8984 179692 114.96 ms / 176.73 ms
6 物理节点 TiDB 32 500 万 256 * 6 12953 259072 117.80 ms / 200.47 ms

TiDB Sysbench 性能测试报告 - v1.0.0 - 图7

  • 标准 select 测试
- table count table size sysbench threads qps latency(avg / .95)
1 物理节点 TiDB 32 100 万 256 * 1 71841 3.56 ms / 8.74 ms
2 物理节点 TiDB 32 100 万 256 * 2 146615 3.49 ms / 8.74 ms
4 物理节点 TiDB 32 100 万 256 * 4 289933 3.53 ms / 8.74 ms
6 物理节点 TiDB 32 500 万 256 * 6 435313 3.55 ms / 9.17 ms

TiDB Sysbench 性能测试报告 - v1.0.0 - 图8

  • 标准 insert 测试
- table count table size sysbench threads qps latency(avg / .95)
3 物理节点 TiKV 32 100 万 256 * 3 40547 18.93 ms / 38.25 ms
5 物理节点 TiKV 32 100 万 256 * 3 60689 37.96 ms / 29.9 ms
7 物理节点 TiKV 32 100 万 256 * 3 80087 9.62 ms / 21.37 ms

TiDB Sysbench 性能测试报告 - v1.0.0 - 图9