Skip to content

Commit 7545a8e

Browse files
authored
Performance report for 9.0.0 release (#425)
* 9.0: add report PDFs * add blogpost
1 parent d12fed1 commit 7545a8e

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed

reports/2024-07-performance-9.0.0.md

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
title: Benchmarking -- Node 9.0.0
3+
slug: 2024-07-performance-9.0.0
4+
authors: mgmeier
5+
tags: [benchmarking-reports]
6+
hide_table_of_contents: false
7+
---
8+
9+
## Setup
10+
11+
As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of `cardano-node`:
12+
* `8.12.1` - baseline from a previous mainnet release
13+
* `9.0.0` - the current mainnet release
14+
15+
For each version, we're gathering various metrics under 2 different workloads:
16+
1. _value-only_: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
17+
2. _Plutus_: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.
18+
19+
Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. All runs
20+
were performed in the Conway era.
21+
22+
## Observations
23+
24+
These benchmarks are about evaluating specific corner cases in a constrained environment that allows for reliable reproduction of results; they're not trying to directly recreate the operational conditions on Mainnet.
25+
26+
### Resource Usage
27+
28+
1. Under value workload Process and Mutator CPU usage are slightly higher on `9.0` - 7% - 8% (4% each under Plutus workload). GC CPU is increased by 11%, but decreases under Putus workload by 3%.
29+
2. Only under value workload, Allocation Rate and Minor GCs increase by 5% and the live GC dataset grows by 3%. Heap size is constant.
30+
3. CPU 85% spans are 8% shorter (3% under Plutus workload).
31+
32+
Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.
33+
34+
### Forging Loop
35+
36+
1. Mempool Snapshotting and Self Adoption time on the block producer increase very slightly under value workload - 2ms (or 3%) each.
37+
2. Under Plutus workload, however, a decrease in Self Adoption time by 2ms (or 4%) is the only significant change in the forging loop.
38+
39+
The metric _'Slot start to announced'_ (see in attachments) is cumulative, and demonstrates how far into a slot the block producing node first announces the new header.
40+
41+
### Peer propagation
42+
43+
1. Block Fetch duration is 21ms faster (6%) - 7ms or 5% under Plutus workload.
44+
2. Fetched to Sending increases slightly by 3ms (7%) - only under value workload.
45+
3. Adoption times on the peers increase slightly by 4ms (5%) - under Plutus workload, however, they are 3ms (6%) faster.
46+
47+
### End-to-end propagation
48+
49+
This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.
50+
51+
1. Under value workload / full blocks on `9.0`, we can observe a 4% - 5% improvement of cluster adoption times in the 80th centile and above.
52+
2. Under Plutus workload / small blocks, the corresponding improvement is 5% - 6%.
53+
3. The main contributing factor is the improvement in Block Fetch duration.
54+
55+
56+
### Conclusion
57+
58+
* Network performance clearly improves by ~%5 for 80% to full cluster adoption - independent of workload.
59+
* RAM usage is unchanged on `9.0`. The slight rise in CPU usage is expected, given improved network performance, and does not pose cause for concern.
60+
* We have not observed any performance regression being introduced in `9.0.0.`.
61+
62+
NB. These benchmarks were performed in the Conway ledger era. As such, they do not cover the one-time performance cost of transitioning from Babbage and enabling the new features of the Conway ledger.
63+
64+
## Contact
65+
66+
As for publishing such benchmarking results, we are aware that more context and detail may be needed with regard to specfic metrics or benchmarking methodology.
67+
68+
We are still looking to gather questions, both general and specific, so that we can provide a suitable FAQ and possibly improve presentation in the future.
69+
70+
## Attachments
71+
72+
Full report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/release-9.0.0.value-only.pdf).
73+
74+
Full report for _Plutus workload_, PDF downloadable [here](../static/pdf/benchmarking/release-9.0.0.plutus.pdf).
75+
76+
NB. The release benchmarks for `8.12.1` were performed on tag `8.12.0-pre`. The patch version bump did not include changes relevant to performance; thus, measurements taken on `8.12.0-pre` remain valid.
1.06 MB
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)