☑️Limiting the RAM assigned to each vCore

If you're encountering Out of Memory (OOM) errors in your system, and you haven't followed the recommended 1:2 ratio between CPU cores and RAM, there's a solution available within the configuration settings of your system.

This tutorial will guide you through the process of using the dataWorkerMemoryLimit setting in your ceremonyclient/node/.config/config.yml file to mitigate OOM errors.

Locate Your Configuration File

Find and open your ceremonyclient/node/.config/config.yml file. This file typically contains various configuration settings for your system.

Within the config.yml file, locate the section related to the engine settings. This is where you'll make the necessary adjustments.

Set the dataWorkerMemoryLimit

Under the engine heading, add or modify the dataWorkerMemoryLimit parameter. This parameter allows you to specify the memory limit for each worker (core/thread) in bytes.

engine:
  dataWorkerMemoryLimit: [memory_limit_in_bytes]

Calculate the Memory Limit

Keep in mind that while adjusting the memory limit can help alleviate OOM errors, it's still recommended to have at least 2GB of physical memory per worker for optimal performance.

Determine the appropriate memory limit based on your system's specifications. The default allocation is 1.75GB per worker. If your system has less memory available, adjust the limit accordingly.

For example, to allocate 500MB per worker: 500 * 1024 * 1024 = 524288000

engine:
  dataWorkerMemoryLimit: 524288000

Similarly, for 875MB per worker: 875 * 1024 * 1024 = 917504000

engine:
  dataWorkerMemoryLimit: 917504000

Apply the Configuration

Save the changes to your config.yml file.

Restart your service

service ceremonyclient restart

Check your server performance:

Monitor the node log to ensure everything is functioning correctly:

sudo journalctl -u ceremonyclient.service -f --no-hostname -o cat

I also like to use Hetrixtools to monitor system resources more closely (free to use on up to 15 servers)


Last updated