Setup
As part of the release benchmarking cycle, we're comparing benchmarking runs for 2 different versions of cardano-node:
10.5-baseline- performance baseline from previous Node 10.5 releases10.5.4- the current Node 10.5.4 release
For this benchmark, we're gathering various metrics under 2 different workloads:
- value-only: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively.
- Plutus: Each transaction contains a Plutus script exhausting the per-tx execution budget. This workload produces small blocks (< 3kB) exclusively.
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 were performed in the Conway era.
Observations
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.
Resource Usage
10.5.4exhibits a slight 3% increase in Process CPU usage -- regardless of workload type.- RAM usage decreases slightly by 3% (0.23GiB - 0.26GiB, depending on workload).
- Observed CPU 85% span duration exhibits a very faint increase -- between ~0.25 and ~0.35 slots.
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.
Forging Loop
- For large blocks only, we can observe a small increase in Adoption time by 2ms.
- Beyond that, there are no significant changes to block production metrics.
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.
Peer propagation
- For large blocks, average Block Fetch duration decreases by 2ms, but Adoption times on the peers increase by 2ms.
- For small blocks, average Block Fetch duration increases by 5ms, but Adoption times on the peers decrease by 3ms.
End-to-end propagation
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.
- Cluster adoption metrics on
10.5.4exhibit no significant change under high submission / large blocks workload. - Under Plutus workload (low submission / small blocks), there's a minor increase by 2% - 3% between the 80th and 98th centiles.
Conclusion
- The small up and down changes in Adoption times and Block fetch duration are well within margin of slack and do not pose any kind of performance risk.
- Transitively, this applies to observed E2E propagation metrics as well.
- All in all,
10.5.4is pretty closely aligned with the existing 10.5 performance baseline. - From a performance perspective, we can determine it to be regression-free and attest a clean bill of health.
Attachments
Full comparison for value-only workload, PDF downloadable here.
Full comparison for Plutus workload, PDF downloadable here.
