Skip to content

Commit a90b2a6

Browse files
committed
Recursively copy the contents of v3.6 to v3.7
Signed-off-by: Ronald Ngounou <74538524+ronaldngounou@users.noreply.github.com>
1 parent be522ff commit a90b2a6

File tree

128 files changed

+19803
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+19803
-0
lines changed

config.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,9 @@ params:
109109
deprecation_warning: >-
110110
This version of etcd is no longer supported. For the latest version, please see the [latest stable version](/docs/latest/).
111111
versions:
112+
- version: v3.7
113+
url: /docs/v3.7/
114+
112115
- version: v3.6
113116
url: /docs/v3.6/
114117

content/en/docs/v3.7/_index.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
title: v3.6 docs
3+
cascade:
4+
version: v3.6
5+
versName: &name v3.6
6+
git_version_tag: v3.6.0
7+
exclude_search: true
8+
linkTitle: *name
9+
simple_list: true
10+
weight: -360 # Weight for doc version vX.Y should be -XY0
11+
---
12+
13+
These docs cover everything from setting up and running an etcd cluster to using
14+
etcd in applications.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
title: Benchmarks
3+
weight: 5000
4+
description: Performance measures for etcd
5+
---
6+
7+
## Benchmarks
8+
9+
etcd benchmarks will be published regularly and tracked for each release below:
10+
11+
- [etcd v2.1.0-alpha][2.1]
12+
- [etcd v2.2.0-rc][2.2]
13+
- [etcd v3 demo][3.0]
14+
15+
## Memory Usage Benchmarks
16+
17+
It records expected memory usage in different scenarios.
18+
19+
- [etcd v2.2.0-rc][2.2-mem]
20+
21+
[2.1]: etcd-2-1-0-alpha-benchmarks
22+
[2.2]: etcd-2-2-0-rc-benchmarks
23+
[2.2-mem]: etcd-2-2-0-rc-memory-benchmarks
24+
[3.0]: etcd-3-demo-benchmarks
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: Benchmarking etcd v2.1.0
3+
weight: 5875
4+
description: Performance measures for etcd v2.1.0
5+
---
6+
7+
## Physical machines
8+
9+
GCE n1-highcpu-2 machine type
10+
11+
- 1x dedicated local SSD mounted under /var/lib/etcd
12+
- 1x dedicated slow disk for the OS
13+
- 1.8 GB memory
14+
- 2x CPUs
15+
- etcd version 2.1.0 alpha
16+
17+
## etcd Cluster
18+
19+
3 etcd members, each runs on a single machine
20+
21+
## Testing
22+
23+
Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions.
24+
25+
## Performance
26+
27+
### reading one single key
28+
29+
| key size in bytes | number of clients | target etcd server | read QPS | 90th Percentile Latency (ms) |
30+
|-------------------|-------------------|--------------------|----------|---------------|
31+
| 64 | 1 | leader only | 1534 | 0.7 |
32+
| 64 | 64 | leader only | 10125 | 9.1 |
33+
| 64 | 256 | leader only | 13892 | 27.1 |
34+
| 256 | 1 | leader only | 1530 | 0.8 |
35+
| 256 | 64 | leader only | 10106 | 10.1 |
36+
| 256 | 256 | leader only | 14667 | 27.0 |
37+
| 64 | 64 | all servers | 24200 | 3.9 |
38+
| 64 | 256 | all servers | 33300 | 11.8 |
39+
| 256 | 64 | all servers | 24800 | 3.9 |
40+
| 256 | 256 | all servers | 33000 | 11.5 |
41+
42+
### writing one single key
43+
44+
| key size in bytes | number of clients | target etcd server | write QPS | 90th Percentile Latency (ms) |
45+
|-------------------|-------------------|--------------------|-----------|---------------|
46+
| 64 | 1 | leader only | 60 | 21.4 |
47+
| 64 | 64 | leader only | 1742 | 46.8 |
48+
| 64 | 256 | leader only | 3982 | 90.5 |
49+
| 256 | 1 | leader only | 58 | 20.3 |
50+
| 256 | 64 | leader only | 1770 | 47.8 |
51+
| 256 | 256 | leader only | 4157 | 105.3 |
52+
| 64 | 64 | all servers | 1028 | 123.4 |
53+
| 64 | 256 | all servers | 3260 | 123.8 |
54+
| 256 | 64 | all servers | 1033 | 121.5 |
55+
| 256 | 256 | all servers | 3061 | 119.3 |
56+
57+
[hack-benchmark]: https://github.com/etcd-io/etcd/tree/main/hack/benchmark
58+
[hey]: https://github.com/rakyll/hey
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
title: Benchmarking etcd v2.2.0
3+
weight: 5750
4+
description: Performance measures for etcd v2.2.0
5+
---
6+
7+
## Physical Machines
8+
9+
GCE n1-highcpu-2 machine type
10+
11+
- 1x dedicated local SSD mounted as etcd data directory
12+
- 1x dedicated slow disk for the OS
13+
- 1.8 GB memory
14+
- 2x CPUs
15+
16+
## etcd Cluster
17+
18+
3 etcd 2.2.0 members, each runs on a single machine.
19+
20+
Detailed versions:
21+
22+
```
23+
etcd Version: 2.2.0
24+
Git SHA: e4561dd
25+
Go Version: go1.5
26+
Go OS/Arch: linux/amd64
27+
```
28+
29+
## Testing
30+
31+
Bootstrap another machine, outside of the etcd cluster, and run the [`hey` HTTP benchmark tool](https://github.com/rakyll/hey) with a connection reuse patch to send requests to each etcd cluster member. See the [benchmark instructions](https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark) for the patch and the steps to reproduce our procedures.
32+
33+
The performance is calculated through results of 100 benchmark rounds.
34+
35+
## Performance
36+
37+
### Single Key Read Performance
38+
39+
| key size in bytes | number of clients | target etcd server | average read QPS | read QPS stddev | average 90th Percentile Latency (ms) | latency stddev |
40+
|-------------------|-------------------|--------------------|------------------|-----------------|--------------------------------------|----------------|
41+
| 64 | 1 | leader only | 2303 | 200 | 0.49 | 0.06 |
42+
| 64 | 64 | leader only | 15048 | 685 | 7.60 | 0.46 |
43+
| 64 | 256 | leader only | 14508 | 434 | 29.76 | 1.05 |
44+
| 256 | 1 | leader only | 2162 | 214 | 0.52 | 0.06 |
45+
| 256 | 64 | leader only | 14789 | 792 | 7.69| 0.48 |
46+
| 256 | 256 | leader only | 14424 | 512 | 29.92 | 1.42 |
47+
| 64 | 64 | all servers | 45752 | 2048 | 2.47 | 0.14 |
48+
| 64 | 256 | all servers | 46592 | 1273 | 10.14 | 0.59 |
49+
| 256 | 64 | all servers | 45332 | 1847 | 2.48| 0.12 |
50+
| 256 | 256 | all servers | 46485 | 1340 | 10.18 | 0.74 |
51+
52+
### Single Key Write Performance
53+
54+
| key size in bytes | number of clients | target etcd server | average write QPS | write QPS stddev | average 90th Percentile Latency (ms) | latency stddev |
55+
|-------------------|-------------------|--------------------|------------------|-----------------|--------------------------------------|----------------|
56+
| 64 | 1 | leader only | 55 | 4 | 24.51 | 13.26 |
57+
| 64 | 64 | leader only | 2139 | 125 | 35.23 | 3.40 |
58+
| 64 | 256 | leader only | 4581 | 581 | 70.53 | 10.22 |
59+
| 256 | 1 | leader only | 56 | 4 | 22.37| 4.33 |
60+
| 256 | 64 | leader only | 2052 | 151 | 36.83 | 4.20 |
61+
| 256 | 256 | leader only | 4442 | 560 | 71.59 | 10.03 |
62+
| 64 | 64 | all servers | 1625 | 85 | 58.51 | 5.14 |
63+
| 64 | 256 | all servers | 4461 | 298 | 89.47 | 36.48 |
64+
| 256 | 64 | all servers | 1599 | 94 | 60.11| 6.43 |
65+
| 256 | 256 | all servers | 4315 | 193 | 88.98 | 7.01 |
66+
67+
## Performance Changes
68+
69+
- Because etcd now records metrics for each API call, read QPS performance seems to see a minor decrease in most scenarios. This minimal performance impact was judged a reasonable investment for the breadth of monitoring and debugging information returned.
70+
71+
- Write QPS to cluster leaders seems to be increased by a small margin. This is because the main loop and entry apply loops were decoupled in the etcd raft logic, eliminating several blocks between them.
72+
73+
- Write QPS to all members seems to be increased by a significant margin, because followers now receive the latest commit index sooner, and commit proposals more quickly.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
title: Benchmarking etcd v2.2.0-rc
3+
weight: 5625
4+
description: Performance measures for etcd v2.2.0-rc
5+
---
6+
7+
## Physical machine
8+
9+
GCE n1-highcpu-2 machine type
10+
11+
- 1x dedicated local SSD mounted under /var/lib/etcd
12+
- 1x dedicated slow disk for the OS
13+
- 1.8 GB memory
14+
- 2x CPUs
15+
16+
## etcd Cluster
17+
18+
3 etcd 2.2.0-rc members, each runs on a single machine.
19+
20+
Detailed versions:
21+
22+
```
23+
etcd Version: 2.2.0-alpha.1+git
24+
Git SHA: 59a5a7e
25+
Go Version: go1.4.2
26+
Go OS/Arch: linux/amd64
27+
```
28+
29+
Also, we use 3 etcd 2.1.0 alpha-stage members to form cluster to get base performance. etcd's commit head is at [c7146bd5][c7146bd5], which is the same as the one that we use in [etcd 2.1 benchmark][etcd-2.1-benchmark].
30+
31+
## Testing
32+
33+
Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions.
34+
35+
## Performance
36+
37+
### reading one single key
38+
39+
| key size in bytes | number of clients | target etcd server | read QPS | 90th Percentile Latency (ms) |
40+
|-------------------|-------------------|--------------------|----------|---------------|
41+
| 64 | 1 | leader only | 2804 (-5%) | 0.4 (+0%) |
42+
| 64 | 64 | leader only | 17816 (+0%) | 5.7 (-6%) |
43+
| 64 | 256 | leader only | 18667 (-6%) | 20.4 (+2%) |
44+
| 256 | 1 | leader only | 2181 (-15%) | 0.5 (+25%) |
45+
| 256 | 64 | leader only | 17435 (-7%) | 6.0 (+9%) |
46+
| 256 | 256 | leader only | 18180 (-8%) | 21.3 (+3%) |
47+
| 64 | 64 | all servers | 46965 (-4%) | 2.1 (+0%) |
48+
| 64 | 256 | all servers | 55286 (-6%) | 7.4 (+6%) |
49+
| 256 | 64 | all servers | 46603 (-6%) | 2.1 (+5%) |
50+
| 256 | 256 | all servers | 55291 (-6%) | 7.3 (+4%) |
51+
52+
### writing one single key
53+
54+
| key size in bytes | number of clients | target etcd server | write QPS | 90th Percentile Latency (ms) |
55+
|-------------------|-------------------|--------------------|-----------|---------------|
56+
| 64 | 1 | leader only | 76 (+22%) | 19.4 (-15%) |
57+
| 64 | 64 | leader only | 2461 (+45%) | 31.8 (-32%) |
58+
| 64 | 256 | leader only | 4275 (+1%) | 69.6 (-10%) |
59+
| 256 | 1 | leader only | 64 (+20%) | 16.7 (-30%) |
60+
| 256 | 64 | leader only | 2385 (+30%) | 31.5 (-19%) |
61+
| 256 | 256 | leader only | 4353 (-3%) | 74.0 (+9%) |
62+
| 64 | 64 | all servers | 2005 (+81%) | 49.8 (-55%) |
63+
| 64 | 256 | all servers | 4868 (+35%) | 81.5 (-40%) |
64+
| 256 | 64 | all servers | 1925 (+72%) | 47.7 (-59%) |
65+
| 256 | 256 | all servers | 4975 (+36%) | 70.3 (-36%) |
66+
67+
### performance changes explanation
68+
69+
- read QPS in most scenarios is decreased by 5~8%. The reason is that etcd records store metrics for each store operation. The metrics is important for monitoring and debugging, so this is acceptable.
70+
71+
- write QPS to leader is increased by 20~30%. This is because we decouple raft main loop and entry apply loop, which avoids them blocking each other.
72+
73+
- write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster.
74+
75+
[c7146bd5]: https://github.com/etcd-io/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144
76+
[etcd-2.1-benchmark]: ../etcd-2-1-0-alpha-benchmarks/
77+
[hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark
78+
[hey]: https://github.com/rakyll/hey
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: Benchmarking etcd v2.2.0-rc-memory
3+
weight: 5500
4+
description: Performance measures for etcd v2.2.0-rc-memory
5+
---
6+
7+
## Physical machine
8+
9+
GCE n1-standard-2 machine type
10+
11+
- 1x dedicated local SSD mounted under /var/lib/etcd
12+
- 1x dedicated slow disk for the OS
13+
- 7.5 GB memory
14+
- 2x CPUs
15+
16+
## etcd
17+
18+
```
19+
etcd Version: 2.2.0-rc.0+git
20+
Git SHA: 103cb5c
21+
Go Version: go1.5
22+
Go OS/Arch: linux/amd64
23+
```
24+
25+
## Testing
26+
27+
Start 3-member etcd cluster, each of which uses 2 cores.
28+
29+
The length of key name is always 64 bytes, which is a reasonable length of average key bytes.
30+
31+
## Memory Maximal Usage
32+
33+
- etcd may use maximal memory if one follower is dead and the leader keeps sending snapshots.
34+
- `max RSS` is the maximal memory usage recorded in 3 runs.
35+
36+
| value bytes | key number | data size(MB) | max RSS(MB) | max RSS/data rate on leader |
37+
|-------------|-------------|---------------|-------------|-----------------------------|
38+
| 128 | 50000 | 6 | 433 | 72x |
39+
| 128 | 100000 | 12 | 659 | 54x |
40+
| 128 | 200000 | 24 | 1466 | 61x |
41+
| 1024 | 50000 | 48 | 1253 | 26x |
42+
| 1024 | 100000 | 96 | 2344 | 24x |
43+
| 1024 | 200000 | 192 | 4361 | 22x |
44+
45+
## Data Size Threshold
46+
47+
- When etcd reaches data size threshold, it may trigger leader election easily and drop part of proposals.
48+
- For most cases, the etcd cluster should work smoothly if it doesn't hit the threshold. If it doesn't work well due to insufficient resources, decrease its data size.
49+
50+
| value bytes | key number limitation | suggested data size threshold(MB) | consumed RSS(MB) |
51+
|-------------|-----------------------|-----------------------------------|------------------|
52+
| 128 | 400K | 48 | 2400 |
53+
| 1024 | 300K | 292 | 6500 |
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
title: Benchmarking etcd v3
3+
weight: 5375
4+
description: Performance measures for etcd v3
5+
---
6+
7+
## Physical machines
8+
9+
GCE n1-highcpu-2 machine type
10+
11+
- 1x dedicated local SSD mounted under /var/lib/etcd
12+
- 1x dedicated slow disk for the OS
13+
- 1.8 GB memory
14+
- 2x CPUs
15+
- etcd version 2.2.0
16+
17+
## etcd Cluster
18+
19+
1 etcd member running in v3 demo mode
20+
21+
## Testing
22+
23+
Use [etcd v3 benchmark tool][etcd-v3-benchmark].
24+
25+
## Performance
26+
27+
### reading one single key
28+
29+
| key size in bytes | number of clients | read QPS | 90th Percentile Latency (ms) |
30+
|-------------------|-------------------|----------|---------------|
31+
| 256 | 1 | 2716 | 0.4 |
32+
| 256 | 64 | 16623 | 6.1 |
33+
| 256 | 256 | 16622 | 21.7 |
34+
35+
The performance is nearly the same as the one with empty server handler.
36+
37+
### reading one single key after putting
38+
39+
| key size in bytes | number of clients | read QPS | 90th Percentile Latency (ms) |
40+
|-------------------|-------------------|----------|---------------|
41+
| 256 | 1 | 2269 | 0.5 |
42+
| 256 | 64 | 13582 | 8.6 |
43+
| 256 | 256 | 13262 | 47.5 |
44+
45+
The performance with empty server handler is not affected by one put. So the
46+
performance downgrade should be caused by storage package.
47+
48+
[etcd-v3-benchmark]: https://github.com/etcd-io/etcd/tree/main/tools/benchmark

0 commit comments

Comments
 (0)