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.
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.
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.
overcommit_memory can be set dynamically on Linux without the need of restarting the operation system. You can set it as follows, before executing
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.