Skip to content

Commit cbb2481

Browse files
authored
Performance report for 10.2 UTxO-HD (#549)
1 parent be34a17 commit cbb2481

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed
+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
title: Benchmarking -- UTxO-HD on 10.2
3+
slug: 2025-02-performance-utxohd-10.2
4+
authors: mgmeier
5+
tags: [benchmarking-reports]
6+
hide_table_of_contents: false
7+
---
8+
9+
## Setup
10+
11+
This report compares benchmarking runs for 2 different flavours of `cardano-node`:
12+
* `10.2-regular` - regular Node performance baseline from the `10.2.x` release benchmarks.
13+
* `10.2-utxohd` - the UTxO-HD build of the Node based on that same version.
14+
15+
For this benchmark, we're gathering various metrics under the _value-only_ workload used in release benchmarks: Each transaction consumes 2 inputs and creates 2 outputs,
16+
changing the UTxO set. This workload produces full blocks (> 80kB) exclusively. Moreover, it's the workload that produces most stress on the UTxO set. Thus, it's the most meaningful
17+
workload when it comes to benchmarking UTxO-HD.
18+
19+
We target the _in-memory backing store_ of UTxO-HD - LedgerDB V2 in this case. The on-disk backend is not used.
20+
21+
Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology.
22+
23+
## Observations
24+
25+
### Resource Usage
26+
27+
1. With UTxO-HD's in-memory backend, the memory footprint increases slightly by 3%.
28+
2. Process CPU usage is moderately reduced by 9% with UTxO-HD.
29+
3. Additionally, CPU 85% spans decrease in duration by 24% (~1.1 slots).
30+
31+
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.
32+
33+
### Forging Loop
34+
35+
1. Block context acquisition improves by 3ms (or 11%), while Ledger ticking takes 3ms (or 10%) longer.
36+
2. Creating a mempool snapshot is significantly faster - by 16ms (or 21%).
37+
3. As a result, a UTxO-HD block producing node is able to announce a new header 17ms (or 12%) earlier into a slot.
38+
4. Additionally, adoption time on the forger is slightly improved - by 4ms (or 5%).
39+
40+
### Peer propagation
41+
42+
1. Block fetch duration increases moderately by 13ms or 4%.
43+
2. Adoption times on the peers improve very slightly - by 2ms or 2%.
44+
45+
### End-to-end propagation
46+
47+
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.
48+
49+
1. There is no significant difference in cluster adoption times between regular and UTxO-HD node.
50+
51+
### Conclusion
52+
53+
Regarding the UTxO-HD build using the in-memory LedgerDB V2 backend, we can conclude that:
54+
1. it is lighter on CPU usage compared to the regular node, albeit requiring just slightly more RAM.
55+
2. it poses no performance risk to block producers; on the contrary, the changes in forging loop metrics seem favourable compared to the regular node.
56+
3. network performance would be expeceted to be on par with the regular node.
57+
4. even under stress, there is no measurable performance regression compared to the regular node.
58+
5. as a consequence of the above, performance-wise, it's a viable replacement for the regular in-memory solution.
59+
60+
## Attachment
61+
62+
Full report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/utxohd-10.2.value-only.pdf).
63+
Binary file not shown.

0 commit comments

Comments
 (0)