-
Notifications
You must be signed in to change notification settings - Fork 368
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(qa/v1): Report on saturation point and 200-nodes test (#2667)
Closes #2461, #2513 This report includes results for tests with and without latency emulation. [Rendered](https://github.com/cometbft/cometbft/blob/hvanz/qa-v1-report-2461/docs/references/qa/CometBFT-QA-v1.md) --- #### PR checklist - [ ] Tests written/updated - [ ] Changelog entry added in `.changelog` (we use [unclog](https://github.com/informalsystems/unclog) to manage our changelog) - [ ] Updated relevant documentation (`docs/` or `spec/`) and code comments - [X] Title follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec --------- Co-authored-by: Daniel <daniel.cason@informal.systems> Co-authored-by: Sergio Mena <sergio@informal.systems> (cherry picked from commit 53e6127) # Conflicts: # scripts/qa/reporting/prometheus_plotter.py
- Loading branch information
1 parent
4f4faec
commit 20cab9e
Showing
50 changed files
with
526 additions
and
1 deletion.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+26.4 KB
...rences/qa/imgs/v1/200nodes/latencies/e_8e4e1e81-c171-4879-b86f-bce96ee2e861.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+175 KB
docs/references/qa/imgs/v1/200nodes/metrics/total_txs_rate_regular.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
Experiment ID: 73d1ecf6-2dbe-4288-bd84-72e286d939be Experiment ID: b3447e8e-f85e-48be-bb05-bf1b35b9e8b6 Experiment ID: 7b76c980-4882-4be7-898f-7ba7c4c950a2 | ||
Connections: 1 Connections: 2 Connections: 4 | ||
Rate: 200 Rate: 200 Rate: 200 | ||
Size: 1024 Size: 1024 Size: 1024 | ||
Total Valid Tx: 17800 Total Valid Tx: 34600 Total Valid Tx: 50464 | ||
Total Negative Latencies: 0 Total Negative Latencies: 0 Total Negative Latencies: 0 | ||
Minimum Latency: 1.710409731s Minimum Latency: 1.934148332s Minimum Latency: 3.207030208s | ||
Maximum Latency: 8.977271598s Maximum Latency: 19.921012538s Maximum Latency: 22.695517951s | ||
Average Latency: 3.873914787s Average Latency: 6.759146915s Average Latency: 9.394390517s | ||
Standard Deviation: 1.80382447s Standard Deviation: 4.158131769s Standard Deviation: 4.907778924s | ||
Experiment ID: 240abfc5-2e9f-4096-8d25-87b8890b419f Experiment ID: 99e88ddf-f0bd-4d44-98ac-cee52e2a74a6 Experiment ID: 88664d81-9d37-4820-a60e-8c0d2a9b2d63 | ||
Connections: 1 Connections: 2 Connections: 4 | ||
Rate: 400 Rate: 400 Rate: 400 | ||
Size: 1024 Size: 1024 Size: 1024 | ||
Total Valid Tx: 31200 Total Valid Tx: 54706 Total Valid Tx: 49463 | ||
Total Negative Latencies: 0 Total Negative Latencies: 0 Total Negative Latencies: 0 | ||
Minimum Latency: 2.050980308s Minimum Latency: 2.74995384s Minimum Latency: 4.469911766s | ||
Maximum Latency: 26.195522089s Maximum Latency: 23.182542187s Maximum Latency: 16.480603178s | ||
Average Latency: 9.280762294s Average Latency: 9.360818846s Average Latency: 9.976733037s | ||
Standard Deviation: 7.166791513s Standard Deviation: 4.378492426s Standard Deviation: 3.223167612s | ||
Experiment ID: 3efdd2a0-8bef-43d0-a0f0-6dce2b63825f Experiment ID: 3a49bc80-f63f-4d97-9663-3a02838fe1e8 Experiment ID: 1c2492ff-b82b-48a2-a975-bb252365521a | ||
Connections: 1 Connections: 2 Connections: 4 | ||
Rate: 800 Rate: 800 Rate: 800 | ||
Size: 1024 Size: 1024 Size: 1024 | ||
Total Valid Tx: 51146 Total Valid Tx: 51917 Total Valid Tx: 41376 | ||
Total Negative Latencies: 0 Total Negative Latencies: 0 Total Negative Latencies: 0 | ||
Minimum Latency: 3.026020902s Minimum Latency: 4.617306731s Minimum Latency: 4.400844549s | ||
Maximum Latency: 21.969169815s Maximum Latency: 29.138788503s Maximum Latency: 39.972301945s | ||
Average Latency: 9.039266773s Average Latency: 11.676386139s Average Latency: 16.583749953s | ||
Standard Deviation: 4.734959842s Standard Deviation: 6.190789791s Standard Deviation: 8.729665317s | ||
Experiment ID: 685cca77-ce3b-483f-9af8-6eafbdb03f7f Experiment ID: ba5cd52a-e3e6-4e35-86e3-5b391395650b Experiment ID: d27c4154-7c64-4379-91f9-0dc9b5f4c1d0 | ||
Connections: 1 Connections: 2 Connections: 4 | ||
Rate: 1600 Rate: 1600 Rate: 1600 | ||
Size: 1024 Size: 1024 Size: 1024 | ||
Total Valid Tx: 50889 Total Valid Tx: 47732 Total Valid Tx: 45530 | ||
Total Negative Latencies: 0 Total Negative Latencies: 0 Total Negative Latencies: 0 | ||
Minimum Latency: 4.411916099s Minimum Latency: 4.734922576s Minimum Latency: 5.500813279s | ||
Maximum Latency: 24.512517023s Maximum Latency: 21.733104885s Maximum Latency: 30.120411703s | ||
Average Latency: 11.022462182s Average Latency: 12.420967288s Average Latency: 13.648996358s | ||
Standard Deviation: 4.882919113s Standard Deviation: 4.803231316s Standard Deviation: 6.370448765s |
Binary file added
BIN
+26.6 KB
...des_with_latency_emulation/latencies/e_8190e83a-9135-444b-92fb-4efaeaaf2b52.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+28.3 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/avg_cpu.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+35.2 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/avg_memory.png
Oops, something went wrong.
Binary file added
BIN
+53.9 KB
...erences/qa/imgs/v1/200nodes_with_latency_emulation/metrics/avg_mempool_size.png
Oops, something went wrong.
Binary file added
BIN
+150 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/block_rate.png
Oops, something went wrong.
Binary file added
BIN
+121 KB
...ences/qa/imgs/v1/200nodes_with_latency_emulation/metrics/block_rate_regular.png
Oops, something went wrong.
Binary file added
BIN
+269 KB
...erences/qa/imgs/v1/200nodes_with_latency_emulation/metrics/block_size_bytes.png
Oops, something went wrong.
Binary file added
BIN
+107 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/blocks.png
Oops, something went wrong.
Binary file added
BIN
+512 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/cpu.png
Oops, something went wrong.
Binary file added
BIN
+283 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/memory.png
Oops, something went wrong.
Binary file added
BIN
+84.3 KB
.../references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/mempool_size.png
Oops, something went wrong.
Binary file added
BIN
+26.6 KB
...erences/qa/imgs/v1/200nodes_with_latency_emulation/metrics/mempool_size_max.png
Oops, something went wrong.
Binary file added
BIN
+48.7 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/peers.png
Oops, something went wrong.
Binary file added
BIN
+103 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/rounds.png
Oops, something went wrong.
Binary file added
BIN
+132 KB
docs/references/qa/imgs/v1/200nodes_with_latency_emulation/metrics/total_txs.png
Oops, something went wrong.
Binary file added
BIN
+270 KB
...eferences/qa/imgs/v1/200nodes_with_latency_emulation/metrics/total_txs_rate.png
Oops, something went wrong.
Binary file added
BIN
+297 KB
...s/qa/imgs/v1/200nodes_with_latency_emulation/metrics/total_txs_rate_regular.png
Oops, something went wrong.
54 changes: 54 additions & 0 deletions
54
docs/references/qa/imgs/v1/saturation/saturation-plotter-LE.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
#/usr/bin/env python3 | ||
"""Plotter for comparing saturation results on v1 with and without Letency Emulation. | ||
This script generates an image with the number of processed transactions for different load | ||
configurations (tx rate and number of connections). The purpose is to find the saturation point of | ||
the network and to compare the results between different CometBFT versions. | ||
Quick setup before running: | ||
``` | ||
python3 -m venv .venv && source .venv/bin/activate | ||
pip install matplotlib | ||
``` | ||
""" | ||
import matplotlib.pyplot as plt | ||
import numpy as np | ||
|
||
# Transaction rate (x axis) | ||
rates = np.arange(100, 1100, 100) | ||
rates2 = [200, 400, 800, 1600] | ||
|
||
# expected values | ||
expected = [(i+1) * 100 * 89 for i in range(10)] | ||
|
||
# v1 without LE | ||
d1 = [8900,17800,26053,28800,32513,30455,33077,32191,30688,32395] # experiments/2024-03-26-13_47_51N/validator174 | ||
d2 = [8900,17800,26300,25400,31371,31063,31603,32886,24521,25211] # experiments/2024-03-26-11_17_58N/validator174 | ||
d3 = [8900,17800,26700,35600,38500,40502,51962,48328,50713,42361] # experiments/2024-03-26-20_20_33N/validator174 | ||
|
||
# v1 with LE | ||
le1 = [8900,17800,26700,35600,34504,42169,38916,38004,34332,36948] # experiments/2024-03-25-17_41_09N/validator174 | ||
le2 = [17800, 33800, 34644, 43464] # experiments/2024-03-25-12_17_12N/validator174 | ||
le3 = [8900,17800,26700,33200,37665,51771,38631,49290,51526,46902] # experiments/2024-03-26-22_21_31N/validator174 | ||
|
||
fig, ax = plt.subplots(figsize=(10, 5)) | ||
ax.plot(rates, expected, linestyle='dotted', marker=',', color='g', label='expected') | ||
ax.plot(rates, d1, linestyle='solid', marker='o', color='b', label='without LE #1') | ||
ax.plot(rates, d2, linestyle='solid', marker='o', color='violet', label='without LE #2') | ||
ax.plot(rates, d3, linestyle='solid', marker='o', color='grey', label='without LE #3') | ||
ax.plot(rates, le1, linestyle='dashed', marker='s', color='r', label='with LE #1') | ||
ax.plot(rates2, le2, linestyle='dashed', marker='s', color='orange', label='with LE #2') | ||
ax.plot(rates, le3, linestyle='dashed', marker='s', color='brown', label='with LE #3') | ||
|
||
plt.title('saturation point for v1.0.0-alpha.2, c=1') | ||
plt.xlabel("rate (txs/s)") | ||
plt.ylabel("txs processed in 90 seconds") | ||
plt.xticks(np.arange(0, 1100, 200).tolist()) | ||
ax.set_xlim([0, 1100]) | ||
ax.set_ylim([0, 60000]) | ||
ax.grid() | ||
ax.legend() | ||
|
||
fig.tight_layout() | ||
fig.savefig("saturation_v1_LE.png") | ||
plt.show() |
56 changes: 56 additions & 0 deletions
56
docs/references/qa/imgs/v1/saturation/saturation-plotter.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
#/usr/bin/env python3 | ||
"""Plotter for comparing saturation results on v1 and v0.38. | ||
This script generates an image with the number of processed transactions for different load | ||
configurations (tx rate and number of connections). The purpose is to find the saturation point of | ||
the network and to compare the results between different CometBFT versions. | ||
Quick setup before running: | ||
``` | ||
python3 -m venv .venv && source .venv/bin/activate | ||
pip install matplotlib | ||
``` | ||
""" | ||
import matplotlib.pyplot as plt | ||
import numpy as np | ||
|
||
# Expected values of processed transactions for a given transaction rate. | ||
rates0 = [0, 3600] | ||
expected = [r * 89 for r in rates0] | ||
|
||
# Transaction rate (x axis) | ||
rates1 = [200, 400, 800, 1600] | ||
rates2 = [r*2 for r in rates1] | ||
rates4 = [r*2 for r in rates2] | ||
|
||
# v1 (without latency emulation), for number of connections c in [1,2,4] | ||
c1 = [17800,31200,51146,50889] | ||
c2 = [34600,54706,51917,47732] | ||
c4 = [50464,49463,41376,45530] | ||
|
||
# v0.38, for number of connections c in [1,2,4] | ||
d1 = [17800,35600,36831,40600] | ||
d2 = [33259,41565,38686,45034] | ||
d4 = [33259,41384,40816,39830] | ||
|
||
fig, ax = plt.subplots(figsize=(12, 5)) | ||
ax.plot(rates0, expected, linestyle='dotted', marker=',', color='g', label='expected') | ||
ax.plot(rates1, c1, linestyle='solid', marker='s', color='red', label='v1 c=1') | ||
ax.plot(rates2, c2, linestyle='solid', marker='s', color='salmon', label='v1 c=2') | ||
ax.plot(rates4, c4, linestyle='solid', marker='s', color='orange', label='v1 c=4') | ||
ax.plot(rates1, d1, linestyle='dashed', marker='o', color='blue', label='v0.38 c=1') | ||
ax.plot(rates2, d2, linestyle='dashed', marker='o', color='violet', label='v0.38 c=2') | ||
ax.plot(rates4, d4, linestyle='dashed', marker='o', color='purple', label='v0.38 c=4') | ||
|
||
plt.title('finding the saturation point') | ||
plt.xlabel("total rate over all connections (txs/s)") | ||
plt.ylabel("txs processed in 90 seconds") | ||
plt.xticks(np.arange(0, 3600, 200).tolist()) | ||
ax.set_xlim([0, 3600]) | ||
ax.set_ylim([0, 60000]) | ||
ax.grid() | ||
ax.legend() | ||
|
||
fig.tight_layout() | ||
fig.savefig("saturation_v1_v038.png") | ||
plt.show() |
Oops, something went wrong.
Oops, something went wrong.
Binary file added
BIN
+42.7 KB
docs/references/qa/imgs/v1/saturation/throughput_vs_latencies_v1_with_LE.png
Oops, something went wrong.
Binary file added
BIN
+40.4 KB
docs/references/qa/imgs/v1/saturation/throughput_vs_latencies_v1_without_LE.png
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters