Skip to content

Commit 5d74f1b

Browse files
authored
Review and update changes in "tikv benchmark overview #271" (#277)
1 parent 0d71f4e commit 5d74f1b

File tree

3 files changed

+27
-24
lines changed

3 files changed

+27
-24
lines changed

content/docs/5.1/deploy/performance/instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Benchmark Instructions
3-
description: How to make a benchmark over a TiKV cluster
3+
description: How to do a benchmark over a TiKV cluster
44
menu:
55
"5.1":
66
parent: Benchmark and Performance
Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,62 @@
11
---
2-
title: Overview
3-
description: How to make a benchmark over a TiKV cluster
2+
title: Performance Overview
3+
description: An overview of TiKV performance
44
menu:
55
"5.1":
66
parent: Benchmark and Performance
77
weight: 5
88
---
99

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.
1112

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.
1314

1415
## Baseline
1516

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).
1718

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).
1920

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
2322

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.
2524

26-
Deploy a 3-node cluster with the following node configuration:
25+
The configuration of the 3-node cluster is as follows:
2726

2827
| CPU | Memory | Disk | Mode |
2928
| ---------------------------------------------------------- | ------ | ---------------- | ----- |
3029
| 40 virtual CPUs, Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz | 64GiB | 500GiB NVMEe SSD | RawKV |
3130

32-
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**.
3336

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
3540

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).
3742

3843
{{< figure
3944
src="/img/docs/ycsb-throughput.svg"
4045
caption="YCSB throughput"
4146
width="1000"
4247
number="1" >}}
4348

49+
### Latency
4450

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).
4852

4953
{{< figure
5054
src="/img/docs/avg-latency.svg"
5155
caption="YCSB latency"
5256
width="1000"
5357
number="2" >}}
5458

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).
5660

5761
{{< figure
5862
src="/img/docs/99-latency.svg"
@@ -62,9 +66,8 @@ For the 99th percentile latency, see [Figure 3](https://docs.google.com/spreadsh
6266

6367
## Performance limitations
6468

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.
6770

6871
## See also
6972

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).

content/docs/5.1/deploy/performance/performance.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ menu:
77
weight: 4
88
---
99

10-
This section introduces the performance of TiKV.
10+
This section introduces an overview of TiKV performance and the instructions to do a benchmark.
1111

12-
- [Overview](../overview)
12+
- [Performance Overview](../overview)
1313
- [Benchmark Instructions](../instructions)

0 commit comments

Comments
 (0)