|
| 1 | +--- |
| 2 | +title: TiDB Sysbench Performance Test Report -- v2.1 vs. v2.0 |
| 3 | +category: benchmark |
| 4 | +--- |
| 5 | + |
| 6 | +# TiDB Sysbench Performance Test Report -- v2.1 vs. v2.0 |
| 7 | + |
| 8 | +## Test purpose |
| 9 | + |
| 10 | +This test aims to compare the performances of TiDB 2.1 and TiDB 2.0 in the OLTP scenario. |
| 11 | + |
| 12 | +## Test version, time, and place |
| 13 | + |
| 14 | +TiDB version: v2.1.0-rc.2 vs. v2.0.6 |
| 15 | + |
| 16 | +Time: September, 2018 |
| 17 | + |
| 18 | +Place: Beijing, China |
| 19 | + |
| 20 | +## Test environment |
| 21 | + |
| 22 | +IDC machine: |
| 23 | + |
| 24 | +| Type | Name | |
| 25 | +| :-: | :-: | |
| 26 | +| OS | Linux (CentOS 7.3.1611) | |
| 27 | +| CPU | 40 vCPUs, Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz | |
| 28 | +| RAM | 128GB | |
| 29 | +| DISK | Optane 500GB SSD \* 1 | |
| 30 | + |
| 31 | +Sysbench version: 1.1.0 |
| 32 | + |
| 33 | +## Test plan |
| 34 | + |
| 35 | +Use Sysbench to import **16 tables, with 1,000 pieces of data in each table**. With the HAProxy, requests are sent to the cluster at an incremental concurrent number. A single concurrent test lasts 5 minutes. |
| 36 | + |
| 37 | +### TiDB version information |
| 38 | + |
| 39 | +### v2.1.0-rc.2 |
| 40 | + |
| 41 | +| Component | GitHash | |
| 42 | +| :-: | :-: | |
| 43 | +| TiDB | 08e56cd3bae166b2af3c2f52354fbc9818717f62 | |
| 44 | +| TiKV | 57e684016dafb17dc8a6837d30224be66cbc7246 | |
| 45 | +| PD | 6a7832d2d6e5b2923c79683183e63d030f954563 | |
| 46 | + |
| 47 | +### v2.0.6 |
| 48 | + |
| 49 | +| Component | GitHash | |
| 50 | +| :-: | :-: | |
| 51 | +| TiDB | b13bc08462a584a085f377625a7bab0cc0351570 | |
| 52 | +| TiKV | 57c83dc4ebc93d38d77dc8f7d66db224760766cc | |
| 53 | +| PD | b64716707b7279a4ae822be767085ff17b5f3fea | |
| 54 | + |
| 55 | +### TiDB parameter configuration |
| 56 | + |
| 57 | +The default TiDB configuration is used in both v2.1 and v2.0. |
| 58 | + |
| 59 | +### TiKV parameter configuration |
| 60 | + |
| 61 | +The following TiKV configuration is used in both v2.1 and v2.0: |
| 62 | + |
| 63 | +```txt |
| 64 | +[readpool.storage] |
| 65 | +normal-concurrency = 8 |
| 66 | +[server] |
| 67 | +grpc-concurrency = 8 |
| 68 | +[raftstore] |
| 69 | +sync-log = false |
| 70 | +[rocksdb.defaultcf] |
| 71 | +block-cache-size = "60GB" |
| 72 | +[rocksdb.writecf] |
| 73 | +block-cache-size = "20GB" |
| 74 | +``` |
| 75 | + |
| 76 | +### Cluster topology |
| 77 | + |
| 78 | +| Machine IP | Deployment instance | |
| 79 | +| :-: | :-: | |
| 80 | +| 172.16.30.31 | 1\*Sysbench 1\*HAProxy | |
| 81 | +| 172.16.30.32 | 1\*TiDB 1\*pd 1\*TiKV | |
| 82 | +| 172.16.30.33 | 1\*TiDB 1\*TiKV | |
| 83 | +| 172.16.30.34 | 1\*TiDB 1\*TiKV | |
| 84 | + |
| 85 | +## Test result |
| 86 | + |
| 87 | +### `Point Select` test |
| 88 | + |
| 89 | +| Version | Threads | QPS | 95% Latency(ms) | |
| 90 | +| :-: | :-: | :-: | :-: | |
| 91 | +| v2.1 | 64 | 111481.09 | 1.16 | |
| 92 | +| v2.1 | 128 | 145102.62 | 2.52 | |
| 93 | +| v2.1 | 256 | 161311.9 | 4.57 | |
| 94 | +| v2.1 | 512 | 184991.19 | 7.56 | |
| 95 | +| v2.1 | 1024 | 230282.74 | 10.84 | |
| 96 | +| v2.0 | 64 | 75285.87 | 1.93 | |
| 97 | +| v2.0 | 128 | 92141.79 | 3.68 | |
| 98 | +| v2.0 | 256 | 107464.93 | 6.67 | |
| 99 | +| v2.0 | 512 | 121350.61 | 11.65 | |
| 100 | +| v2.0 | 1024 | 150036.31 | 17.32 | |
| 101 | + |
| 102 | + |
| 103 | + |
| 104 | +According to the statistics above, the `Point Select` query performance of TiDB 2.1 has increased by **50%** than that of TiDB 2.0. |
| 105 | + |
| 106 | +### `Update Non-Index` test |
| 107 | + |
| 108 | +| Version | Threads | QPS | 95% Latency(ms) | |
| 109 | +| :-: | :-: | :-: | :-: | |
| 110 | +| v2.1 | 64 | 18946.09 | 5.77 | |
| 111 | +| v2.1 | 128 | 22022.82 | 12.08 | |
| 112 | +| v2.1 | 256 | 24679.68 | 25.74 | |
| 113 | +| v2.1 | 512 | 25107.1 | 51.94 | |
| 114 | +| v2.1 | 1024 | 27144.92 | 106.75 | |
| 115 | +| v2.0 | 64 | 16316.85 | 6.91 | |
| 116 | +| v2.0 | 128 | 20944.6 | 11.45 | |
| 117 | +| v2.0 | 256 | 24017.42 | 23.1 | |
| 118 | +| v2.0 | 512 | 25994.33 | 46.63 | |
| 119 | +| v2.0 | 1024 | 27917.52 | 92.42 | |
| 120 | + |
| 121 | + |
| 122 | + |
| 123 | +According to the statistics above, the `Update Non-Index` write performance of TiDB 2.1 and TiDB 2.0 is almost the same. |
| 124 | + |
| 125 | +### `Update Index` test |
| 126 | + |
| 127 | +| Version | Threads | QPS | 95% Latency(ms) | |
| 128 | +| :-: | :-: | :-: | :-: | |
| 129 | +| v2.1 | 64 | 9934.49 | 12.08 | |
| 130 | +| v2.1 | 128 | 10505.95 | 25.28 | |
| 131 | +| v2.1 | 256 | 11007.7 | 55.82 | |
| 132 | +| v2.1 | 512 | 11198.81 | 106.75 | |
| 133 | +| v2.1 | 1024 | 11591.89 | 200.47 | |
| 134 | +| v2.0 | 64 | 9754.68 | 11.65 | |
| 135 | +| v2.0 | 128 | 10603.31 | 24.38 | |
| 136 | +| v2.0 | 256 | 11011.71 | 50.11 | |
| 137 | +| v2.0 | 512 | 11162.63 | 104.84 | |
| 138 | +| v2.0 | 1024 | 12067.63 | 179.94 | |
| 139 | + |
| 140 | + |
| 141 | + |
| 142 | +According to the statistics above, the `Update Index` write performance of TiDB 2.1 and TiDB 2.0 is almost the same. |
0 commit comments