How much RAM cyberd actually need?

Last couple months i spent lots of time helping people with setup cyberd nodes , and one of the most touching topics during the validator setup is hardware requirements.
Most of the time every upcoming validator understand purpose of having enough video memory in it’s graphics card, as well as presence of good internet connection, but when it comes up to amount of RAM on the node - things become not very clear.
So i’ve decided to do a little research with the purpose to find out how much RAM should your node have to operate with cyber.
I’ve created VM and allocate different amounts of RAM to it, and attempted to start-up cyberd from scratch. Also important to note - VM has 4 cores allocated, and running on ssd storage.

  • 1st case - 4gb RAM

Node received command to start, applying genesis process started. Slowly, bit by bit all RAM is consumed, as well as swap memory:

Meanwhile node applied genesis, executed first block and started dialing for peers:

But successful connection never happened, and it’s not the problem of the networking, or closed ports . Node just simply suffer from low RAM, and may spin in this conditions for long time, also might be killed by system.

peer=d0518ce9881a4b0c5872e5e9b7c4ea8d760dad3f reason=“peer did not send us anything” timeout=15s
E[2020-05-08|19:06:35.857] Stopping peer for error module=p2p peer=“Peer{MConn{} d0518ce9881a4b0c5872e5e9b7c4ea8d760dad3f out}” err=“error with peer d0518ce9881a4b0c5872e5e9b7c4ea8d760dad3f: peer did not send us anything”
signal: killed

Conclusion: 4gb of RAM is not even close to be enough.

  • 2nd case - 6GB RAM

6gb is 50% more than in previous attempt, so lets see what would happen:

Node started, applied genesis, and began peer dialing. Looks save like the first case. Memory consumed almost by 100%, swap is 50% full:

And apparently after almost 10 minutes of battering to peers:

Ok, it started synchronization, but memory load is still very high, and hard to predict that it will be enough RAM until it finishes sync.

Conclusion: 6gb is closer, but still not 100%-OK.

  • 3rd case - 8GB RAM

Ok, let’s see: node is started flawlessly, sync began right after the start:

But checking memory - and its pretty busy!

Conclusion: 8GB of RAM is possible, but still not finest option.

  • 4th case - 10GB

Node is starting, beginning sync immediately, RAM consumption is as following:

RAM is pretty full, but swap is almost unused.

Conclusion: 10GB i will call minimal acceptable option for node.

Summary : You can’t run cyberd node on grampa’s computer, 16GB of RAM( next convenient setup after 10GB ) will be lowest option, at least for current network load.
And remember, what wise people sayin - You can never have too much RAM!