Skip to content

DAOS Environment Variables

This section lists the environment variables used by DAOS.

Warning

Many of these variables are used for development purposes only, and may be removed or changed in the future.

The description of each variable follows the following format:

  • Short description

  • Type

  • The default behavior if not set.

  • A longer description if necessary

Type is defined by this table:

Type Values
BOOL 0 means false; any other value means true
BOOL2 no means false; any other value means true
BOOL3 set to empty, or any value means true; unset means false
INTEGER Non-negative decimal integer
STRING String

Server environment variables

Environment variables in this section only apply to the server side.

Variable Description
RDB_ELECTION_TIMEOUT Raft election timeout used by RDBs in milliseconds. INTEGER. Default to 7000 ms.
RDB_REQUEST_TIMEOUT Raft request timeout used by RDBs in milliseconds. INTEGER. Default to 3000 ms.
RDB_COMPACT_THRESHOLD Raft log compaction threshold in applied entries. INTEGER. Default to 256 entries.
RDB_AE_MAX_ENTRIES Maximum number of entries in a Raft AppendEntries request. INTEGER. Default to 32.
RDB_AE_MAX_SIZE Maximum total size in bytes of all entries in a Raft AppendEntries request. INTEGER. Default to 1 MB.
DAOS_REBUILD Determines whether to start rebuilds when excluding targets. BOOL2. Default to true.
DAOS_MD_CAP Size of a metadata pmem pool/file in MBs. INTEGER. Default to 128 MB.
DAOS_START_POOL_SVC Determines whether to start existing pool services when starting a daos_server. BOOL. Default to true.
CRT_DISABLE_MEM_PIN Disable memory pinning workaround on a server side. BOOL. Default to 0.
DAOS_SCHED_PRIO_DISABLED Disable server ULT prioritizing. BOOL. Default to 0.
DAOS_SCHED_RELAX_MODE The mode of CPU relaxing on idle. "disabled":disable relaxing; "net":wait on network request for INTVL; "sleep":sleep for INTVL. STRING. Default to "net"
DAOS_SCHED_RELAX_INTVL CPU relax interval in milliseconds. INTEGER. Default to 1 ms.

Server and Client environment variables

Environment variables in this section apply to both the server side and the client side.

Variable Description
FI_OFI_RXM_USE_SRX Enable shared receive buffers for RXM-based providers (verbs, tcp). BOOL. Auto-defaults to 1.
FI_UNIVERSE_SIZE Sets expected universe size in OFI layer to be more than expected number of clients. INTEGER. Auto-defaults to 2048.

Client environment variables

Environment variables in this section only apply to the client side.

Variable Description
FI_MR_CACHE_MAX_COUNT Enable MR caching in OFI layer. Recommended to be set to 0 (disable) when CRT_DISABLE_MEM_PIN is NOT set to 1. INTEGER. Default to unset.

Debug System (Client & Server)

Variable Description
D_LOG_FILE DAOS debug logs (both server and client) are written to stdout by default. The debug location can be modified by setting this environment variable ("D_LOG_FILE=/tmp/daos_debug.log").
D_LOG_FILE_APPEND_PID If set and not 0, causes the main PID to be appended at the end of D_LOG_FILE path name (both server and client).
D_LOG_STDERR_IN_LOG If set and not 0, causes stderr messages to be merged in D_LOG_FILE.
D_LOG_SIZE DAOS debug logs (both server and client) have a 1GB file size limit by default. When this limit is reached, the current log file is closed and renamed with a .old suffix, and a new one is opened. This mechanism will repeat each time the limit is reached, meaning that available saved log records could be found in both ${D_LOG_FILE} and last generation of ${D_LOG_FILE}.old files, to a maximum of the most recent 2*D_LOG_SIZE records. This can be modified by setting this environment variable ("D_LOG_SIZE=536870912"). Sizes can also be specified in human-readable form using k, m, g, K, M, and G. The lower-case specifiers are base-10 multipliers and the upper case specifiers are base-2 multipliers.
D_LOG_FLUSH Allows to specify a non-default logging level where flushing will occur. By default, only levels above WARN will cause an immediate flush instead of buffering.
D_LOG_TRUNCATE By default log is appended. But if set this variable will cause log to be truncated upon first open and logging start.
DD_SUBSYS Used to specify which subsystems to enable. DD_SUBSYS can be set to individual subsystems for finer-grained debugging ("DD_SUBSYS=vos"), multiple facilities ("DD_SUBSYS=eio,mgmt,misc,mem"), or all facilities ("DD_SUBSYS=all") which is also the default setting. If a facility is not enabled, then only ERR messages or more severe messages will print.
DD_STDERR Used to specify the priority level to output to stderr. Options in decreasing priority level order: FATAL, CRIT, ERR, WARN, NOTE, INFO, DEBUG. By default, all CRIT and more severe DAOS messages will log to stderr ("DD_STDERR=CRIT"), and the default for CaRT/GURT is FATAL.
D_LOG_MASK Used to specify what type/level of logging will be present for either all of the registered subsystems or a select few. Options in decreasing priority level order: FATAL, CRIT, ERR, WARN, NOTE, INFO, DEBUG. DEBUG option is used to enable all logging (debug messages as well as all higher priority level messages). Note that if D_LOG_MASK is not set, it will default to logging all messages excluding debug ("D_LOG_MASK=INFO"). Example: "D_LOG_MASK=DEBUG". This will set the logging level for all facilities to DEBUG, meaning that all debug messages, as well as higher priority messages will be logged (INFO, NOTE, WARN, ERR, CRIT, FATAL). Example 2: "D_LOG_MASK=DEBUG,MEM=ERR,RPC=ERR". This will set the logging level to DEBUG for all facilities except MEM & RPC (which will now only log ERR and higher priority level messages, skipping all DEBUG, INFO, NOTE & WARN messages)
DD_MASK Used to enable different debug streams for finer-grained debug messages, essentially allowing the user to specify an area of interest to debug (possibly involving many different subsystems) as opposed to parsing through many lines of generic DEBUG messages. All debug streams will be enabled by default ("DD_MASK=all"). Single debug masks can be set ("DD_MASK=trace") or multiple masks ("DD_MASK=trace,test,mgmt"). Note that since these debug streams are strictly related to the debug log messages, DD_LOG_MASK must be set to DEBUG. Priority messages higher than DEBUG will still be logged for all facilities unless otherwise specified by D_LOG_MASK (not affected by enabling debug masks).
Back to top