Benchmarking with Blockchains
Posted on Tuesday 28 March 2023 Suggest An Edit
# benchmark
# blockchain
# latency
# IOPS
# c2d-standard-4
Table of Contents
Benchmarking with blockchains
In pursuit of optimal performance, we benchmarked Epyc 7003 series C2D Milan processors using Polkadot client and Fio.
These tests indicate that cloud providers current hardware may not be ideal for running next-gen blockchains.
Best option for running blockchains to be bare metal lxc containers running on latest AMD mobile processors like 7045HX,
unfortunately only available to OEMs. For the comparison we recommend good read article building and self-hosting 1000$ validator.
Test Results
Using Epyc 7003 series C2D Milan processors, we found the following results:
| Category | Function | Score | Minimum | Result |
|==========|================|=============|=============|===================|
| CPU | BLAKE2-256 | 952.02 MiBs | 1.00 GiBs | ✅ Pass ( 92.5 %) |
| CPU | SR25519-Verify | 487.97 KiBs | 666.00 KiBs | ❌ Fail ( 73.3 %) |
| Memory | Copy | 18.07 GiBs | 14.32 GiBs | ✅ Pass (126.1 %) |
| Disk | Seq Write | 239.93 MiBs | 450.00 MiBs | ❌ Fail ( 53.3 %) |
| Disk | Rnd Write | 119.98 MiBs | 200.00 MiBs | ❌ Fail ( 60.0 %) |
Minimum: 790 ns
Maximum: 1668781 ns
Mean: 1666.980091 ns
Standard Deviation: 823.241338 ns
99.99th Percentile Read Latency: 4960 ns
The read latency does not meet the 2000 ns and lower QoS requirement
The results show that Epyc 7003 series C2D Milan processors fail to meet some key requirements, making them less suitable for running next-gen blockchains.
Benchmark methods
curl -s https://api.github.com/gists/868fac581cf66af7780a1ccfd02c7b1b | jq -r '.files | first(.[]).content' > chainbench.sh && chmod +x chainbench.sh && ./chainbench.sh
Testing methodology consisted of Polkadot benchmark && 10G fio for IOPS and latency to separate SSD disk where chaindata is hold.