home shape

Technical Alert #3: Set Linux variable overcommit_memory to 0 or 1

This is a Technical Alert to inform all Users and Customers running ArangoDB on Linux that the new recommended kernel setting for overcommit_memory for both MMFiles and RocksDB storage engine is 0 or 1. The kernel default is 0.

right blob img min

Issue Description

Previously we were recommending to set overcommit_memory to 2 when using the RocksDB storage engine. We are now recommending to set 0 or 1, regardless of the storage engine in use.

When overcommit_memory is set to 2, the server might run into problems as the number of memory mappings will keep growing.

To not incur in possible memory issues, it is extremely important that the overcommit_memory setting is set to 0 or 1 and not to 2.

Issue Resolution

overcommit_memory can be set dynamically on Linux without the need of restarting the operation system. You can set it as follows, before executing arangod:

sudo bash -c "echo 0 >/proc/sys/vm/overcommit_memory"

Please make sure that the change above is permanent to a system reboot (e.g. use a script that sets it and ask the operating system to execute this script every time it starts).

Important Additional Information

Prior to ArangoDB v. 3.2.18, 3.3.20 or 3.4.0-RC.5 the ArangoDB log file was including a warning to set overcommit_memory to 2, when using the RocksDB storage engine. Starting from versions 3.2.18, 3.3.20 and 3.4.0-RC.5 such warning is not written anymore in the log.

Important: the recommendation of this Technical Alert (to not set overcommit_memory to 2) remains valid even if you are using an old ArangoDB version that prints that wrong warning in the log file.

Additional Questions

In case of any questions, please contact us. ArangoDB Customers can open a support ticket in our Support Platform.