You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: How to make a benchmark over a TiKV cluster
2
+
title: Performance Overview
3
+
description: An overview of TiKV performance
4
4
menu:
5
5
"5.1":
6
6
parent: Benchmark and Performance
7
7
weight: 5
8
8
---
9
9
10
-
TiKV delivers predictable throughput and latency at all scales on requiring hardware. This document provides an overview of the performance profiles you can expect, based on PingCAP's testing using industry-standard benchmarks [YCSB](https://github.com/brianfrankcooper/YCSB)'s go version [GO YCSB](https://github.com/pingcap/go-ycsb).
10
+
11
+
TiKV can deliver predictable throughput and latency at all scales on requiring hardware. This document provides an overview of TiKV benchmark performance on throughput and latency.
11
12
12
-
For instructions to reproduce the TPC-C results listed here, see [Benchmark Instructions](./instructions.md). If you fail to achieve similar results, there is likely a problem in either the hardware, workload, or test design.
13
+
To learn how to reproduce the benchmark results in this document, see [Benchmark Instructions](./instructions.md). If you do not achieve similar results, check whether your hardware, workload, and test design meet the requirements in this document.
13
14
14
15
## Baseline
15
16
16
-
The goal of the YCSB project is to develop a framework and common set of workloads for evaluating the performance of different key-value and cloud serving stores. **A 3-node TiKV cluster could achieve at most 200,000 OPS within 10ms latency in a 10M records and 10M operations YCSB workload.**
17
+
The TiKV performance in this document is evaluated using [GO YCSB](https://github.com/pingcap/go-ycsb), which is the Go version of the industry-standard [Yahoo! Cloud Serving Benchmark (YCSB)](https://github.com/brianfrankcooper/YCSB).
17
18
18
-
For a refresher on what exactly YCSB is and how it is measured, see the official introduction of YCSB [Core Workload](https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloads)
19
+
The goal of the YCSB project is to develop a framework and common set of workloads for evaluating the performance of different key-value and cloud serving stores. For more information about how YCSB is measured, see [Core Workload](https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloads).
19
20
20
-
TiKV achieves this performance in [linearizability](https://en.wikipedia.org/wiki/Linearizability), a strong correctness condition, which constrains what outputs are possible when an object is accessed by multiple processes concurrently.
21
-
22
-
A demonstration of the benchmark result on a 3-node TiKV cluster with different client concurrency will be given to show a big picture of the throughput and latency of TiKV.
21
+
## Cluster configuration
23
22
24
-
# Cluster Configuration
23
+
To provide the overall performance of TiKV throughput and latency, the benchmark in this document uses a 3-node TiKV cluster with different client concurrencies.
25
24
26
-
Deploy a 3-node cluster with the following node configuration:
25
+
The configuration of the 3-node cluster is as follows:
We also deploy a 12-pod cluster to simulate a large workload. Each pod is allocated with 40 threads to run a YSCB workload with 10M operations over a dataset contains 10M records.
31
+
In addition, a 12-pod cluster is deployed to simulate a large workload. Each pod is allocated with 40 threads to run a YSCB workload with 10M operations over a dataset with 10M records.
32
+
33
+
## Benchmark results
34
+
35
+
The results show that **A 3-node TiKV cluster achieves at most 200,000 OPS within 10 ms latency in a 10M records and 10M operations YCSB workload**.
33
36
34
-
## Throughput
37
+
TiKV achieves this performance in [linearizability](https://en.wikipedia.org/wiki/Linearizability), a strong correctness condition, which constrains what outputs are possible when an object is accessed by multiple processes concurrently.
38
+
39
+
### Throughput
35
40
36
-
On a 3-node cluster of configuration listed above, TiKV can achieve 212,000 point get read per second on the YCSB workloadc and 43,200 update per second on the YCSB workloada. With diffrent concurrency, the throughput change is shown in [Figure 1](https://docs.google.com/spreadsheets/d/e/2PACX-1vTIx695jjL3qYN1iR4xC3N8qh0B1qsHOALSBqf1B469b0DIZwVdzZMcSbBOOtAIo31hAdW0x_EXjmgq/pubchart?oid=1044850259&format=interactive).
41
+
On a 3-node cluster of configuration listed above, TiKV can achieve 212,000 point get read per second on the YCSB workloadc and 43,200 update per second on the YCSB workloada. With different concurrencies, the throughput changes are shown in [Figure 1](https://docs.google.com/spreadsheets/d/e/2PACX-1vTIx695jjL3qYN1iR4xC3N8qh0B1qsHOALSBqf1B469b0DIZwVdzZMcSbBOOtAIo31hAdW0x_EXjmgq/pubchart?oid=1044850259&format=interactive).
37
42
38
43
{{< figure
39
44
src="/img/docs/ycsb-throughput.svg"
40
45
caption="YCSB throughput"
41
46
width="1000"
42
47
number="1" >}}
43
48
49
+
### Latency
44
50
45
-
## Latency
46
-
47
-
TiKV fits to latency-sensitive service, we could achieve <10ms average latency even in a high pressure throughput. You can check the average latency in [Figure 2](https://docs.google.com/spreadsheets/d/e/2PACX-1vTIx695jjL3qYN1iR4xC3N8qh0B1qsHOALSBqf1B469b0DIZwVdzZMcSbBOOtAIo31hAdW0x_EXjmgq/pubchart?oid=334435174&format=interactive).
51
+
TiKV is suitable for delay-sensitive services. Even at a high pressure throughput, the average latency is less than 10 ms, as shown in [Figure 2](https://docs.google.com/spreadsheets/d/e/2PACX-1vTIx695jjL3qYN1iR4xC3N8qh0B1qsHOALSBqf1B469b0DIZwVdzZMcSbBOOtAIo31hAdW0x_EXjmgq/pubchart?oid=334435174&format=interactive).
48
52
49
53
{{< figure
50
54
src="/img/docs/avg-latency.svg"
51
55
caption="YCSB latency"
52
56
width="1000"
53
57
number="2" >}}
54
58
55
-
For the 99th percentile latency, see [Figure 3](https://docs.google.com/spreadsheets/d/e/2PACX-1vTIx695jjL3qYN1iR4xC3N8qh0B1qsHOALSBqf1B469b0DIZwVdzZMcSbBOOtAIo31hAdW0x_EXjmgq/pubchart?oid=6574505&format=interactive)
59
+
For the 99th percentile latency, see [Figure 3](https://docs.google.com/spreadsheets/d/e/2PACX-1vTIx695jjL3qYN1iR4xC3N8qh0B1qsHOALSBqf1B469b0DIZwVdzZMcSbBOOtAIo31hAdW0x_EXjmgq/pubchart?oid=6574505&format=interactive).
56
60
57
61
{{< figure
58
62
src="/img/docs/99-latency.svg"
@@ -62,9 +66,8 @@ For the 99th percentile latency, see [Figure 3](https://docs.google.com/spreadsh
62
66
63
67
## Performance limitations
64
68
65
-
For now, with more replication factor, the latency of TiKV would increase linearly. In addition, under heavily write worload, the write latency will increase more faster than the read latency. Practically, we will be improving bottlenecks and addressing challenges over the next several releases.
66
-
69
+
For the current TiKV release, if replication factors increase, the TiKV latency increases linearly. In addition, under heavily write workload, the write latency increases much faster than the read latency. For the next several releases, more improvements will be made to address the limitations.
67
70
68
71
## See also
69
72
70
-
* If you are interested in the rest of benchmark result, see this [sheet](https://docs.google.com/spreadsheets/d/1VjzC3IxCiqGQmSUgRxewgExE3c32YiZMUKNsKDuvrPg/edit?usp=sharing).
73
+
* If you are interested in more benchmark results, see this [sheet](https://docs.google.com/spreadsheets/d/1VjzC3IxCiqGQmSUgRxewgExE3c32YiZMUKNsKDuvrPg/edit?usp=sharing).
0 commit comments