ArangoDB Server environment variables
Environment variables used by
arangod inspects the following list of environment variables:
This variable can be used to override the automatic detection of the total amount of RAM present on the system. One can specify a decimal number (in bytes). Furthermore, numbers can have the following suffixes:
t: the number is multiplied by 1,000,000,000,000 (terabytes).
g: the number is multiplied by 1,000,000,000 (gigabytes).
m: the number is multiplied by 1,000,000 (megabytes).
k: the number is multiplied by 1,000 (kilobytes).
tib: the number is multiplied by 1,099,511,627,776 (tebibytes).
gib: the number is multiplied by 1,073,741,824 (gibibytes).
mib: the number is multiplied by 1,048,576 (mebibytes).
kib: the number is multiplied by 1,024 (kibibytes).
The total amount of RAM detected is logged as an INFO message at server start. If the variable is set, the overridden value is shown. Various default sizes are calculated based on this value (e.g. the RocksDB buffer cache size).
Setting this option can in particular be useful in two cases:
arangodis running in a container and its cgroup has a RAM limitation, then one should specify this limitation in this environment variable, since it is currently not automatically detected.
arangodis running alongside other services on the same machine and thus sharing the RAM with them, one should limit the amount of memory using this environment variable.
Note that setting this environment variable mainly affects the default values of startup options that have to do with memory usage. If the values of these startup options are explicitly set anyway, then setting the environment variable has no effect.
For example, the default value for the RocksDB block cache size (
--rocksdb.block-cache-sizestartup option) depends on the amount of available memory. If you set
ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY=32GB, the default value for the block cache size is
(32GB - 2GB) * 0.3 = 9GB. However, if you set the
--rocksdb.block-cache-sizestartup option explicitly via a configuration file or via the command-line, then the latter value is used, and not the option’s default value based on the
This variable can be used to override the automatic detection of the number of CPU cores present on the system.
The number of CPU cores detected is logged as an INFO message at server start. If the variable is set, the overridden value is shown. Various default values for threading are calculated based on this value.
Setting this option is useful if
arangodis running in a container or alongside other services on the same machine and shall not use all available CPUs.
This variable can be used to toggle the built-in crash handler in the Linux builds of
arangod. The crash handler is turned on by default for Linux builds, and it can be turned off by setting this environment variable to an empty string, the value of
CACHE_OBLIVIOUS(introduced in v3.9.7, v3.10.3)
If set to the string
true, jemalloc allocates one additional page (4096 bytes) for every allocation of 16384 or more bytes to change the base address if it is not divisible by 4096. This can help the CPU caches if the beginning of such blocks are accessed a lot.
On the other hand, it increases the memory usage because of the page alignment. The RocksDB buffer cache does most of its allocations for 16384 bytes, increasing the RAM usage by 25%. Setting the option to
falsedisables the optimization but the performance is expected to be the same for ArangoDB.
The default is
truein 3.9 and 3.10 up to v3.10.3. From v3.10.4 onwards, the default is
Also see the jemalloc documentation .
TZ_DATA(introduced in v3.8.0)
This variable can be used to specify the path to the directory containing the timezone information database for ArangoDB. That directory is normally named
tzdataand is shipped with ArangoDB releases. It is normally not required to set this environment variable, but it may be necessary in unusual setups with non-conventional directory layouts and paths.
Path to a directory with stop word files for ArangoSearch Text Analyzers.
For Docker specific environment variables please refer to Docker Hub