Determine Collator node minimal performance requirement

The most common questions to onboard a new collator is: What’s the CPU and memory requirements?

Parachain collators are very performance sensitive that only have limited time to produce and broadcast PoV block. The block production rate is usually bounded by network latency and single core CPU performance.

While there is a reference hardware for Polkadot, it doesn’t necessary reflect the hardware requirement for parachain collators.

A relatively new feature provided by Substrate is benchmark machine that allow people to run this on their machine to determine the machine performance.

Currently, it checks if the current machine matching to the reference hardware, however, this is not necessary what we want from the parachain operator point of view. It does not reflect the minimal requirement as a parachain collator node. For example, I am not very sure if the disk write performance impacts collator block production much.

In order to come out a realistic requirements, I would like to ask all collators for all parachains to provide their machine benchmark information and then we should be able to come up a realistic minimal performance requirement for collator nodes.

This is the docker command to run the benchmark (use this if you are running the node within docker):

docker run --rm parity/polkadot:v0.9.29 benchmark machine --chain=dev.

Otherwise use this to run:

PARACHAIN-BIN benchmark machine --chain=VALID_CHAIN

Please reply here with your benchmark result with your collator address so we can check the onchain block production rate performance. (Do we have generic tool for that?)

2 Likes

Let me start:

Parachain: Acala
Collator Address: 21vkHrN6nQnZt5a3YWExxkAwMPepKyXHHDowG22fjxGbBLai
Benchmark result:

+----------+----------------+---------------+--------------+-------------------+
| Category | Function       | Score         | Minimum      | Result            |
+==============================================================================+
| CPU      | BLAKE2-256     | 969.76 MiB/s  | 1.00 GiB/s   | ✅ Pass ( 94.2 %) |
|----------+----------------+---------------+--------------+-------------------|
| CPU      | SR25519-Verify | 543.16 KiB/s  | 666.00 KiB/s | ❌ Fail ( 81.6 %) |
|----------+----------------+---------------+--------------+-------------------|
| Memory   | Copy           | 10.57 GiB/s   | 14.32 GiB/s  | ❌ Fail ( 73.8 %) |
|----------+----------------+---------------+--------------+-------------------|
| Disk     | Seq Write      | 1016.52 MiB/s | 450.00 MiB/s | ✅ Pass (225.9 %) |
|----------+----------------+---------------+--------------+-------------------|
| Disk     | Rnd Write      | 295.13 MiB/s  | 200.00 MiB/s | ✅ Pass (147.6 %) |
+----------+----------------+---------------+--------------+-------------------+

Parachain: Astar
Collator Address: XAL7gbTCFBNCmYBwdQzcFvkSSbfMTSXEMqigEpkzyNLyYrw
Benchmark result:

+----------+----------------+--------------+--------------+-------------------+
| Category | Function       | Score        | Minimum      | Result            |
+=============================================================================+
| CPU      | BLAKE2-256     | 1.06 GiB/s   | 1.00 GiB/s   | ✅ Pass (105.4 %) |
|----------+----------------+--------------+--------------+-------------------|
| CPU      | SR25519-Verify | 790.23 KiB/s | 666.00 KiB/s | ✅ Pass (118.7 %) |
|----------+----------------+--------------+--------------+-------------------|
| Memory   | Copy           | 16.42 GiB/s  | 14.32 GiB/s  | ✅ Pass (114.7 %) |
|----------+----------------+--------------+--------------+-------------------|
| Disk     | Seq Write      | 1.51 GiB/s   | 450.00 MiB/s | ✅ Pass (344.5 %) |
|----------+----------------+--------------+--------------+-------------------|
| Disk     | Rnd Write      | 712.46 MiB/s | 200.00 MiB/s | ✅ Pass (356.2 %) |
+----------+----------------+--------------+--------------+-------------------+
From 5 benchmarks in total, 5 passed and 0 failed (10% fault tolerance).
2022-10-02 23:54:25 The hardware meets the requirements

OVH Advance-1 Gen 2
Intel 2386, 64GB RAM,
1.92 TB Storage

What makes you think that the requirements are that much different? I mean yes, you are right that write performance isn’t that important. However, one important thing to consider is also that even if you have a very beefy collator, you are still bound to what the relay chain validators are able to validate.

I am trying to identity the minimal requirement, presumably is less than the current suggestion. I don’t have any data to back my assumptions and hence trying to collect some so we could derive some objective results.

Hey Bryan, thanks for bringing this up, we have around 20 collators on various parachains, ran on various machines and data centers so I suppose we can provide quite a lot of data.

I can actually confirm that there are huge differences between parachains which is stemming mainly from parachain/block utilization. There are some chains that can be even run on a cheap VPS and there are chains that require a beefy machine with high CPU frequency to be able to create blocks in time.

2 Likes

Coming a bit late but here is the sample we compiled of a few different providers / config for Astar benchmark.

Thought it would be interesting to share, especially how much the usual config of cloud providers like AWS or GCP don’t fit any requirement for collators.

1 Like

Back in April this year, the Mangata team was asking questions on this topic during the SBP Office Hours.

I know it’s been a while, but pinging @PeterMangata here for awareness.

1 Like