Best Practice Running Steemd v0.16.0

This has been mentioned in many discussions. I don't know if it's been posted here by someone.

I think you know what I'm talking about, so no basic tutorial here. I'm running the node in Linux.

Background:
The steemd v0.16.0 release is built on ChainBase library, which primarily brought disk IO issues if running with default settings, even with the kernel parameter tweaks recommended by the dev team in the release blog.

To get around those issues, the best practice (IMHO) is to keep the "shared file" data in memory. The second best is to use the swapping system provided by the OS which has better performance than storing that data on disk directly (by default).

Requirements:

  • For low memory nodes, best to have more than 12GB of free RAM, if not, use some swap space, for example 6G RAM and 6G swap
  • For full nodes, I have no experience, so try it yourself, or perhaps others will tell you.

How-to:

# change the size of /dev/shm
sudo mount -o remount,size=10G /dev/shm
# run steemd
./steemd --shared-file-dir /dev/shm/

From my experience, with a good block_log file (pre-downloaded or synced), it takes about 10 minutes to finish replaying on a low_mem node. If sync from scratch, it's expected to take less than a hour.

//Edit 1:
When I was saying "low memory node", actually additionally I mean only the "witness" plugin is enabled, aka in config.ini you have:

enable-plugin = witness

but not (by default):

enable-plugin = witness account_history account_by_key

//Edit 2:
A low memory node now need around 8GB space for the shared file, so it's safe to set the file size to 9GB so far (in config.ini, listed below). By default the limit is set to 32G, but it's not fully pre-allocated, so shouldn't matter if not change it. Usually I set it to 12G.

shared-file-size = 12G

//Edit 3:
If you forgot to change the enable-plugin setting at the first place, you may run into Bus error which will crash the node. In this case, you need to restart steemd with --replay parameter:

./steemd --shared-file-dir /dev/shm/ --replay
H2
H3
H4
3 columns
2 columns
1 column
29 Comments