- Reference >
- MongoDB Server Parameters
MongoDB Server Parameters¶
On this page
Synopsis¶
MongoDB provides a number of configuration options that you can set using:
the
setParameter
command:the
setParameter
configuration setting:the
--setParameter
command-line option formongod
andmongos
:
For additional configuration options, see
Configuration File Options, mongod
and
mongos
.
Parameters¶
Authentication Parameters¶
-
authenticationMechanisms
¶ Changed in version 2.6: Added support for the
PLAIN
andMONGODB-X509
authentication mechanisms.Changed in version 3.0: Added support for the
SCRAM-SHA-1
authentication mechanism.Available for both
mongod
andmongos
.Specifies the list of authentication mechanisms the server accepts. Set this to one or more of the following values. If you specify multiple values, use a comma-separated list and no spaces. For descriptions of the authentication mechanisms, see Authentication.
Value Description SCRAM-SHA-1 RFC 5802 standard Salted Challenge Response Authentication Mechanism using the SHA-1 hash function. MONGODB-CR MongoDB challenge/response authentication. MONGODB-X509 MongoDB TLS/SSL certificate authentication. GSSAPI (Kerberos) External authentication using Kerberos. This mechanism is available only in MongoDB Enterprise. PLAIN (LDAP SASL) External authentication using LDAP. PLAIN
transmits passwords in plain text. This mechanism is available only in MongoDB Enterprise.For example, to specify
PLAIN
as the authentication mechanism, use the following command:
-
clusterAuthMode
¶ New in version 2.6.
Available for both
mongod
andmongos
.Set the
clusterAuthMode
to eithersendX509
orx509
. Useful during rolling upgrade to use x509 for membership authentication to minimize downtime.Changed in version 3.0: Most MongoDB distributions now include support for TLS/SSL. See Configure mongod and mongos for TLS/SSL and TLS/SSL Configuration for Clients for more information about TLS/SSL and MongoDB.
-
enableLocalhostAuthBypass
¶ New in version 2.4.
Available for both
mongod
andmongos
.Specify
0
orfalse
to disable localhost authentication bypass. Enabled by default.enableLocalhostAuthBypass
is not available usingsetParameter
database command. Use thesetParameter
option in the configuration file or the--setParameter
option on the command line.See Localhost Exception for more information.
-
saslauthdPath
¶ Note
Available only in MongoDB Enterprise (except MongoDB Enterprise for Windows).
Available for both
mongod
andmongos
.Specify the path to the Unix Domain Socket of the
saslauthd
instance to use for proxy authentication.
-
saslHostName
¶ New in version 2.4.
Available for both
mongod
andmongos
.saslHostName
overrides MongoDB’s default hostname detection for the purpose of configuring SASL and Kerberos authentication.saslHostName
does not affect the hostname of themongod
ormongos
instance for any purpose beyond the configuration of SASL and Kerberos.You can only set
saslHostName
during start-up, and cannot change this setting using thesetParameter
database command.Note
saslHostName
supports Kerberos authentication and is only included in MongoDB Enterprise. For Linux systems, see Configure MongoDB with Kerberos Authentication on Linux for more information.
-
saslServiceName
¶ New in version 2.4.6.
Available for both
mongod
andmongos
.Allows users to override the default Kerberos service name component of the Kerberos principal name, on a per-instance basis. If unspecified, the default value is
mongodb
.MongoDB only permits setting
saslServiceName
at startup. ThesetParameter
command can not change this setting.saslServiceName
is only available in MongoDB Enterprise.Important
Ensure that your driver supports alternate service names.
-
scramIterationCount
¶ New in version 3.0.0.
Default:
10000
Available for both
mongod
andmongos
.Changes the number of hashing iterations used for all new stored passwords. More iterations increase the amount of time required for clients to authenticate to MongoDB, but makes passwords less susceptible to brute-force attempts. The default value is ideal for most common use cases and requirements. If you modify this value, it does not change the number of iterations for existing passwords.
You can set
scramIterationCount
when starting MongoDB or on runningmongod
instances.
-
sslMode
¶ New in version 2.6.
Available for both
mongod
andmongos
.Set the
net.ssl.mode
to eitherpreferSSL
orrequireSSL
. Useful during rolling upgrade to TLS/SSL to minimize downtime.Changed in version 3.0: Most MongoDB distributions now include support for TLS/SSL. See Configure mongod and mongos for TLS/SSL and TLS/SSL Configuration for Clients for more information about TLS/SSL and MongoDB.
-
supportCompatibilityFormPrivilegeDocuments
¶ Changed in version 3.0: Removed in MongoDB 3.0
Deprecated since version 2.6:
supportCompatibilityFormPrivilegeDocuments
has no effect in 2.6 and will be removed in 3.0.New in version 2.4.
-
userCacheInvalidationIntervalSecs
¶ Default: 30.
Available for
mongos
only.On a
mongos
instance, specifies the interval (in seconds) at which themongos
instance checks to determine whether the in-memory cache of user objects has stale data, and if so, clears the cache. If there are no changes to user objects,mongos
will not clear the cache.This parameter has a minimum value of
1
second and a maximum value of86400
seconds (24 hours).Changed in version 3.0: Default value has changed to
30
seconds, and the minimum value allowed has changed to1
second.mongos
only clears the user cache if there are changes.
General Parameters¶
-
connPoolMaxShardedConnsPerHost
¶ New in version 2.6.
Default: 200
Available for both
mongod
andmongos
.Set the maximum size of the connection pools for communication to the shards. The size of a pool does not prevent the creation of additional connections, but does prevent the connection pools from retaining connections above this limit.
Increase the
connPoolMaxShardedConnsPerHost
value only if the number of connections in a connection pool has a high level of churn or if the total number of created connections increase.You can only set
connPoolMaxShardedConnsPerHost
during startup in the config file or on the command line, as follows to increase the size of the connection pool:
-
connPoolMaxConnsPerHost
¶ New in version 2.6.
Default: 200
Available for both
mongod
andmongos
.Set the maximum size of the connection pools for outgoing connections to other
mongod
instances. The size of a pool does not prevent the creation of additional connections, but does prevent a connection pool from retaining connections in excess of the value ofconnPoolMaxConnsPerHost
.Only adjust this setting if your driver does not pool connections and you’re using authentication in the context of a sharded cluster.
You can only set
connPoolMaxConnsPerHost
during startup in the config file or on the command line, as in the following example:
-
cursorTimeoutMillis
¶ New in version 3.0.2.
Default: 600000 (i.e. 10 minutes)
Available for both
mongod
andmongos
.Sets the expiration threshold in milliseconds for idle cursors before MongoDB removes them; i.e. MongoDB removes cursors that have been idle for the specified
cursorTimeoutMillis
.For example, the following sets the
cursorTimeoutMillis
to300000
milliseconds (i.e. 5 minutes).Or, if using the
setParameter
command within themongo
shell:
-
failIndexKeyTooLong
¶ New in version 2.6.
Available for
mongod
only.In MongoDB 2.6, if you attempt to insert or update a document so that the value of an indexed field is longer than the
Index Key Length Limit
, the operation will fail and return an error to the client. In previous versions of MongoDB, these operations would successfully insert or modify a document but the index or indexes would not include references to the document.To avoid this issue, consider using hashed indexes or indexing a computed value. If you have an existing data set and want to disable this behavior so you can upgrade and then gradually resolve these indexing issues, you can use
failIndexKeyTooLong
to disable this behavior.failIndexKeyTooLong
defaults totrue
. Whenfalse
, a 2.6mongod
instance will provide the 2.4 behavior.Issue the following command to disable the index key length validation: for a running:binary:~bin.mongod instance:
You can also set
failIndexKeyTooLong
at run-time with the following operation.
-
newCollectionsUsePowerOf2Sizes
¶ Deprecated since version 3.0.0: MongoDB deprecates the
newCollectionsUsePowerOf2Sizes
parameter such that you cannot set thenewCollectionsUsePowerOf2Sizes
tofalse
andnewCollectionsUsePowerOf2Sizes
set totrue
is a no-op. To disable the power of 2 allocation for a collection, use thecollMod
command with thenoPadding
flag or thedb.createCollection()
method with thenoPadding
option.Default:
true
.Available for
mongod
only.Available for the MMAPv1 storage engine only.
-
notablescan
¶ Available for
mongod
only.Specify whether all queries must use indexes. If
1
, MongoDB will not execute queries that require a collection scan and will return an error.Consider the following example which sets
notablescan
to1
or true:Setting
notablescan
to1
can be useful for testing application queries, for example, to identify queries that scan an entire collection and cannot use an index.To detect unindexed queries without
notablescan
, consider reading the Evaluate Performance of Current Operations and Optimize Query Performance sections and using thelogLevel
parameter, mongostat and profiling.Don’t run production
mongod
instances withnotablescan
because preventing collection scans can potentially affect queries in all databases, including administrative queries.
-
textSearchEnabled
¶ Deprecated since version 2.6: MongoDB enables the text search feature by default. Manual enabling of this feature is unnecessary.
Available for both
mongod
andmongos
.Enables the text search feature. When manually enabling, you must enable on each and every
mongod
for replica sets.
-
ttlMonitorEnabled
¶ New in version 2.4.6.
Available for
mongod
only.To support TTL Indexes,
mongod
instances have a background thread that is responsible for deleting documents from collections with TTL indexes.To disable this worker thread for a
mongod
, setttlMonitorEnabled
tofalse
, as in the following operations:Alternately, you may disable the thread at run-time by starting the
mongod
instance with the following option:
Logging Parameters¶
-
logLevel
¶ Available for both
mongod
andmongos
.Specify an integer between
0
and5
signifying the verbosity of the logging, where5
is the most verbose.Consider the following example which sets the
logLevel
to2
:The default
logLevel
is0
.See also
-
logComponentVerbosity
¶ New in version 3.0.0.
Available for both
mongod
andmongos
.Sets the verbosity levels of various components for log messages. The verbosity level determines the amount of Informational and Debug messages MongoDB outputs.
The verbosity level can range from
0
to5
:0
is the MongoDB’s default log verbosity level, to include Informational messages.1
to5
increases the verbosity level to include Debug messages.
For a component, you can also specify
-1
to inherit the parent’s verbosity level.To specify the verbosity level, use a document similar to the following:
For the components, you can specify just the
<component>: <int>
in the document, unless you are setting both the parent verbosity level and that of the child component(s) as well:The top-level
verbosity
field corresponds tosystemLog.verbosity
which sets the default level for all components. The default value ofsystemLog.verbosity
is0
.The components correspond to the following settings:
accessControl
command
control
geo
index
network
query
replication
sharding
storage
storage.journal
write
Unless explicitly set, the component has the verbosity level of its parent. For example,
storage
is the parent ofstorage.journal
. That is, if you specify astorage
verbosity level, this level also applies tostorage.journal
components unless you specify the verbosity level forstorage.journal
.For example, the following sets the
default verbosity level
to1
, thequery
to2
, thestorage
to2
, and thestorage.journal
to1
.You can also set parameter
logComponentVerbosity
at run-time, passing the verbosity level document as a string.mongo
shell also provides thedb.setLogLevel()
to set the log level for a single component. For various ways to set the log verbosity level, see Configure Log Verbosity Levels.
-
logUserIds
¶ New in version 2.4.
Available for both
mongod
andmongos
.Specify
1
to enable logging of userids.Disabled by default.
-
quiet
¶ Available for both
mongod
andmongos
.Sets quiet logging mode. If
1
,mongod
will go into a quiet logging mode which will not log the following events/activities:- connection events;
- the
drop
command, thedropIndexes
command, thediagLogging
command, thevalidate
command, and theclean
command; and - replication synchronization activities.
Consider the following example which sets the
quiet
to1
:See also
-
traceExceptions
¶ Available for both
mongod
andmongos
.Configures
mongod
to log full source code stack traces for every database and socket C++ exception, for use with debugging. Iftrue
,mongod
will log full stack traces.Consider the following example which sets the
traceExceptions
totrue
:See also
Replication Parameters¶
-
replApplyBatchSize
¶ Available for
mongod
only.Specify the number of oplog entries to apply as a single batch.
replApplyBatchSize
must be an integer between 1 and 1024. The default value is 1. This option only applies to master/slave configurations and is valid only on amongod
started with the--slave
command line option.Batch sizes must be
1
for members withslavedelay
configured.
-
replIndexPrefetch
¶ Available for
mongod
only.Use
replIndexPrefetch
in conjunction withreplSetName
when configuring a replica set. The default value isall
and available options are:none
all
_id_only
By default secondary members of a replica set will load all indexes related to an operation into memory before applying operations from the oplog. You can modify this behavior so that the secondaries will only load the
_id
index. Specify_id_only
ornone
to prevent themongod
from loading any index into memory.
Storage Parameters¶
-
journalCommitInterval
¶ Available for
mongod
only.Specify an integer between
1
and500
signifying the number of milliseconds (ms) between journal commits.Consider the following example which sets the
journalCommitInterval
to200
ms:
-
syncdelay
¶ Available for
mongod
only.Specify the interval in seconds between fsync operations where
mongod
flushes its working memory to disk. By default,mongod
flushes memory to disk every 60 seconds. In almost every situation you should not set this value and use the default setting.Consider the following example which sets the
syncdelay
to60
seconds:See also
WiredTiger Parameters¶
-
wiredTigerConcurrentReadTransactions
¶ New in version 3.0.0.
Available for
mongod
only.Available for the WiredTiger storage engine only.
Specify the maximum number of concurrent read transactions allowed into the WiredTiger storage engine.
-
wiredTigerConcurrentWriteTransactions
¶ New in version 3.0.0.
Available for
mongod
only.Available for the WiredTiger storage engine only.
Specify the maximum number of concurrent write transactions allowed into the WiredTiger storage engine.
-
wiredTigerEngineRuntimeConfig
¶ New in version 3.0.0.
Available for
mongod
only.Specify
wiredTiger
storage engine configuration options for a runningmongod
instance. You can only set this parameter using thesetParameter
command and not using the command line or configuration file option.Warning
Avoid modifying the
wiredTigerEngineRuntimeConfig
unless under the direction from MongoDB engineers as this setting has major implication across both WiredTiger and MongoDB.Consider the following operation prototype:
See the WiredTiger documentation for all available WiredTiger configuration options.
Auditing Parameters¶
-
auditAuthorizationSuccess
¶ New in version 2.6.5.
Default:
false
Note
Available only in MongoDB Enterprise.
Available for both
mongod
andmongos
.Enables the auditing of authorization successes for the authCheck action.
When
auditAuthorizationSuccess
isfalse
, the audit system only logs the authorization failures forauthCheck
.To enable the audit of authorization successes, issue the following command:
Enabling
auditAuthorizationSuccess
degrades performance more than logging only the authorization failures.