- Reference >
- MongoDB Server Parameters
MongoDB Server Parameters¶
On this page
Synopsis¶
MongoDB provides a number of configuration options that you can set using:
the
setParametercommand:the
setParameterconfiguration setting:the
--setParametercommand-line option formongodandmongos:
For additional configuration options, see
Configuration File Options, mongod and
mongos.
Parameters¶
Authentication Parameters¶
-
authenticationMechanisms¶ Changed in version 4.0: Remove support for the deprecated
MONGODB-CRauthentication mechanism.Available for both
mongodandmongos.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. SCRAM-SHA-256 RFC 7677 standard Salted Challenge Response Authentication Mechanism using the SHA-256 hash function.
Requires featureCompatibilityVersion set to
4.0.New in version 4.0.
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. You can also use PLAINfor authenticating in-database users.PLAINtransmits passwords in plain text. This mechanism is available only in MongoDB Enterprise.You can only set
authenticationMechanismsduring start-up.For example, to specify both
PLAINandSCRAM-SHA-256as the authentication mechanisms, use the following command:
-
clusterAuthMode¶ Available for both
mongodandmongos.Set the
clusterAuthModeto eithersendX509orx509. Useful during rolling upgrade to use x509 for membership authentication to minimize downtime.For more information about TLS/SSL and MongoDB, see Configure mongod and mongos for TLS/SSL and TLS/SSL Configuration for Clients .
-
enableLocalhostAuthBypass¶ Available for both
mongodandmongos.Specify
0orfalseto disable localhost authentication bypass. Enabled by default.enableLocalhostAuthBypassis not available usingsetParameterdatabase command. Use thesetParameteroption in the configuration file or the--setParameteroption on the command line.See Localhost Exception for more information.
-
KeysRotationIntervalSec¶ Default: 7776000 seconds (90 days)
Specifies the number of seconds for which an HMAC signing key is valid before rotating to the next one. This parameter is intended primarily to facilitate authentication testing.
You can only set
KeysRotationIntervalSecduring start-up, and cannot change this setting with thesetParameterdatabase command.
-
ldapForceMultiThreadMode¶ New in version 4.4,: 4.2, 4.0
Default: false
Enables the performance of concurrent LDAP operations.
Note
Only if you are certain that your instance of
libldapis safe to use in this mode, enable this flag. You may experience crashes of the MongoDB process if thelibldapversion you are using is not thread safe.You must use
ldapForceMultiThreadModeto use LDAP connection pool. To enable LDAP connection pool, setldapForceMultiThreadModeandldapUseConnectionPooltotrue.Tip
If you have any concerns regarding your MongoDB version, OS version or libldap version, please contact MongoDB Support.
-
ldapUserCacheInvalidationInterval¶ Changed in version 5.2.
Note
Starting in MongoDB 5.2, the update interval for cached user information retrieved from an LDAP server depends on
ldapShouldRefreshUserCacheEntries:- If true, use
ldapUserCacheRefreshInterval. - If false, use
ldapUserCacheInvalidationInterval.
For use with MongoDB deployments using LDAP Authorization. Available for
mongodinstances only.The interval (in seconds) that the
mongodinstance waits between external user cache flushes. After MongoDB flushes the external user cache, MongoDB reacquires authorization data from the LDAP server the next time an LDAP-authorized user issues an operation.Increasing the value specified increases the amount of time MongoDB and the LDAP server can be out of sync, but reduces the load on the LDAP server. Conversely, decreasing the value specified decreases the time MongoDB and the LDAP server can be out of sync while increasing the load on the LDAP server.
Defaults to 30 seconds.
- If true, use
-
ldapUserCacheRefreshInterval¶ New in version 5.2.
Available for
mongodonly.Type: integer
Default: 30 seconds
Note
Starting in MongoDB 5.2, the update interval for cached user information retrieved from an LDAP server depends on
ldapShouldRefreshUserCacheEntries:- If true, use
ldapUserCacheRefreshInterval. - If false, use
ldapUserCacheInvalidationInterval.
For MongoDB deployments using LDAP Authorization.
The interval in seconds that
mongodwaits before refreshing the cached user information from the LDAP server.The maximum interval is 86,400 seconds (24 hours).
For example, the following sets
ldapUserCacheRefreshIntervalto4000seconds:Or, if using the
setParametercommand withinmongosh:- If true, use
-
ldapUserCacheStalenessInterval¶ New in version 5.2.
Available for
mongodonly.Type: integer
Default: 90 seconds
For MongoDB deployments using LDAP Authorization.
The interval in seconds that
mongodretains the cached LDAP user information after the last cache refresh.If more than
ldapUserCacheStalenessIntervalseconds elapse without a successful refresh of the user information from the LDAP server, thenmongod:- Invalidates the cached LDAP user information.
- Is unavailable for LDAP users. LDAP users are unable to
authenticate until
mongodcontacts the LDAP server.
The maximum interval is 86,400 seconds (24 hours).
For example, the following sets
ldapUserCacheStalenessIntervalto4000seconds:Or, if using the
setParametercommand withinmongosh:
-
ldapUseConnectionPool¶ New in version 4.0.9.
Specifies whether MongoDB should use connection pooling when connecting to the LDAP server for authentication/authorization.
Starting in version 4.2, MongoDB uses the following default values:
- true on Windows.
- true on Linux where MongoDB Enterprise binaries are linked against
libldap_r. - false on Linux where MongoDB Enterprise binaries are linked against
libldap.
In earlier versions (versions 4.0.9+), the default value is
false.You can only set
ldapUseConnectionPoolduring start-up, and cannot change this setting with thesetParameterdatabase command.
-
ldapConnectionPoolUseLatencyForHostPriority¶ New in version 4.2.1 and 4.0.13
Default: true
A boolean that determines whether the LDAP connection pool (see
ldapUseConnectionPool) should use latency of the LDAP servers to determine the connection order (from lowest latency to highest).You can only set
ldapConnectionPoolUseLatencyForHostPriorityduring start-up, and cannot change this setting during runtime with thesetParameterdatabase command.
-
ldapConnectionPoolMinimumConnectionsPerHost¶ New in version 4.2.1 and 4.0.13
Default: 1
The minimum number of connections to keep open to each LDAP server.
You can only set
ldapConnectionPoolMinimumConnectionsPerHostduring start-up, and cannot change this setting during runtime with thesetParameterdatabase command.
-
ldapConnectionPoolMaximumConnectionsPerHost¶ New in version 4.2.1 and 4.0.13
Changed starting in MongoDB versions 4.4.15, 5.0.9, and 6.0.0 Changed default value to
2147483647. In previous versions, the default is unset.Default: 2147483647
The maximum number of connections to keep open to each LDAP server.
You can only set
ldapConnectionPoolMaximumConnectionsPerHostduring start-up, and cannot change this setting during runtime with thesetParameterdatabase command.
-
ldapConnectionPoolMaximumConnectionsInProgressPerHost¶ New in version 4.2.1 and 4.0.13
Changed starting in MongoDB versions 4.4.15, 5.0.9, and 6.0.0 Changed default value to
2. In previous versions, the default is unset.Default: 2
The maximum number of in-progress connect operations to each LDAP server.
You can only set
ldapConnectionPoolMaximumConnectionsInProgressPerHostduring start-up, and cannot change this setting with thesetParameterdatabase command.
-
ldapConnectionPoolHostRefreshIntervalMillis¶ New in version 4.2.1 and 4.0.13
Default: 60000
The number of milliseconds in-between health checks of the pooled LDAP connections.
You can only set
ldapConnectionPoolHostRefreshIntervalMillisduring start-up, and cannot change this setting with thesetParameterdatabase command.
-
ldapConnectionPoolIdleHostTimeoutSecs¶ New in version 4.2.1 and 4.0.13
Default: 300
The maximum number of seconds that the pooled connections to an LDAP server can remain idle before being closed.
You can only set
ldapConnectionPoolIdleHostTimeoutSecsduring start-up, and cannot change this setting with thesetParameterdatabase command.
-
ldapShouldRefreshUserCacheEntries¶ New in version 5.2.
Available for
mongodonly.Type: boolean
Default: true
For MongoDB deployments using LDAP Authorization.
Starting in MongoDB 5.2, the update interval for cached user information retrieved from an LDAP server depends on
ldapShouldRefreshUserCacheEntries:- If true, use
ldapUserCacheRefreshInterval. - If false, use
ldapUserCacheInvalidationInterval.
You can only set
ldapShouldRefreshUserCacheEntriesduring startup in theconfiguration fileor with the--setParameteroption on the command line. For example, the following disablesldapShouldRefreshUserCacheEntries:- If true, use
-
maxValidateMemoryUsageMB¶ New in version 5.0.
Default: 200
The maximum memory usage limit in megabytes for the
validatecommand. If the limit is exceeded,validatereturns as many results as possible and warns that not all corruption might be reported because of the limit.You can set
maxValidateMemoryUsageMBduring startup, and can change this setting using thesetParameterdatabase command.
-
ocspEnabled¶ New in version 4.4: Available on Linux and macOS.
Default: true
The flag that enables or disables OCSP.
You can only set
ocspEnabledduring startup in theconfiguration fileor with the--setParameteroption on the command line. For example, the following disables OCSP:
-
ocspValidationRefreshPeriodSecs¶ New in version 4.4: Available on Linux.
The number of seconds to wait before refreshing the stapled OCSP status response. Specify a number greater than or equal to 1.
You can only set
ocspValidationRefreshPeriodSecsduring startup in theconfiguration fileor with the--setParameteroption on the command line. For example, the following sets the parameter to 3600 seconds:Starting in MongoDB 5.0, the
rotateCertificatescommand anddb.rotateCertificates()method will also refresh any stapled OCSP responses.
-
opensslCipherConfig¶ Available on Linux only
Changed in version 4.0: With the use of native TLS/SSL libraries, the parameter
opensslCipherConfigis supported for Linux/BSD and no longer supported in Windows and macOS. See MongoDB 4.0 TLS/SSL.Specify the cipher string for OpenSSL when using TLS/SSL encryption. For a list of cipher strings, see https://www.openssl.org/docs/man1.1.1/man1/ciphers.html. Multiple cipher strings can be provided as a colon-separated list.
Note
This parameter is only for use with TLS 1.2 or earlier. To specify cipher suites for use with TLS 1.3, use the
opensslCipherSuiteConfigparameter.You can only set
opensslCipherConfigduring start-up, and cannot change this setting using thesetParameterdatabase command.For version 4.2 and greater, the use of
TLSoptions is preferred overSSLoptions. The TLS options have the same functionality as theSSLoptions. For example, the following configures amongodwith aopensslCipherConfigcipher string of'HIGH:!EXPORT:!aNULL@STRENGTH'in MongoDB 4.2:For versions 4.0 and earlier:
-
opensslCipherSuiteConfig¶ New in version 5.0.
Available on Linux only
Specify the list of supported cipher suites OpenSSL should permit when using TLS 1.3 encryption.
For a list of cipher suites for use with TLS 1.3, see https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_cipher_list.html. Multiple cipher suites can be provided as a colon-separated list.
Note
This parameter is only for use with TLS 1.3. To specify cipher strings for use with TLS 1.2 or earlier, use the
opensslCipherConfigparameter.You can only set
opensslCipherSuiteConfigduring start-up, and cannot change this setting using thesetParameterdatabase command. For example, the following configures amongodwith aopensslCipherSuiteConfigcipher suite of'TLS_AES_256_GCM_SHA384'for use with TLS 1.3:
-
opensslDiffieHellmanParameters¶ Available on Linux only
Specify the path to the PEM file that contains the OpenSSL Diffie-Hellman parameters when using TLS 1.2 or previous. Specifying the OpenSSL Diffie-Hellman parameters enables support for Ephemeral Diffie-Hellman (DHE) cipher suites during TLS/SSL encryption.
This parameter is not supported for use with TLS 1.3.
Ephemeral Diffie-Hellman (DHE) cipher suites (and Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) cipher suites) provide Forward Secrecy. Forward Secrecy cipher suites create an ephemeral session key that is protected by the server’s private key but never transmitted. This ensures that even if a server’s private key is compromised, you cannot decrypt past sessions with the compromised key.
Note
Starting in MongoDB 4.2, if
opensslDiffieHellmanParametersis unset but ECDHE is enabled, MongoDB enables DHE using theffdhe3072Diffie-Hellman parameter, as defined in RFC 7919#appendix-A.2. Theffdhe3072is a strong parameter (specifically, size is greater than 1024). Strong parameters are not supported with Java 6 and 7 unless extended support has been purchased from Oracle.You can only set
opensslDiffieHellmanParametersduring startup, and cannot change this setting using thesetParameterdatabase command.If for performance reasons, you need to disable support for DHE cipher suites, use the
opensslCipherConfigparameter:
-
saslauthdPath¶ Note
Available only in MongoDB Enterprise (except MongoDB Enterprise for Windows).
Available for both
mongodandmongos.Specify the path to the Unix Domain Socket of the
saslauthdinstance to use for proxy authentication.
-
saslHostName¶ Available for both
mongodandmongos.saslHostNameoverrides MongoDB’s default hostname detection for the purpose of configuring SASL and Kerberos authentication.saslHostNamedoes not affect the hostname of themongodormongosinstance for any purpose beyond the configuration of SASL and Kerberos.You can only set
saslHostNameduring start-up, and cannot change this setting using thesetParameterdatabase command.Note
saslHostNamesupports Kerberos authentication and is only included in MongoDB Enterprise. For more information, see the following:
-
saslServiceName¶ Available for both
mongodandmongos.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
saslServiceNameat startup. ThesetParametercommand can not change this setting.saslServiceNameis only available in MongoDB Enterprise.Important
Ensure that your driver supports alternate service names.
-
scramIterationCount¶ Default:
10000Available for both
mongodandmongos.Changes the number of hashing iterations used for all new
SCRAM-SHA-1passwords. 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 iteration count for existing passwords. The
scramIterationCountvalue must be5000or greater.For example, the following sets the
scramIterationCountto12000.Or, if using the
setParametercommand withinmongosh:
-
scramSHA256IterationCount¶ New in version 4.0.
Default:
15000Available for both
mongodandmongos.Changes the number of hashing iterations used for all new
SCRAM-SHA-256passwords. 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 iteration count for existing passwords. The
scramSHA256IterationCountvalue must be5000or greater.For example, the following sets the
scramSHA256IterationCountto20000.Or, if using the
setParametercommand withinmongosh:
-
sslMode¶ Available for both
mongodandmongos.Set the
net.ssl.modeto eitherpreferSSLorrequireSSL. Useful during rolling upgrade to TLS/SSL to minimize downtime.For more information about TLS/SSL and MongoDB, see Configure mongod and mongos for TLS/SSL and TLS/SSL Configuration for Clients .
See also
-
tlsMode¶ New in version 4.2.
Available for both
mongodandmongos.Set to either:
preferTLSrequireTLS
The
tlsModeparameter is useful during rolling upgrade to TLS/SSL to minimize downtime.For more information about TLS/SSL and MongoDB, see Configure mongod and mongos for TLS/SSL and TLS/SSL Configuration for Clients .
See also
-
tlsOCSPStaplingTimeoutSecs¶ New in version 4.4: Available for Linux.
The maximum number of seconds the
mongod/mongosinstance should wait to receive the OCSP status response for its certificates.Specify an integer greater than or equal to (
>=) 1. If unset,tlsOCSPStaplingTimeoutSecsuses thetlsOCSPVerifyTimeoutSecsvalue.You can only set
tlsOCSPStaplingTimeoutSecsduring startup in theconfiguration fileor with the--setParameteroption on the command line. For example, the following sets thetlsOCSPStaplingTimeoutSecsto 20 seconds:
-
tlsOCSPVerifyTimeoutSecs¶ New in version 4.4: Available for Linux and Windows.
Default: 5
The maximum number of seconds that the
mongod/mongosshould wait for the OCSP response when verifying client certificates.Specify an integer greater than or equal to (
>=) 1.You can only set
tlsOCSPVerifyTimeoutSecsduring startup in theconfiguration fileor with the--setParameteroption on the command line. For example, the following sets thetlsOCSPVerifyTimeoutSecsto 20 seconds:
-
tlsWithholdClientCertificate¶ Default: false
New in version 4.2.
Available for both
mongodandmongos.A TLS certificate is set for a
mongodormongoseither by the--tlsClusterFileoption or by the--tlsCertificateKeyFileoption when--tlsClusterFileis not set. If the TLS certificate is set, by default, the instance sends the certificate when initiating intra-cluster communications with othermongodormongosinstances in the deployment. SettlsWithholdClientCertificateto1ortrueto direct the instance to withhold sending its TLS certificate during these communications. Use this option with--tlsAllowConnectionsWithoutCertificates(to allow inbound connections without certificates) on all members of the deployment.tlsWithholdClientCertificateis mutually exclusive with--clusterAuthMode x509.
-
tlsX509ClusterAuthDNOverride¶ New in version 4.2.
Available for both
mongodandmongos.An alternative Distinguished Name (DN) that the instance can also use to identify members of the deployment.
For a MongoDB deployment that uses x.509 certificates for
clusterAuthMode, deployment members identify each other using x.509 certificates (net.tls.clusterFile, if specified, andnet.tls.certificateKeyFile) during intra-cluster communications. For members of the same deployment, theDNfrom their certificates must have the same Organization attributes (O’s), the Organizational Unit attributes (OU’s), and the Domain Components (DC’s).If
tlsX509ClusterAuthDNOverrideis set for a member, the member can also use the override value when comparing theDNcomponents (O’s,OU’s, andDC’s) of the presented certificates. That is the member checks the presented certificates against itsnet.tls.clusterFile/net.tls.certificateKeyFile. If the DN does not match, the member checks the presented certificate against thetlsX509ClusterAuthDNOverridevalue.Note
If set, you must set this parameter on all members of the deployment.
You can use this parameter for a rolling update of certificates to new certificates that contain a new
DNvalue. See Rolling Update of x.509 Cluster Certificates that Contain New DN.For more information about membership certificate requirements, see Member Certificate Requirements for details.
-
tlsX509ExpirationWarningThresholdDays¶ New in version 4.4.
Default : 30
Available for both
mongodandmongos.Starting in MongoDB 4.4,
mongod/mongoslogs a warning on connection if the presented x.509 certificate expires within30days of themongod/mongossystem clock. Use thetlsX509ExpirationWarningThresholdDaysparameter to control the certificate expiration warning threshold:- Increase the parameter value to trigger warnings farther ahead of the certificate expiration date.
- Decrease the parameter value to trigger warnings closer to the certificate expiration date.
- Set the parameter to
0to disable the warning.
This parameter has a minimum value of
0.You can only set
tlsX509ExpirationWarningThresholdDaysduringmongod/mongosstartup using either:- The
setParameterconfiguration setting, or - The
mongod --setParameter/mongos --setParametercommand line option.
See x.509 Certificates Nearing Expiry Trigger Warnings for more information on x.509 expiration warnings in MongoDB 4.4.
For more information on x.509 certificate validity, see RFC 5280 4.1.2.5.
-
sslWithholdClientCertificate¶ Default: false
Deprecated since version 4.2: Use
tlsWithholdClientCertificateinstead.Available for both
mongodandmongos.A TLS certificate is set for a
mongodormongoseither by the--tlsClusterFileoption or by the--tlsCertificateKeyFileoption when--tlsClusterFileis not set. If the TLS certificate is set, by default, the instance sends the certificate when initiating intra-cluster communications with othermongodormongosinstances in the deployment. SetsslWithholdClientCertificateto1ortrueto direct the instance to withhold sending its TLS certificate during these communications. Use this option with--tlsAllowConnectionsWithoutCertificates(to allow inbound connections without certificates) on all members of the deployment.sslWithholdClientCertificateis mutually exclusive with--clusterAuthMode x509.
-
userCacheInvalidationIntervalSecs¶ Default: 30
Available for
mongosonly.On a
mongosinstance, specifies the interval (in seconds) at which themongosinstance 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,mongoswill not clear the cache.This parameter has a minimum value of
1second and a maximum value of86400seconds (24 hours).
-
authFailedDelayMs¶ Default: 0
Available for both
mongodandmongos.Note
Enterprise Feature
Available in MongoDB Enterprise only.
The number of milliseconds to wait before informing clients that their authentication attempt has failed. This parameter may be in the range
0to5000, inclusive.Setting this parameter makes brute-force login attacks on a database more time-consuming. However, clients waiting for a response from the MongoDB server still consume server resources, and this may adversely impact benign login attempts if the server is denying access to many other clients simultaneously.
-
allowRolesFromX509Certificates¶ Default: true
Available for both
mongodandmongos.Available starting in MongoDB 4.0.11 (and 3.6.14 and 3.4.22)
A boolean flag that allows or disallows the retrieval of authorization roles from client x.509 certificates.
You can only set
allowRolesFromX509Certificatesduring startup in the config file or on the command line.
General Parameters¶
-
allowDiskUseByDefault¶ Default: True
Available for
mongodonly.Starting in MongoDB 6.0, pipeline stages that require more than 100 megabytes of memory to execute write temporary files to disk by default. In earlier verisons of MongoDB, you must pass
{ allowDiskUse: true }to individualfindandaggregatecommands to enable this behavior.Individual
findandaggregatecommands may override theallowDiskUseByDefaultparameter by either:- Using
{ allowDiskUse: true }to allow writing temporary files out to disk whenallowDiskUseByDefaultis set tofalse - Using
{ allowDiskUse: false }to probibit writing temporary files out to disk whenallowDiskUseByDefaultis set totrue
allowDiskUseByDefaultonly works onmongodnotmongos.mongosnever writes temporary files to disk. Use thesetParametercommand in amongoshsession that is connected to a runningmongodto change the value of the parameter while the server is running:- Using
-
connPoolMaxShardedConnsPerHost¶ Default: 200
Available for both
mongodandmongos.Sets the maximum size of the legacy 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.
Note
The parameter is separate from the connections in TaskExecutor pools. See
ShardingTaskExecutorPoolMaxSize.Increase the
connPoolMaxShardedConnsPerHostvalue 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
connPoolMaxShardedConnsPerHostduring startup in the config file or on the command line. For example:
-
connPoolMaxShardedInUseConnsPerHost¶ Available for both
mongodandmongos.Sets the maximum number of in-use connections at any given time for the legacy sharded cluster connection pools.
By default, the parameter is unset.
You can only set
connPoolMaxShardedConnsPerHostduring startup in the config file or on the command line. For example:See also
-
shardedConnPoolIdleTimeoutMinutes¶ Available for both
mongodandmongos.Sets the time limit that a connection in the legacy sharded cluster connection pool can remain idle before being closed.
By default, the parameter is unset.
You can only set
shardedConnPoolIdleTimeoutMinutesduring startup in the config file or on the command line. For example:See also
-
connPoolMaxConnsPerHost¶ Default: 200
Available for both
mongodandmongos.Sets the maximum size of the legacy connection pools for outgoing connections to other
mongodinstances in the global connection pool. 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.Note
The parameter is separate from the connections in TaskExecutor pools. See
ShardingTaskExecutorPoolMaxSize.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
connPoolMaxConnsPerHostduring startup in the config file or on the command line. For example:
-
connPoolMaxInUseConnsPerHost¶ Available for both
mongodandmongos.Sets the maximum number of in-use connections at any given time for for outgoing connections to other
mongodinstances in the legacy global connection pool.By default, the parameter is unset.
You can only set
connPoolMaxInUseConnsPerHostduring startup in the config file or on the command line. For example:See also
-
globalConnPoolIdleTimeoutMinutes¶ Available for both
mongodandmongos.Sets the time limit that connection in the legacy global connection pool can remain idle before being closed.
By default, the parameter is unset.
You can only set
globalConnPoolIdleTimeoutMinutesduring startup in the config file or on the command line. For example:See also
-
cursorTimeoutMillis¶ Default: 600000 (10 minutes)
Available for both
mongodandmongos.Sets the expiration threshold in milliseconds for idle cursors before MongoDB removes them; specifically, MongoDB removes cursors that have been idle for the specified
cursorTimeoutMillis.For example, the following sets the
cursorTimeoutMillisto300000milliseconds (5 minutes).Or, if using the
setParametercommand withinmongosh:Setting
cursorTimeoutMillisto less than or equal to0results in all cursors being immediately eligible for timeout. Generally, the timeout value should be greater than the average amount of time for a query to return results. Use tools like thecursor.explain()cursor modifier to analyze the average query time and select an appropriate timeout period.
-
failIndexKeyTooLong¶ Removed in 4.4
Important
- MongoDB 4.4 removes the deprecated
failIndexKeyTooLongparameter. Attempting to use this parameter with MongoDB 4.4 will result in an error. - MongoDB 4.2 deprecates the
failIndexKeyTooLongparameter and removes theIndex Key Length Limitfor featureCompatibilityVersion (fCV) set to"4.2"or greater.
For MongoDB 2.6 through MongoDB versions with featureCompatibilityVersion (fCV) set to
"4.0"or earlier,Index Key Length Limitapplies. If you attempt to insert or update a document whose index field exceeds theIndex Key Length Limit, the operation will fail and return an error to the client.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
failIndexKeyTooLongto disable this behavior.Setting
failIndexKeyTooLongtofalseis a temporary workaround, not a permanent solution to the problem of oversized index keys. WithfailIndexKeyTooLongset tofalse, queries can return incomplete results if they use indexes that skip over documents whose indexed fields exceed theIndex Key Length Limit.failIndexKeyTooLongdefaults totrue.Issue the following command to disable the index key length validation:
You can also set
failIndexKeyTooLongat startup with the following option:- MongoDB 4.4 removes the deprecated
-
notablescan¶ Available for
mongodonly.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
notablescanto1or true:Setting
notablescanto1can 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 thelogLevelparameter,mongostatand profiling.Don’t run production
mongodinstances withnotablescanbecause preventing collection scans can potentially affect queries in all databases, including administrative queries.
-
ttlMonitorEnabled¶ Available for
mongodonly.Default:
trueTo support TTL Indexes,
mongodinstances have a background thread that is responsible for deleting documents from collections with TTL indexes.To disable this worker thread for a
mongod, setttlMonitorEnabledtofalse, as in the following operations:Alternately, you may disable the thread at startup time by starting the
mongodinstance with the following option:Important
Do not run production
mongodinstances withttlMonitorEnableddisabled, except under guidance from MongoDB support. Preventing TTL document removal can negatively impact MongoDB internal system operations that depend on TTL Indexes.
-
tcpFastOpenServer¶ New in version 4.4.
Available for both
mongodandmongos.Default:
trueEnables support for accepting inbound TCP Fast Open (TFO) connections to the
mongod/mongosfrom a client. TFO requires both the client andmongod/mongoshost machine support and enable TFO:- Windows
The following Windows operating systems support TFO:
- Microsoft Windows Server 2016 and later.
- Microsoft Windows 10 Update 1607 and later.
- macOS
- macOS 10.11 (El Capitan) and later support TFO.
- Linux
Linux operating systems running Linux Kernel 3.7 or later can support inbound TFO.
Set the value of
/proc/sys/net/ipv4/tcp_fastopento enable inbound TFO connections:- Set to
2to enable only inbound TFO connections. - Set to
3to enable inbound and outbound TFO connections.
- Set to
This parameter has no effect if the host operating system does not support or is not configured to support TFO connections.
You can only set this parameter on startup, using either the
setParameterconfiguration file setting or the--setParametercommand line option.See Support for TCP Fast Open for more information on MongoDB TFO support.
See also
-
tcpFastOpenClient¶ New in version 4.4.
Available for both
mongodandmongos.Default:
trueLinux Operating System Only
Enables support for outbound TCP Fast Open (TFO) connections from the
mongod/mongosto a client. TFO requires both the client and themongod/mongoshost machine support and enable TFO.Linux operating systems running Linux Kernel 4.11 or later can support outbound TFO.
Set the value of
/proc/sys/net/ipv4/tcp_fastopento enable outbound TFO connections:1to enable only outbound TFO connections.3to enable inbound and outbound TFO connections.
This parameter has no effect if the host operating system does not support or is not configured to support TFO connections.
You can only set this parameter on startup, using either the
setParameterconfiguration file setting or the--setParametercommand line option.See Support for TCP Fast Open for more information on MongoDB TFO support.
See also
-
tcpFastOpenQueueSize¶ New in version 4.4.
Available for both
mongodandmongos.Default:
1024As part of establishing a TCP Fast Open (TFO) connection, the client submits a valid TFO cookie to the
mongod/mongosbefore completion of the standard TCP 3-way handshake. Themongod/mongoskeeps a queue of all such pending TFO connections.The
tcpFastOpenQueueSizeparameter sets the size of the queue of pending TFO connections. While the queue is full, themongod/mongosfalls back to the normal three-way handshake for incoming client requests and ignores the presence of TFO cookies. Once the queue size falls back below the limit, themongod/mongosbegins accepting new TFO cookies.Increasing the default queue size may improve the effect of TFO on network performance. However, large queue sizes also increase the risk of server resource exhaustion due to excessive incoming TFO requests.
Decreasing the default queue size may reduce the risk of resource server resource exhaustion due to excessive incoming TFO requests. However, small queue sizes may also reduce the effect of TFO on network performance.
The minimum queue size is
0. A queue of0effectively disables TFO.
This parameter has no effect on host operating systems that do not support or are not configured for TFO connections. See Support for TCP Fast Open for more information on MongoDB TFO support.
-
disableJavaScriptJIT¶ Changed in version 4.0: The JavaScript engine’s JIT compiler is now disabled by default.
Available for
mongodonly.The MongoDB JavaScript engine uses SpiderMonkey, which implements Just-in-Time (JIT) compilation for improved performance when running scripts.
To enable the JIT, set
disableJavaScriptJITtofalse, as in the following example:Note
$wherewill reuse existing JavaScript interpreter contexts, so changes todisableJavaScriptJITmay not take effect immediately for these operations.Alternately, you may enable the JIT at startup time by starting the
mongodinstance with the following option:
-
indexMaxNumGeneratedKeysPerDocument¶ New in version 5.3.
Default: 100000
Limits the maximum number of keys generated for a document to prevent out of memory errors. It is possible to raise the limit, but if an operation requires more keys than the
indexMaxNumGeneratedKeysPerDocumentparameter specifies, the operation will fail.
-
maxIndexBuildMemoryUsageMegabytes¶ Default:
- 200 (For versions 4.2.3 and later)
- 500 (For versions 4.2.2 and earlier)
Limits the amount of memory that simultaneous index builds on one collection may consume for the duration of the builds. The specified amount of memory is shared between all indexes built using a single
createIndexescommand or its shell helperdb.collection.createIndexes().The memory consumed by an index build is separate from the WiredTiger cache memory (see
cacheSizeGB).Index builds may be initiated either by a user command such as Create Index or by an administrative process such as an initial sync. Both are subject to the limit set by
maxIndexBuildMemoryUsageMegabytes.An initial sync operation populates only one collection at a time and has no risk of exceeding the memory limit. However, it is possible for a user to start index builds on multiple collections in multiple databases simultaneously and potentially consume an amount of memory greater than the limit set in
maxIndexBuildMemoryUsageMegabytes.Tip
To minimize the impact of building an index on replica sets and sharded clusters with replica set shards, use a rolling index build procedure as described on Rolling Index Builds on Replica Sets.
Changed in version 4.2.
- For feature compatibility version (fcv)
"4.2", the index build memory limit applies to all index builds. - For feature compatibility version (fcv)
"4.0", the index build memory limit only applies to foreground index builds.
-
reportOpWriteConcernCountersInServerStatus¶ New in version 4.0.6.
Default: false
A boolean flag that determines whether the
db.serverStatus()method andserverStatuscommand returnopWriteConcernCountersinformation. [1]You can only set
reportOpWriteConcernCountersInServerStatusduring startup in the config file or on the command line. For example:[1] Enabling reportOpWriteConcernCountersInServerStatuscan have a negative performance impact; specifically, when running without TLS.
-
watchdogPeriodSeconds¶ Available for
mongodonly.Type: integer
Default: -1 (disabled)
Note
- Starting in MongoDB 4.2, the Storage Node Watchdog is available in both the Community and MongoDB Enterprise editions.
- In earlier versions (3.2.16+, 3.4.7+, 3.6.0+, 4.0.0+), the Storage Node Watchdog is only available in MongoDB Enterprise edition.
Determines how frequent the Storage Node Watchdog checks the status of the monitored filesystems:
- The
--dbpathdirectory - The
journaldirectory inside the--dbpathdirectory ifjournalingis enabled - The directory of
--logpathfile - The directory of
--auditPathfile
Valid values for
watchdogPeriodSecondsare:-1(the default), to disable/pause Storage Node Watchdog, or- An integer greater than or equal to 60.
Note
- If a filesystem on a monitored directory becomes unresponsive,
it can take a maximum of nearly twice the value of
watchdogPeriodSecondsto terminate themongod. - If any of its monitored directory is a symlink to other
volumes, the Storage Node Watchdog does not monitor the symlink
target. For example, if the
mongodusesstorage.directoryPerDB: true(or--directoryperdb) and symlinks a database directory to another volume, the Storage Node Watchdog does not follow the symlink to monitor the target.
To enable Storage Node Watchdog,
watchdogPeriodSecondsmust be set during startup.You can only enable the Storage Node Watchdog at startup. However, once enabled, you can pause the Storage Node Watchdog or change the
watchdogPeriodSecondsduring runtime.Once enabled,
To pause the Storage Node Watchdog during runtime, set
watchdogPeriodSecondsto -1.To resume or change the period during runtime, set
watchdogPeriodSecondsto a number greater than or equal to 60.
Note
It is an error to set
watchdogPeriodSecondsat runtime if the Storage Node Watchdog was not enabled at startup time.
-
tcmallocReleaseRate¶ New in version 4.2.3: Also available in 3.6.17+ and 4.0.14+
Default: 1.0
Specifies the tcmalloc release rate (TCMALLOC_RELEASE_RATE). Per https://gperftools.github.io/gperftools/tcmalloc.html#runtime TCMALLOC_RELEASE_RATE is described as the “Rate at which we release unused memory to the system, via madvise(MADV_DONTNEED), on systems that support it. Zero means we never release memory back to the system. Increase this flag to return memory faster; decrease it to return memory slower. Reasonable rates are in the range [0,10].”
To modify the release rate during runtime, you can use the
setParametercommand; for example:You can also set
tcmallocReleaseRateat startup time; for example:
-
fassertOnLockTimeoutForStepUpDown¶ New in version 5.3.
Default: 15 seconds
Available for both
mongodandmongos.Allows a server that receives a request to step up or step down, to terminate if it is unable to comply (for example due to faulty server disks) within the timeout. This enables a cluster to successfully elect a new primary node and thus continue to be available.
fassertOnLockTimeoutForStepUpDowndefaults to 15 seconds. To disable nodes from fasserting, setfassertOnLockTimeoutForStepUpDown=0.The following example disables nodes from fasserting:
Logging Parameters¶
-
logLevel¶ Available for both
mongodandmongos.Specify an integer between
0and5signifying the verbosity of the logging, where5is the most verbose. [2]The default
logLevelis0(Informational).The following example sets the
logLevelto2:See also
[2] Starting in version 4.2, MongoDB includes the Debug verbosity level (1-5) in the log messages. For example, if the verbosity level is 2, MongoDB logs D2. In previous versions, MongoDB log messages only specifiedDfor Debug level.
-
logComponentVerbosity¶ Available for both
mongodandmongos.Sets the verbosity levels of various components for log messages. The verbosity level determines the amount of Informational and Debug messages MongoDB outputs. [3]
The verbosity level can range from
0to5:0is the MongoDB’s default log verbosity level, to include Informational messages.1to5increases the verbosity level to include Debug messages.
For a component, you can also specify
-1to 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
verbosityfield corresponds tosystemLog.verbositywhich sets the default level for all components. The default value ofsystemLog.verbosityis0.The components correspond to the following settings:
accessControlcommandcontrolftdcgeoindexnetworkqueryreplicationreplication.electionreplication.heartbeatsreplication.initialSyncreplication.rollbackrecoveryshardingstoragestorage.journaltransactionwrite
Unless explicitly set, the component has the verbosity level of its parent. For example,
storageis the parent ofstorage.journal. That is, if you specify astorageverbosity level, this level also applies to:storage.journalcomponents unless you specify the verbosity level forstorage.journal.storage.recoverycomponents unless you specify the verbosity level forstorage.recovery.
For example, the following sets the
default verbosity levelto1, thequeryto2, thestorageto2, and thestorage.journalto1.You can also set parameter
logComponentVerbosityat startup time, passing the verbosity level document as a string.mongoshalso 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.[3] Starting in version 4.2, MongoDB includes the Debug verbosity level (1-5) in the log messages. For example, if the verbosity level is 2, MongoDB logs D2. In previous versions, MongoDB log messages only specifiedDfor Debug level.
-
maxLogSizeKB¶ Available for both
mongodandmongos.Type: non-negative integer
Default: 10
Specifies the maximum size, in kilobytes, for an individual attribute field in a log entry; attributes exceeding this limit are truncated.
Truncated attribute fields print field content up to the
maxLogSizeKBlimit and excise field content past that limit, retaining valid JSON formatting. Log entries that contain truncated attributes append atruncatedobject to the end of the log entry.See log message truncation for more information.
A value of
0disables truncation entirely. Negative values for this parameter are not valid.Warning
Using a large value, or disabling truncation with a value of
0, may adversely affect system performance and negatively impact database operations.The following example sets the maximum log line size to
20kilobytes:
-
quiet¶ Available for both
mongodandmongos.Sets quiet logging mode. If
1,mongodwill go into a quiet logging mode which will not log the following events/activities:- connection events;
- the
dropcommand, thedropIndexescommand, thediagLoggingcommand, thevalidatecommand; and - replication synchronization activities.
Consider the following example which sets the
quietparameter to1:See also
-
redactClientLogData¶ Available for both
mongodandmongos.Type: boolean
Note
Enterprise Feature
Available in MongoDB Enterprise only.
Configure the
mongodormongosto redact any message accompanying a given log event before logging. This prevents the program from writing potentially sensitive data stored on the database to the diagnostic log. Metadata such as error or operation codes, line numbers, and source file names are still visible in the logs.Use
redactClientLogDatain conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements.To enable log redaction on a running
mongodormongos, use the following command:See also
-
traceExceptions¶ Available for both
mongodandmongos.Configures
mongodto log full source code stack traces for every database and socket C++ exception, for use with debugging. Iftrue,mongodwill log full stack traces.Consider the following example which sets the
traceExceptionstotrue:See also
-
suppressNoTLSPeerCertificateWarning¶ New in version 4.0.1.
Available for both
mongodandmongos.Type: boolean
Default: false
By default, a
mongodormongoswith TLS/SSL enabled andnet.ssl.allowConnectionsWithoutCertificates:truelets clients connect without providing a certificate for validation while logging an warning. SetsuppressNoTLSPeerCertificateWarningto1ortrueto suppress those warnings.The following operation sets
suppressNoTLSPeerCertificateWarningtotrue:
Diagnostic Parameters¶
To facilitate analysis of the MongoDB server behavior by MongoDB engineers, MongoDB logs server statistics to diagnostic files at periodic intervals.
For mongod, the diagnostic data files are stored in the
diagnostic.data directory under the mongod instance’s
--dbpath or storage.dbPath.
For mongos, the diagnostic data files, by default, are
stored in a directory under the mongos instance’s
--logpath or systemLog.path directory. The diagnostic
data directory is computed by truncating the logpath’s file
extension(s) and concatenating diagnostic.data to the remaining
name.
For example, if mongos has --logpath
/var/log/mongodb/mongos.log.201708015, then the diagnostic data
directory is /var/log/mongodb/mongos.diagnostic.data/ directory. To
specify a different diagnostic data directory for mongos,
set the diagnosticDataCollectionDirectoryPath parameter.
The following parameters support diagnostic data capture (FTDC):
Note
The default values for the diagnostic data capture interval and the maximum sizes are chosen to provide useful data to MongoDB engineers with minimal impact on performance and storage size. Typically, these values will only need modifications as requested by MongoDB engineers for specific diagnostic purposes.
-
diagnosticDataCollectionEnabled¶ Available for both
mongodandmongos.Type: boolean
Default: true
Determines whether to enable the collecting and logging of data for diagnostic purposes. Diagnostic logging is enabled by default.
For example, the following disables the diagnostic collection:
-
diagnosticDataCollectionDirectoryPath¶ Type: String
Available for
mongosonly.Specify the directory for the diagnostic directory for
mongos. If the directory does not exist,mongoscreates the directory.If unspecified, the diagnostic data directory is computed by truncating the
mongosinstance’s--logpathorsystemLog.pathfile extension(s) and concatenatingdiagnostic.data.For example, if
mongoshas--logpath /var/log/mongodb/mongos.log.201708015, then the diagnostic data directory is/var/log/mongodb/mongos.diagnostic.data/.Important
If the
mongoscannot create the specified directory, the diagnostic data capture is disabled for that instance. This is often caused by:- a file with the same name already exists in the path, or
- the process does not have permissions to create the directory.
-
diagnosticDataCollectionDirectorySizeMB¶ Increased default size to 200 megabytes.
Available for both
mongodandmongos.Type: integer
Default: 200
Specifies the maximum size, in megabytes, of the
diagnostic.datadirectory. If directory size exceeds this number, the oldest diagnostic files in the directory are automatically deleted based on the timestamp in the file name.For example, the following sets the maximum size of the directory to
250megabytes:The minimum value for
diagnosticDataCollectionDirectorySizeMBis10megabytes.diagnosticDataCollectionDirectorySizeMBmust be greater than maximum diagnostic file sizediagnosticDataCollectionFileSizeMB.
-
diagnosticDataCollectionFileSizeMB¶ Available for both
mongodandmongos.Type: integer
Default: 10
Specifies the maximum size, in megabytes, of each diagnostic file. If the file exceeds the maximum file size, MongoDB creates a new file.
For example, the following sets the maximum size of each diagnostic file to
20megabytes:The minimum value for
diagnosticDataCollectionFileSizeMBis1megabyte.
-
diagnosticDataCollectionPeriodMillis¶ Available for both
mongodandmongos.Type: integer
Default: 1000
Specifies the interval, in milliseconds, at which to collect diagnostic data.
For example, the following sets the interval to
5000milliseconds or 5 seconds:The minimum value for
diagnosticDataCollectionPeriodMillisis100milliseconds.
Replication and Consistency¶
-
disableSplitHorizonIPCheck¶ New in version 5.0.0.
Available for both
mongodandmongos.Type: boolean
Default: false
To configure cluster nodes for split horizon DNS, use host names instead of IP addresses.
Starting in MongoDB v5.0, replSetInitiate and
replSetReconfig reject configurations that use IP
addresses instead of hostnames.
Use disableSplitHorizonIPCheck to modify nodes that
cannot be updated to use host names. The parameter only applies to the
configuration commands.
mongod and mongos do not rely on
disableSplitHorizonIPCheck for validation at startup.
Legacy mongod and mongos instances that use IP
addresses instead of host names will start after an upgrade.
Instances that are configured with IP addresses log a warning to use host names instead of IP addresses.
To allow configuration changes using IP addresses, set
disableSplitHorizonIPCheck=true using the command line:
To allow configuration changes using IP addresses, set
disableSplitHorizonIPCheck=true using the node’s configuration
file:
If you attempt to update disableSplitHorizonIPCheck at runtime,
db.adminCommand returns an error:
-
enableOverrideClusterChainingSetting¶ New in version 5.0.2.
Available for both
mongodandmongos.Type: boolean
Default: false
If
enableOverrideClusterChainingSettingistrue, replica set secondary members can replicate data from other secondary members even ifsettings.chainingAllowedisfalse.You can only set
enableOverrideClusterChainingSettingat startup and cannot change this setting with thesetParametercommand.For example, to set the
enableOverrideClusterChainingSettingfor amongodinstance totrue:
-
logicalSessionRefreshMillis¶ Note
Availability
New in version 4.0.4 (and version 3.6.9).
Available for both
mongodandmongos.Type: integer
Default: 300000 (5 minutes)
The interval (in milliseconds) at which the cache refreshes its logical session records against the main session store.
You can only set
logicalSessionRefreshMillisat startup and cannot change this setting with thesetParametercommand.For example, to set the
logicalSessionRefreshMillisfor amongodinstance to 10 minutes:
-
localLogicalSessionTimeoutMinutes¶ Available for both
mongodandmongos.Type: integer
Default: 30
Warning
For testing purposes only
This parameter is intended for testing purposes only and not for production use.
The time in minutes that a session remains active after its most recent use. Sessions that have not received a new read/write operation from the client or been refreshed with
refreshSessionswithin this threshold are cleared from the cache. State associated with an expired session may be cleaned up by the server at any time.This parameter applies only to the instance on which it is set. To set this parameter on replica sets and sharded clusters, you must specify the same value on every member; otherwise, sessions will not function properly.
You can only set
localLogicalSessionTimeoutMinutesat startup and cannot change this setting with thesetParametercommand.For example, to set the
localLogicalSessionTimeoutMinutesfor a testmongodinstance to 20 minutes:
-
maxAcceptableLogicalClockDriftSecs¶ Available for both
mongodandmongos.Type: integer
Default: 31536000 (1 year)
The maximum amount by which the current cluster time can be advanced; specifically,
maxAcceptableLogicalClockDriftSecsis the maximum difference between the new value of the cluster time and the current cluster time. Cluster time is a logical time used for ordering of operations.You cannot advance the cluster time to a new value if the new cluster time differs from the current cluster time by more than
maxAcceptableLogicalClockDriftSecs.You can only set
maxAcceptableLogicalClockDriftSecsat startup and cannot change this setting with thesetParametercommand.For example, to set the
maxAcceptableLogicalClockDriftSecsfor amongodinstance to 15 minutes:
-
maxSessions¶ New in version 4.0.1.
Available for both
mongodandmongos.Type: integer
Default: 1000000
The maximum number of sessions that can be cached.
You can only set
maxSessionsduring start-up.For example, to set the
maxSessionsfor amongodinstance to 1000:
-
oplogBatchDelayMillis¶ New in version 6.0.
Available for both
mongodandmongos.Type: integer
Default: 0
The number of milliseconds to delay applying batches of oplog operations on secondary nodes. By default,
oplogBatchDelayMillisis0, meaning oplog batches are applied with no delay. When there is no delay, MongoDB may apply frequent, small oplog batches to secondaries.Increasing
oplogBatchDelayMilliscauses MongoDB to apply oplog batches less frequently on secondaries, with each batch containing larger amounts of data. This reduces IOPS on secondaries, but adds latency for writes with write concern"majority".You can only set
oplogBatchDelayMillisat startup. You cannot setoplogBatchDelayMillisduring runtime.For example, run the following command to set the
oplogBatchDelayMillisfor amongodinstance to 20 milliseconds:
-
storeFindAndModifyImagesInSideCollection¶ New in version 5.1.
Available for both
mongodandmongos.Type: boolean
Default: true
Determines whether the temporary documents required for retryable
findAndModifycommands are stored in the side collection (config.image_collection).If
storeFindAndModifyImagesInSideCollectionis:true, the temporary documents are stored in the side collection.false, the temporary documents are stored in the replica set oplog.
Keep
storeFindAndModifyImagesInSideCollectionset totrueif you:- Have a large retryable
findAndModifyworkload. - Require more temporary document space for retryable
findAndModifycommands than is available in the replica set oplog.
Note
Secondaries may experience increased CPU usage when
storeFindAndModifyImagesInSideCollectionistrue.For example, to set
storeFindAndModifyImagesInSideCollectiontofalseduring startup:During runtime, you can also set the parameter with the
setParametercommand:
-
TransactionRecordMinimumLifetimeMinutes¶ Available for
mongodonly.Type: integer
Default: 30
The minimum lifetime a transaction record exists in the
transactionscollection before the record becomes eligible for cleanup.You can only set
TransactionRecordMinimumLifetimeMinutesat startup and cannot change this setting with thesetParametercommand.For example, to set the
TransactionRecordMinimumLifetimeMinutesfor amongodinstance to 20 minutes:See also
-
enableFlowControl¶ New in version 4.2.
Type: boolean
Default: true
Enables or disables the mechanism that controls the rate at which the primary applies its writes with the goal of keeping the secondary members’
majority committedlag under a configurable maximum value.Note
For flow control to engage, the replica set/sharded cluster must have: featureCompatibilityVersion (FCV) of
4.2and read concernmajority enabled. That is, enabled flow control has no effect if FCV is not4.2or if read concern majority is disabled.
-
flowControlTargetLagSeconds¶ New in version 4.2.
Type: integer
Default: 10
The target maximum
majority committedlag when running with flow control. When flow control is enabled, the mechanism attempts to keep themajority committedlag under the specified seconds. The parameter has no effect if flow control is disabled.The specified value must be greater than 0.
In general, the default settings should suffice; however, if modifying from the default value, decreasing, rather than increasing, the value may prove to be more useful.
-
flowControlWarnThresholdSeconds¶ New in version 4.2.
Type: integer
Default: 10
The amount of time to wait to log a warning once the flow control mechanism detects the majority commit point has not moved.
The specified value must be greater than or equal to 0, with 0 to disable warnings.
-
initialSyncTransientErrorRetryPeriodSeconds¶ New in version 4.4.
Type: integer
Default: 86400
The amount of time in seconds a secondary performing initial sync attempts to resume the process if interrupted by a transient network error. The default value is equivalent to 24 hours.
-
initialSyncSourceReadPreference¶ New in version 4.4.
Type: String
Available for
mongodonly.The preferred source for performing initial sync. Specify one of the following read preference modes:
primaryprimaryPreferred(Default for voting replica set members)secondarysecondaryPreferrednearest(Default for newly added or non-voting replica set members)
If the replica set has disabled
chaining, the defaultinitialSyncSourceReadPreferenceread preference mode isprimary.You cannot specify a tag set or
maxStalenessSecondstoinitialSyncSourceReadPreference.If the
mongodcannot find a sync source based on the specified read preference, it logs an error and restarts the initial sync process. Themongodexits with an error if it cannot complete the initial sync process after10attempts. For more information on sync source selection, see Initial Sync Source Selection.initialSyncSourceReadPreferencetakes precedence over the replica set’ssettings.chainingAllowedsetting when selecting an initial sync source. After a replica set member successfully completes initial sync, it defers to the value ofchainingAllowedwhen selecting a replication sync source.You can only set this parameter on startup, using either the
setParameterconfiguration file setting or the--setParametercommand line option.
-
initialSyncMethod¶ New in version 5.2.
Available for
mongodonly.Type: String
Default:
logicalAvailable only in MongoDB Enterprise.
Method used for initial sync.
Set to
logicalto use logical initial sync. Set tofileCopyBasedto use file copy based initial sync.This parameter only affects the sync method for the member on which it is specified. Setting this parameter on a single replica set member does not affect the sync method of any other replica set members.
You can only set this parameter on startup, using either the
setParameterconfiguration file setting or the--setParametercommand line option.
-
maxNumSyncSourceChangesPerHour¶ New in version 5.0.
Type: integer
Default: 3
Sync sources are evaluated each time a sync source is updated and each time a node fetches a batch of oplog entries. If there are more than
maxNumSyncSourceChangesPerHoursource changes in an hour, the node temporarily stops re-evaluating that sync source. If this parameter is set with a high value, the node may make unnecessary source changes.This parameter will not prevent a node from starting to sync from another node if it doesn’t have a sync source. The node will re-evaluate if a sync source becomes invalid. Similarly, if the primary changes and chaining is disabled, the node will update to sync from the new primary.
-
oplogFetcherUsesExhaust¶ New in version 4.4.
Available for
mongodonly.Type: boolean
Default: true
Enables or disables streaming replication. Set the value to
trueto enable streaming replication.Set the value to
falseto disable streaming replication. If disabled, secondaries fetch batches of oplog entries by issuing a request to their sync from source and waiting for a response. This requires a network roundtrip for each batch of oplog entries.You can only set this parameter on startup, using either the
setParameterconfiguration file setting or the--setParametercommand line option.
-
oplogInitialFindMaxSeconds¶ Type: integer
Default: 60
Available for
mongodonly.Maximum time in seconds for a member of a replica set to wait for the
findcommand to finish during data synchronization.
-
replWriterThreadCount¶ Type: integer
Default: 16
Available for
mongodonly.Maximum number of threads to use to apply replicated operations in parallel. Values can range from 1 to 256 inclusive. You can only set
replWriterThreadCountat startup and cannot change this setting with thesetParametercommand.See also
-
replWriterMinThreadCount¶ New in version 5.0.
Type: integer
Default: 0
Available for
mongodonly.Minimum number of threads to use to apply replicated operations in parallel. Values can range from 0 to 256 inclusive. You can only set
replWriterMinThreadCountat startup and cannot change this setting with thesetParametercommand.Parallel application of replication operations uses up to
replWriterThreadCountthreads. IfreplWriterMinThreadCountis configured with a value less thanreplWriterThreadCount, the thread pool will timeout idle threads until the total count of threads in the thread pool is equal toreplWriterMinThreadCount.replWriterMinThreadCountmust be configured with a value that is less than or equal toreplWriterThreadCount.
-
rollbackTimeLimitSecs¶ Type: 64-bit integer
Default: 86400 (1 day)
Maximum age of data that can be rolled back. Negative values for this parameter are not valid.
Starting in MongoDB 4.2+ and 4.0.13+, if the time between the end of the to-be-rolledback instance’s oplog and the first operation after the common point (the last point where the source node and the to-be-rolledback node had the same data) exceeds this value, the rollback will fail.
In MongoDB 4.0.0-4.0.12, if the time between the end of the to-be-rolledback instance’s oplog and the common point (the last point where the source node and the to-be-rolledback node had the same data) exceeds this value, the rollback will fail.
To effectively have an unlimited rollback period, set the value to
2147483647which is the maximum value allowed and equivalent to roughly 68 years.New in version 4.0.
-
waitForSecondaryBeforeNoopWriteMS¶ Available for
mongodonly.Type: integer
Default: 10
The length of time (in milliseconds) that a secondary must wait if the
afterClusterTimeis greater than the last applied time from the oplog. After thewaitForSecondaryBeforeNoopWriteMSpasses, if theafterClusterTimeis still greater than the last applied time, the secondary makes a no-op write to advance the last applied time.The following example sets the
waitForSecondaryBeforeNoopWriteMSto 20 milliseconds:During runtime, you can also set the parameter with the
setParametercommand:
-
createRollbackDataFiles¶ Available for
mongodonly.Type: boolean
Default: true
New in version 4.0.
Flag that determines whether MongoDB creates rollback files that contains documents affected during a rollback.
By default,
createRollbackDataFilesistrueand MongoDB creates the rollback files.The following example sets
createRollbackDataFilesto false so that the rollback files are not created:During runtime, you can also set the parameter with the
setParametercommand:For more information, see Collect Rollback Data.
-
enableElectionHandoff¶ New in version 4.0.2.
Type: boolean
Default: true
A flag that can reduce the downtime after the primary steps down from either the
rs.stepDown()method or thereplSetStepDowncommand.If the flag is true, when a primary steps down after
rs.stepDown()(or thereplSetStepDowncommand without theforce: true), the primary nominates an eligible secondary to call an election immediately.If the flag is false, after the step down, secondaries can wait up to
settings.electionTimeoutMillisbefore calling an election.An eligible secondary must be caught up with the stepped down primary and have
prioritygreater than 0. If multiple secondary members meet this criteria, the stepped down primary selects the eligible secondary with the highestpriority. If the more than one eligible secondary members have the samepriority, the stepped down primary selects the secondary with the lowest_id. The stepped down primary does not wait for the effects of the handoff.The parameter has no impact if the primary steps down for reasons other than
rs.stepDown()(or thereplSetStepDowncommand without theforce: true).
-
replBatchLimitBytes¶ Default: 104857600 (100MB)
Sets the maximum oplog application batch size in bytes.
Values can range from 16777216 (16MB) to 104857600 (100MB) inclusive.
The following example sets
replBatchLimitBytesto 64 MB so that the rollback files are not created:During runtime, you can also set the parameter with the
setParametercommand:New in version 4.0.10.
-
mirrorReads¶ Available for
mongodonly.New in version 4.4
Type: Document
Default:
{ samplingRate: 0.01, maxTimeMS: 1000 }Specifies the settings for mirrored reads for the
mongodinstance. The settings only take effect when the member is a primary.The parameter
mirrorReadstakes a JSON document with the following fields:Field Description samplingRateThe sampling rate used to mirror a subset of operations that support mirroring to a subset of electable (specifically,
priority greater than 0) secondaries. That is, the primary mirrors reads to each electable secondary at the specified sampling rate.Valid values are:
0.0Turns off mirroring. 1.0The primary mirrors all operations that supports mirroring to each electable secondary. Number between 0.0and1.0(exclusive)The primary randomly samples each electable secondary at the specified rate to be sent mirrored reads. For example, given a replica set with a primary and two electable secondaries and a sampling rate of
0.10, the primary mirrors reads to each electable secondary at the sampling rate of 10 percent such that one read may be mirrored to one secondary and not to the other or to both or to neither. That is, if the primary receives100operations that can be mirrored, the sampling rate of0.10may result in8reads being mirrored to one secondary and13reads to the other or10to each, etc.The default value is
0.01.maxTimeMSThe maximum time in milliseconds for the mirrored reads. The default value is
1000.The
maxTimeMSfor the mirrored reads is separate from themaxTimeMSof the original read being mirrored.You can set
mirrorReadsduring startup in theconfiguration fileor with the--setParameteroption on the command line. If specifying from the configuration file or on the command line, enclose themirrorReadsdocument in quotes.For example, the following sets the mirror reads sampling rate to
0.10from the command line:Or, to specify in a configuration file:
Or if using the
setParametercommand in amongoshsession that is connected to a runningmongod, do not enclose the document in quotes:
-
allowMultipleArbiters¶ Available for
mongodonly.New in version 5.3.
Type: boolean
Default: false
Specifies whether the replica set allows the use of multiple arbiters.
The use of multiple arbiters is not recommended:
- Multiple arbiters prevent the reliable use of the majority write concern. MongoDB counts arbiters in calculating a membership majority, but arbiters do not store data. With the inclusion of multiple arbiters, it’s possible for a majority write operation to return success before the write replicates to a majority of data bearing nodes.
- Multiple arbiters allow replica sets to accept writes even when the replica set doesn’t have sufficient secondaries for data replication.
For more information, see Concerns with Multiple Arbiters.
The parameter can only be set during startup:
Sharding Parameters¶
Note
Starting in version 4.2, MongoDB removes the parameter
AsyncRequestsSenderUseBaton and always enables the performance
enhancement controlled by the parameter.
-
chunkDefragmentationThrottlingMS¶ New in version 5.3.
Type: integer
Default: 0
Available for both
mongodandmongos.Specifies the minimum time period (in milliseconds) between consecutive split and merge commands run by the balancer when the chunks in a sharded collection are defragmented.
chunkDefragmentationThrottlingMSlimits the rate of split and merge commands.The following example sets
chunkDefragmentationThrottlingMSto10milliseconds:During runtime, you can also set the parameter with the
setParametercommand:
-
disableResumableRangeDeleter¶ New in version 4.4.
Type: boolean
Default: false
Available for
mongodonly.If set on a shard’s primary, specifies if range deletion is paused on the shard. If set to
true, cleanup of chunk`ranges containing :term:`orphaned documents is paused. The shard can continue to donate chunks to other shards, but the donated documents will not be removed from this shard until you set this parameter tofalse. This shard can continue to receive chunks from other shards as long as it does not have a pending range deletion task in theconfig.rangeDeletionscollection that overlaps with the incoming chunk’s range.When
disableResumableRangeDeleteristrue, chunk migrations fail if orphaned documents exist on the recipient shard’s primary in the same range as the incoming chunks.The parameter has no effect on the
mongodif it is not the shard’s primary.Important
If you set
disableResumableRangeDeleterparameter totrue, ensure that you apply it consistently for all members in the shard’s replica set. In the event of a failover, this setting’s value on the new primary dictates the behavior of the range deleter.You can only set this parameter during start-up and cannot change this setting using the
setParameterdatabase command.
-
enableShardedIndexConsistencyCheck¶ New in version 4.4 (and 4.2.6).
Type: boolean
Default: true
Available for
mongodonly.If set on the config server’s primary, enables or disables the index consistency check for sharded collections. The parameter has no effect on the
mongodif it is not the config server’s primary.The following example sets
enableShardedIndexConsistencyChecktofalsefor a config server primary:During runtime, you can also set the parameter with the
setParametercommand:See also
shardedIndexConsistencyCheckIntervalMSparametershardedIndexConsistencymetrics returned by theserverStatuscommand.
-
shardedIndexConsistencyCheckIntervalMS¶ New in version 4.4 (and 4.2.6).
Type: integer
Default: 600000
Available for
mongodonly.If set on the config server’s primary, the interval, in milliseconds, at which the config server’s primary checks the index consistency of sharded collections. The parameter has no effect on the
mongodif it is not the config server’s primary.You can only set the parameter during startup, and cannot change this setting using the
setParameterdatabase command.For example, the following sets the interval at 300000 milliseconds (5 minutes) at startup:
See also
enableShardedIndexConsistencyCheckparametershardedIndexConsistencymetrics returned by theserverStatuscommandq
-
enableFinerGrainedCatalogCacheRefresh¶ New in version 4.4.
Type: boolean
Default: true
Available for both
mongodandmongos.This parameter allows the catalog cache to be refreshed only if the shard needs to be refreshed. If disabled, any stale chunk will cause the entire chunk distribution for a collection to be considered stale and force all routers who contact the shard to refresh their shard catalog cache.
You can only set this parameter during start-up and cannot change this setting using the
setParameterdatabase command.See also
-
maxTimeMSForHedgedReads¶ New in version 4.4.
Type: integer
Default: 150
Available for
mongosonly.Specifies the maximum time limit (in milliseconds) for the hedged read. That is, the additional read sent to hedge the read operation uses the
maxTimeMSvalue ofmaxTimeMSForHedgedReadswhile the read operation that is being hedged uses themaxTimeMSvalue specified for the operation.For example, to set the limit to 200 milliseconds, you can issue the following during startup:
Or if using the
setParametercommand in amongoshsession that is connected to a runningmongos:See also
-
maxCatchUpPercentageBeforeBlockingWrites¶ New in version 5.0: (Also available starting in 4.4.7, 4.2.15, 4.0.26)
Type: integer
Default: 10
Available for
mongodonly.For
moveChunkoperations, specifies the maximum percentage of untrasferred data allowed by the migration protocol (expressed in percentage of the total chunk size) to transition from thecatchupphase to thecommitphase.Setting a higher catchup percentage can decrease the amount of time it takes for the migration to complete at the cost of increased latency during concurrent
upsertanddeleteoperations.For example, to set the maximum percentage to 20, you can issue the following during startup:
You cannot change
maxCatchUpPercentageBeforeBlockingWritesduring runtime.See also
-
metadataRefreshInTransactionMaxWaitBehindCritSecMS¶ New in version 5.2: (Also available starting in 5.1.0, 5.0.4)
Type: integer
Default: 500
Available for
mongodonly.Limits the time a shard waits for a critical section within a transaction.
When a query accesses a shard, a chunk migration or DDL operation may already hold the critical section for the collection. If the query finds the critical section is taken, the shard waits until the critical section has been released. When the shard returns control to
mongos,mongosretries the query. However, if a multi-shard transaction interacts with an operation that takes the critical section on multiple shards, the interaction can result in a distributed deadlock.metadataRefreshInTransactionMaxWaitBehindCritSecMSlimits the maximum time a shard waits within a transaction for the critical section to be released.To reduce the maximum wait time for the critical section within a transaction, lower the the value of
metadataRefreshInTransactionMaxWaitBehindCritSecMS.Warning
If
metadataRefreshInTransactionMaxWaitBehindCritSecMSis too low,mongoscould use all of its retry attempts and return an error.You can set
metadataRefreshInTransactionMaxWaitBehindCritSecMSat startup and during runtime.For example, to set
metadataRefreshInTransactionMaxWaitBehindCritSecMSto 400 milliseconds:
-
readHedgingMode¶ New in version 4.4.
Type: string
Default: on
Available for
mongosonly.Specifies whether
mongossupports hedged reads for those read operations whose read preference have enabled the hedged read option.Available values are:
Value Description onThe mongosinstance supports hedged reads for read operations whose read preference have enabled the hedged read option.offThe mongosinstance does not support hedged reads. That is, hedged reads are unavailable, even for read operations whose read preference have enabled the hedged read option.For example, to turn off hedged read support for a
mongosinstance, you can issue the following during startup:Or if using the
setParametercommand in amongoshsession that is connected to a runningmongos:See also
-
shutdownTimeoutMillisForSignaledShutdown¶ New in version 5.0.
Type: integer
Default: 15000
Available for
mongodonly.Specifies the time (in milliseconds) to wait for any ongoing database operations to complete before initiating a shutdown of
mongodin response to aSIGTERMsignal.For example, to set the time to 250 milliseconds, you can issue the following during startup:
Or if using the
setParametercommand in amongoshsession that is connected to a runningmongod:
-
mongosShutdownTimeoutMillisForSignaledShutdown¶ New in version 5.0.
Type: integer
Default: 15000
Available for
mongosonly.Specifies the time (in milliseconds) to wait for any ongoing database operations to complete before initiating a shutdown of
mongosin response to aSIGTERMsignal.For example, to set the time to 250 milliseconds, you can issue the following during startup:
Or if using the
setParametercommand in amongoshsession that is connected to a runningmongos:
-
replMonitorMaxFailedChecks¶ Available in MongoDB 3.2 only
Type: integer
Default: 30
The number of times the
mongodormongosinstance tries to reach the replica sets in the sharded cluster (for example, shard replica sets, config server replica set) to monitor the replica set status and topology.When the number of consecutive unsuccessful attempts exceeds this parameter value, the
mongodormongosinstance denotes the monitored replica set as unavailable. If the monitored replica set is the config server replica set:- For MongoDB 3.2.0-3.2.9, the monitoring
mongodormongosinstance will become unusable and needs to be restarted. See the v3.2 troubleshooting guide for more details. - For MongoDB 3.2.10 and later 3.2-series, see also
timeOutMonitoringReplicaSets.
- For MongoDB 3.2.0-3.2.9, the monitoring
-
timeOutMonitoringReplicaSets¶ Available in MongoDB 3.2.10 and later 3.2-series only
Type: integer
Default: false
The flag that determines whether the
mongodormongosinstance should stop its attempt to reach the monitored replica set after unsuccessfully tryingreplMonitorMaxFailedChecksnumber of times.If the monitored replica set is the config server replica set and
timeOutMonitoringReplicaSetsis set totrue, you must restartmongodormongosif themongodormongosinstance cannot reach any of the config servers for the specified number of times. See the v3.2 troubleshooting guide for more details.
-
ShardingTaskExecutorPoolHostTimeoutMS¶ Type: integer
Default: 300000 (5 minutes)
Available for both
mongodandmongos.Maximum time that
mongosgoes without communication to a host beforemongosdrops all connections to the host.If set,
ShardingTaskExecutorPoolHostTimeoutMSshould be greater than the sum ofShardingTaskExecutorPoolRefreshRequirementMSandShardingTaskExecutorPoolRefreshTimeoutMS. Otherwise,mongosadjusts the value ofShardingTaskExecutorPoolHostTimeoutMSto be greater than the sum.The following example sets
ShardingTaskExecutorPoolHostTimeoutMSto120000during startup:During runtime, you can also set the parameter with the
setParametercommand:
-
ShardingTaskExecutorPoolMaxConnecting¶ Type: integer
Default: 2
Available for both
mongodandmongos.Maximum number of simultaneous initiating connections (including pending connections in setup/refresh state) each TaskExecutor connection pool can have to a
mongodinstance. You can set this parameter to control the rate at whichmongosadds connections to amongodinstance.If set,
ShardingTaskExecutorPoolMaxConnectingshould be less than or equal toShardingTaskExecutorPoolMaxSize. If it is greater,mongosignores theShardingTaskExecutorPoolMaxConnectingvalue.The following example sets
ShardingTaskExecutorPoolMaxConnectingto20during startup:During runtime, you can also set the parameter with the
setParametercommand:
-
ShardingTaskExecutorPoolMaxSize¶ Type: integer
Default: 264 - 1
Available for both
mongodandmongos.Maximum number of outbound connections each TaskExecutor connection pool can open to any given
mongodinstance. The maximum possible connections to any given host across all TaskExecutor pools is:The following example sets
ShardingTaskExecutorPoolMaxSizeto20during startup:During runtime, you can also set the parameter with the
setParametercommand:mongoscan have up tonTaskExecutor connection pools, wherenis the number of cores. SeetaskExecutorPoolSize.See also
-
ShardingTaskExecutorPoolMaxSizeForConfigServers¶ New in version 6.0.
Type: integer
Default: -1
Available for both
mongodandmongos.Optional override for
ShardingTaskExecutorPoolMinSizeto set the minimum number of outbound connections each TaskExecutor connection pool can open to a configuration server.When set to:
-1,ShardingTaskExecutorPoolMinSizeis used. This is the default.- an integer value greater than
-1, overrides the minimum number of outbound connections each TaskExecutor connection pool can open to a configuration server.
Parameter only applies to sharded deployments.
The following example sets
ShardingTaskExecutorPoolMinSizeto2during startup, which sets the minimum number of outbound connections each TaskExecutor connection pool can open to a configuration server to2:During runtime, you can also set the parameter with the
setParametercommand:
-
ShardingTaskExecutorPoolMinSize¶ Type: integer
Default: 1
Available for both
mongodandmongos.Minimum number of outbound connections each TaskExecutor connection pool can open to any given
mongodinstance.ShardingTaskExecutorPoolMinSizeconnections are created the first time a connection to a new host is requested from the pool. While the pool is idle, the pool maintains this number of connections untilShardingTaskExecutorPoolHostTimeoutMSmilliseconds pass without any application using that pool.For a
mongosusing thewarmMinConnectionsInShardingTaskExecutorPoolOnStartupparameter, theShardingTaskExecutorPoolMinSizeparameter also controls how many connections to each shard host are established on startup of themongosinstance before it begins accepting incoming client connections.Note
In MongoDB 4.4, the
warmMinConnectionsInShardingTaskExecutorPoolOnStartupparameter is enabled by default for themongos.The following example sets
ShardingTaskExecutorPoolMinSizeto2during startup:During runtime, you can also set the parameter with the
setParametercommand:mongoscan have up tonTaskExecutor connection pools, wherenis the number of cores. SeetaskExecutorPoolSize.
-
ShardingTaskExecutorPoolMinSizeForConfigServers¶ New in version 6.0.
Type: integer
Default: -1
Available for both
mongodandmongos.Optional override for
ShardingTaskExecutorPoolMinSizeto set the minimum number of outbound connections each TaskExecutor connection pool can open to a configuration server.When set to:
-1,ShardingTaskExecutorPoolMinSizeis used. This is the default.- an integer value greater than
-1, overrides the minimum number of outbound connections each TaskExecutor connection pool can open to a configuration server.
Parameter only applies to sharded deployments.
The following example sets
ShardingTaskExecutorPoolMinSizeto2during startup, which sets the minimum number of outbound connections each TaskExecutor connection pool can open to a configuration server to2:During runtime, you can also set the parameter with the
setParametercommand:
-
ShardingTaskExecutorPoolRefreshRequirementMS¶ Type: integer
Default: 60000 (1 minute)
Available for both
mongodandmongos.Maximum time the
mongoswaits before attempting to heartbeat a resting connection in the pool. An idle connection may be discarded during the refresh if the pool is above its minimum size.If set,
ShardingTaskExecutorPoolRefreshRequirementMSshould be greater thanShardingTaskExecutorPoolRefreshTimeoutMS. Otherwise,mongosadjusts the value ofShardingTaskExecutorPoolRefreshTimeoutMSto be less thanShardingTaskExecutorPoolRefreshRequirementMS.The following example sets
ShardingTaskExecutorPoolRefreshRequirementMSto90000during startup:During runtime, you can also set the parameter with the
setParametercommand:
-
ShardingTaskExecutorPoolRefreshTimeoutMS¶ Type: integer
Default: 20000 (20 seconds)
Available for both
mongodandmongos.Maximum time the
mongoswaits for a heartbeat before timing out the heartbeat.If set,
ShardingTaskExecutorPoolRefreshTimeoutMSshould be less thanShardingTaskExecutorPoolRefreshRequirementMS. Otherwise,mongosadjusts the value ofShardingTaskExecutorPoolRefreshTimeoutMSto be less thanShardingTaskExecutorPoolRefreshRequirementMS.The following example sets
ShardingTaskExecutorPoolRefreshTimeoutMSto30000during startup:During runtime, you can also set the parameter with the
setParametercommand:
-
ShardingTaskExecutorPoolReplicaSetMatching¶ New in version 4.2.
Changed in version 5.0: (Also starting in 4.4.5 and 4.2.13)
Type: string
Default: “automatic”
Available for both
mongodandmongos.On a
mongosinstance, this parameter sets the policy that determines the minimum size limit of its connection pools to nodes within replica sets.On a
mongodinstance, this parameter sets the policy that determines the minimum size limit of its connection pools to nodes within other replica sets.Note that this parameter only manages connections for operations that are directly related to user requests and CRUD operations.
Available values are:
Matching Policy Description "automatic"(Default)Starting in 5.0 (and 4.4.5 and 4.2.13),
"automatic"is the new default value.When set for a
mongos, the instance follows the behavior specified for the"matchPrimaryNode"option.When set for a
mongod, the instance follows the behavior specified for the"disabled"option.Note
If the
ShardingTaskExecutorPoolReplicaSetMatchingis set to"automatic", thereplicaSetMatchingStrategystill describes the actual policy being used, not"automatic". To find the value of theShardingTaskExecutorPoolReplicaSetMatching, usegetParameterwhich returns the value of the server parameter."matchPrimaryNode"When set for a
mongos, the minimum size limit of the instance’s connection pool to each secondary of a replica set in the sharded cluster (specifically, shard replica set and config servers) is equal to the size of its connection pool to that replica set’s primary.When set for a
mongod, the minimum size limit of the instance’s connection pool to each secondary of another replica set in the sharded cluster (specifically, shard replica set and config servers) is equal to the size of its connection pool to that replica set’s primary.Warning
If multiple shard servers in your topology can experience a rapid influx of cross-shard operations, do not set this option on your
mongodinstances.In case of a primary stepdown,
matchPrimaryNodeensures that any secondary that becomes the primary can handle the current level of primary reads and writes."matchBusiestNode"When set for a
mongos, the instance’s minimum size limit of the connection pool to each member of a replica set in the sharded cluster (specifically, shard replica set and config servers) is equal to the largest among the active connection counts to the primary and each secondary member of that replica set.When set for a
mongod, the instance’s minimum size limit of the connection pool to each member of another replica set in the sharded cluster (specifically, shard replica set and config servers) is equal to the largest among the active connection counts to the primary and each secondary member of that replica set.With
"matchBusiestNode",mongosmaintains enough connections to each secondary to handle the current level of primary and secondary reads and writes. The number of connections to maintain in the pool decreases as the number of active connections decreases."disabled"When set for a
mongos, the instance’s minimum number of connections in the instance’s connection pool to each node of a replica set in the sharded clusterv (specifically, shard replica set and config servers) is equal to theShardingTaskExecutorPoolMinSize.When set for a
mongod, the instance’s minimum number of connections in the instance’s connection pool to each node of another replica set in the sharded cluster (specifically, shard replica set and config servers) is equal to theShardingTaskExecutorPoolMinSize.The following example sets the
ShardingTaskExecutorPoolReplicaSetMatchingto"automatic"during startup:During runtime, you can also set the parameter with the
setParametercommand:
-
taskExecutorPoolSize¶ Changed in version 4.0.
Type: integer
Default: 1
Available for
mongosonly.The number of Task Executor connection pools to use for a given
mongos.If the parameter value is
0or less, the number of Task Executor connection pools is the number of cores with the following exceptions:- If the number of cores is less than 4, the number of Task Executor connection pools is 4.
- If the number of cores is greater than 64, the number of Task Executor connection pools is 64.
Starting in MongoDB 4.0, the default value of
taskExecutorPoolSizeis1:- In MongoDB 4.0 deployment, you can set
taskExecutorPoolSizeto0and, on Linux, set AsyncRequestsSenderUseBaton tofalsefor the previous behavior. - In MongoDB 4.2+ deployment, MongoDB removes the
AsyncRequestsSenderUseBatonparameter and always enables the performance enhancement controlled by the parameter.
You can only set this parameter during start-up and cannot change this setting using the
setParameterdatabase command.
-
loadRoutingTableOnStartup¶ New in version 4.4.
Type: boolean
Default: true
Available for
mongosonly.Configures a
mongosinstance to preload the routing table for a sharded cluster on startup. With this setting enabled, themongoscaches the cluster-wide routing table for each sharded collection as part of its startup procedure, before it begins accepting client connections.Without this setting enabled, the
mongosonly loads a routing table as needed for incoming client connections, and only loads the specific routing table for the namespace of a given request.A
mongosinstance with theloadRoutingTableOnStartupparameter enabled may experience longer startup times, but will result in faster servicing of initial client connections once started.loadRoutingTableOnStartupis enabled by default.You can only set this parameter on startup, using either the
setParameterconfiguration file setting or the--setParametercommand line option.
-
warmMinConnectionsInShardingTaskExecutorPoolOnStartup¶ New in version 4.4.
Type: boolean
Default: true
Available for
mongosonly.Configures a
mongosinstance to prewarm its connection pool on startup. With this parameter enabled, themongosattempts to establishShardingTaskExecutorPoolMinSizenetwork connections to each shard server as part of its startup procedure, before it begins accepting client connections.A timeout for this behavior can be configured with the
warmMinConnectionsInShardingTaskExecutorPoolOnStartupWaitMSparameter. If this timeout is reached, themongoswill begin accepting client connections regardless of the size of its connection pool.A
mongosinstance with this parameter enabled may experience longer startup times, but will result in faster servicing of initial client connections once started.warmMinConnectionsInShardingTaskExecutorPoolOnStartupis enabled by default.You can only set this parameter on startup, using either the
setParameterconfiguration file setting or the--setParametercommand line option.
-
warmMinConnectionsInShardingTaskExecutorPoolOnStartupWaitMS¶ New in version 4.4.
Type: integer
Default: 2000 (2 seconds)
Available for
mongosonly.Sets the timeout threshold in milliseconds for a
mongosto wait forShardingTaskExecutorPoolMinSizeconnections to be established per shard host when using thewarmMinConnectionsInShardingTaskExecutorPoolOnStartupparameter. If this timeout is reached, themongoswill begin accepting client connections regardless of the size of its connection pool.You can only set this parameter on startup, using either the
setParameterconfiguration file setting or the--setParametercommand line option.
-
migrateCloneInsertionBatchDelayMS¶ New in version 4.0.5: The parameter is also available starting in 3.4.18 and 3.6.10
Available for
mongodonly.Type: Non-negative integer
Default: 0
Time in milliseconds to wait between batches of insertions during cloning step of the migration process. This wait is in addition to the
secondaryThrottle.The default value of
0indicates no additional wait.The following sets the
migrateCloneInsertionBatchDelayMSto 200 milliseconds:The parameter may also be set using the
setParametercommand:
-
migrateCloneInsertionBatchSize¶ New in version 4.0.5: The parameter is also available starting in 3.4.18 and 3.6.10
Available for
mongodonly.Type: Non-negative integer
Default: 0
The maximum number of documents to insert in a single batch during the cloning step of the migration process.
The default value of
0indicates no maximum number of documents per batch. However, in practice, this results in batches that contain up to 16 MB of documents.The following sets the
migrateCloneInsertionBatchSizeto 100 documents:The parameter may also be set using the
setParametercommand:
-
orphanCleanupDelaySecs¶ Default: 900 (15 minutes)
Available for
mongodonly.Minimum delay before a migrated chunk is deleted from the source shard.
Before deleting the chunk during chunk migration, MongoDB waits for
orphanCleanupDelaySecsor for in-progress queries involving the chunk to complete on the shard primary, whichever is longer.However, because the shard primary has no knowledge of in-progress queries run on the shard secondaries, queries that use the chunk but are run on secondaries may see documents disappear if these queries take longer than the time to complete the shard primary queries and the
orphanCleanupDelaySecs.Note
This behavior only affects in-progress queries that start before the chunk migration. Queries that start after the chunk migration starts will not use the migrating chunk.
If a shard has storage constraints, consider reducing this value temporarily. If running queries that exceed 15 minutes on shard secondaries, consider increasing this value.
The following sets the
orphanCleanupDelaySecsto 20 minutes:This may also be set using the
setParametercommand:
-
rangeDeleterBatchDelayMS¶ New in version 4.0.1: The parameter is also available starting in 3.4.17 and 3.6.7.
Available for
mongodonly.Type: Non-negative integer
Default: 20
The amount of time in milliseconds to wait before the next batch of deletion during the cleanup stage of chunk migration (or the
cleanupOrphanedcommand).In MongoDB 3.4, consider whether _secondaryThrottle is set before modifying the
rangeDeleterBatchDelayMS. In MongoDB 3.4, the _secondaryThrottle replication delay occurs after each document deletion instead of after the batch deletion.In MongoDB 3.6+, the _secondaryThrottle replication delay occurs after each batch deletion.
The following sets the
rangeDeleterBatchDelayMSto 200 milliseconds:The parameter may also be set using the
setParametercommand:
-
rangeDeleterBatchSize¶ New in version 4.0.5.
Available for
mongodonly.Type: Non-negative integer
Default: 2147483647 starting in MongoDB 5.1.2, 5.0.6, and 4.4.12 (128 in earlier MongoDB versions)
The maximum number of documents in each batch to delete during the cleanup stage of chunk migration (or the
cleanupOrphanedcommand).A value of
0indicates that the system chooses the default value.The following example sets
rangeDeleterBatchSizeto 32 documents:The parameter may also be set using the
setParametercommand:
-
skipShardingConfigurationChecks¶ Available for
mongodonly.Type: boolean
Default: false
When
true, allows for starting a shard member or config server member as a standalone for maintenance operations. This parameter is mutually exclusive with the--configsvror--shardsvroptions.You can only set this parameter during start-up and cannot change this setting using the
setParameterdatabase command.Important
Once maintenance has completed, remove the
skipShardingConfigurationChecksparameter when restarting themongod.The parameter is also available for MongoDB versions:
- MongoDB 3.2.19+
- MongoDB 3.4.11+
-
findChunksOnConfigTimeoutMS¶ New in version 5.0.
Available for both
mongodandmongos.Type: Non-negative integer
Default: 900000
The timeout in milliseconds for find operations on
chunks.If there is a large number of chunks in the cluster and chunk loading fails with the error
ExceededTimeLimit, increase the parameter value:
Health Manager Parameters¶
-
activeFaultDurationSecs¶ Type: Document
Available for
mongosonly.The amount of time to wait from a <health-managers-overview> failure until the mongos is removed from the cluster, in seconds.
When a failure is detected and a Health Manager is configured as
critical, the server waits for the specified interval before removing themongosfrom the cluster.For example, to set the duration from failure to crash to five minutes, issue the following at startup:
Or if using the
setParametercommand in amongoshsession that is connected to a runningmongos:Parameters set with
setParameterdo not persist across restarts. See the setParameter page for details.To make this setting persistent, set
activeFaultDurationSecsin your mongos config file using thesetParameteroption as in the following example:
-
healthMonitoringIntensities¶ Type: Array of documents
Available for
mongosonly.Use this parameter to set intensity levels for Health Managers.
healthMonitoringIntensitiesaccepts an array of documents,values. Each document invaluestakes two fields:type, the Health Manager facetintensity, the intensity level
Facet What the Health Observer Checks configServerCluster health issues related to connectivity to the config server. dnsCluster health issues related to DNS availability and functionality. ldapCluster health issues related to LDAP availability and functionality. Intensity Level Description criticalThe Health Manager on this facet is enabled and has the ability to move the failing mongos out of the cluster if an error occurs. The Health Manager waits the amount of time specified by activeFaultDurationSecsbefore stopping and moving the mongos out of the cluster automatically.non-criticalThe Health Manager on this facet is enabled and logs errors, but the mongos remains in the cluster if errors are encountered. offThe Health Manager on this facet is disabled. The mongos does not perform any health checks on this facet. This is the default intensity level. For example, to set the
dnsHealth Manager facet to thecriticalintensity level, issue the following at startup:Or if using the
setParametercommand in amongoshsession that is connected to a runningmongos:Parameters set with
setParameterdo not persist across restarts. See the setParameter page for details.To make this setting persistent, set
healthMonitoringIntensitiesin your mongos config file using thesetParameteroption as in the following example:
-
healthMonitoringIntervals¶ Type: Array of documents
Available for
mongosonly.How often this Health Manager will run, in milliseconds.
healthMonitoringIntervalsaccepts an array of documents,values. Each document invaluestakes two fields:type, the Health Manager facetinterval, the time interval it runs at, in milliseconds
Facet What the Health Observer Checks configServerCluster health issues related to connectivity to the config server. dnsCluster health issues related to DNS availability and functionality. ldapCluster health issues related to LDAP availability and functionality. For example, to set the
ldapHealth Manager facet to the run health checks every 30 seconds, issue the following at startup:Or if using the
setParametercommand in amongoshsession that is connected to a runningmongos:Parameters set with
setParameterdo not persist across restarts. See the setParameter page for details.To make this setting persistent, set
healthMonitoringIntervalsin your mongos config file using thesetParameteroption as in the following example:
-
progressMonitor¶ Type: Document
Available for
mongosonly.Progress Monitor runs tests to ensure that Health Manager checks do not become stuck or unresponsive. Progress Monitor runs these tests in intervals specified by
interval. If a health check begins but does not complete within the timeout given bydeadline, Progress Monitor stops the mongos and removes it from the cluster.Field Description Units intervalHow often to ensure Health Managers are not stuck or unresponsive. Milliseconds deadlineTimeout before automatically failing the mongos if a Health Manager check is not making progress. Seconds To set the
intervalto 1000 milliseconds and thedeadlineto 300 seconds, issue the following at startup:Or if using the
setParametercommand in amongoshsession that is connected to a runningmongos:Parameters set with
setParameterdo not persist across restarts. See the setParameter page for details.To make this setting persistent, set
progressMonitorin your mongos config file using thesetParameteroption as in the following example:
Storage Parameters¶
-
honorSystemUmask¶ Available for
mongodonly.Default:
falseIf
honorSystemUmaskis set totrue, new files created by MongoDB have permissions in accordance with the user’sumasksettings. You cannot setprocessUmaskifhonorSystemUmaskis set totrue.If
honorSystemUmaskis set tofalse, new files created by MongoDB have permissions set to600, which gives read and write permissions only to the owner. New directories have permissions set to700. You can useprocessUmaskto override the default permissions for groups and other users on all new files created by MongoDB.You can only set this parameter during start-up and cannot change this setting using the
setParameterdatabase command.Note
honorSystemUmaskis not available on Windows systems.
-
journalCommitInterval¶ Available for
mongodonly.Specify an integer between
1and500signifying the number of milliseconds (ms) between journal commits.Consider the following example which sets the
journalCommitIntervalto200ms:See also
-
minSnapshotHistoryWindowInSeconds¶ New in version 5.0.
Default:
300Available for
mongodonly.The minimum time window in seconds for which the storage engine keeps the snapshot history. If you query data using read concern
"snapshot"and specify an atClusterTime value older than the specifiedminSnapshotHistoryWindowInSeconds,mongodreturns aSnapshotTooOlderror.Specify an integer greater than or equal to (
>=) 0.Consider the following example which sets the
minSnapshotHistoryWindowInSecondsto600seconds:Note
Increasing the value of
minSnapshotHistoryWindowInSecondsincreases disk usage. For more information, see Snapshot History Retention.To modify this value for a MongoDB Atlas cluster, you must contact Atlas Support.
-
processUmask¶ New in version 4.4.
Available for
mongodonly.Overrides the default permissions used for groups and other users when
honorSystemUmaskis set tofalse. By default, whenhonorSystemUmaskis set tofalse, new files created by MongoDB have permissions set to600. Use theprocessUmaskparameter to override this default with a customumaskvalue. The file owner inherits permissions from the systemumask.You cannot set this parameter if
honorSystemUmaskis set totrue. You can only set this parameter during start-up and cannot change this setting using thesetParameterdatabase command.Consider the following example, which sets the permissions for groups and other users to read/write only and retains the system
umasksettings for the owner:Note
processUmaskis not available on Windows systems.
-
syncdelay¶ Available for
mongodonly.Specify the interval in seconds between fsync operations where
mongodflushes its working memory to disk. By default,mongodflushes 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
syncdelayto60seconds:
WiredTiger Parameters¶
-
wiredTigerMaxCacheOverflowSizeGB¶ Note
Deprecated in MongoDB 4.4
MongoDB deprecates the
wiredTigerMaxCacheOverflowSizeGBparameter. The parameter has no effect starting in MongoDB 4.4.Default: 0 (No specified maximum)
Available for
mongodonly.Specify the maximum size (in GB) for the “lookaside (or cache overflow) table” file
WiredTigerLAS.wtfor MongoDB 4.2.1-4.2.x and 4.0.12-4.0.x. The file no longer exists starting in version 4.4.The parameter can accept the following values:
Value Description 0The default value. If set to 0, the file size is unbounded.number >= 0.1 The maximum size (in GB). If the WiredTigerLAS.wtfile exceeds this size,mongodexits with a fatal assertion. You can clear theWiredTigerLAS.wtfile and restartmongod.You can only set this parameter during runtime using the
setParameterdatabase command:To set the maximum size during start up, use the
storage.wiredTiger.engineConfig.maxCacheOverflowFileSizeGBinstead.Available starting in MongoDB 4.2.1 (and 4.0.12)
-
wiredTigerConcurrentReadTransactions¶ Available for
mongodonly.Available for the WiredTiger storage engine only.
Specify the maximum number of concurrent read transactions allowed into the WiredTiger storage engine.
See also
-
wiredTigerConcurrentWriteTransactions¶ Available for
mongodonly.Available for the WiredTiger storage engine only.
Specify the maximum number of concurrent write transactions allowed into the WiredTiger storage engine.
See also
-
wiredTigerEngineRuntimeConfig¶ Available for
mongodonly.Specify
wiredTigerstorage engine configuration options for a runningmongodinstance. You can only set this parameter using thesetParametercommand and not using the command line or configuration file option.Warning
Avoid modifying the
wiredTigerEngineRuntimeConfigunless 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 :wtdocs-v5.0:`WiredTiger configuration options </struct_w_t___c_o_n_n_e_c_t_i_o_n.html#>`.
Auditing Parameters¶
-
auditAuthorizationSuccess¶ Type: boolean
Default: false
Note
Available only in MongoDB Enterprise and MongoDB Atlas.
Available for both
mongodandmongos.Enables the auditing of authorization successes for the authCheck action.
When
auditAuthorizationSuccessisfalse, the audit system only logs the authorization failures forauthCheck.To enable the audit of authorization successes, issue the following command:
Enabling
auditAuthorizationSuccessdegrades performance more than logging only the authorization failures.If runtime audit configuration is enabled, the
auditAuthorizationSuccessparameter should not appear in themongodormongosconfiguration file. The server will fail to start if the parameter is present.See also
-
auditConfigPollingFrequencySecs¶ New in version 5.0.
Type: integer
Default: 300
A sharded cluster may have servers which maintain audit configuration settings for the cluster. Set the interval, in seconds, for non-configured servers to poll a config server for the current audit generation. If this value returned differs from the previously known value, the initiating node will request the current configuration and update its internal state.
Note
Using the default value of 300 seconds, non-config nodes may lag up to 5 minutes behind a setAuditConfig command.
-
auditEncryptionHeaderMetadataFile¶ New in version 6.0.
Type: string
Note
Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.
Available for both
mongodandmongos.Path and file name for logging metadata audit headers for audit log encryption. A header is placed at the top of each audit log file and contains metadata for decrypting the audit log. The headers are also stored in the audit log.
You can only set
auditEncryptionHeaderMetadataFileduring startup in theconfiguration fileor with the--setParameteroption on the command line. For example, the following sets the path and file forauditEncryptionHeaderMetadataFile:
-
auditEncryptKeyWithKMIPGet¶ New in version 6.0.
Type: boolean
Default: false
Note
Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.
Available for both
mongodandmongos.Enables audit log encryption for Key Management Interoperability Protocol (KMIP) servers that only support KMIP protocol version 1.0 or 1.1.
You can only set
auditEncryptKeyWithKMIPGetduring startup in theconfiguration fileor with the--setParameteroption on the command line. For example, the following setsauditEncryptKeyWithKMIPGettotrue:
Transaction Parameters¶
-
coordinateCommitReturnImmediatelyAfterPersistingDecision¶ New in version 5.0.
Type: boolean
Default: true
Available for
mongodonly.If
true, the shard transaction coordinator returns a multi-document transaction commit decision to the client as soon as the commit is made durable with the requested transaction write concern. If the client requested a write concern that is less than"majority", the commit may roll back after the decision is returned to the client.If
false, the shard transaction coordinator waits for all members to acknowledge a multi-document transaction commit before returning the commit decision to the client.The following example sets
coordinateCommitReturnImmediatelyAfterPersistingDecisiontofalse:During runtime, you can also set the parameter with the
setParametercommand:
-
transactionLifetimeLimitSeconds¶ New in version 4.0.
Available for
mongodonly.Default: 60
Specifies the lifetime of multi-document transactions. Transactions that exceed this limit are considered expired and will be aborted by a periodic cleanup process. The cleanup process runs every
transactionLifetimeLimitSeconds/2 seconds or at least once every 60 seconds.The cleanup process helps relieve storage cache pressure.
The minimum value for transactionLifetimeLimitSeconds is
1second.The following sets the
transactionLifetimeLimitSecondsto30seconds:You can also set parameter
transactionLifetimeLimitSecondsat startup time.To set the parameter for a sharded cluster, the parameter must be modified for all shard replica set members.
Starting in MongoDB 5.0, if you change the
transactionLifetimeLimitSecondsparameter, you must also changetransactionLifetimeLimitSecondsto the same value on all config server replica set members. Keeping this value consistent:- Ensures the routing table history is retained for at least as long as the transaction lifetime limit on the shard replica set members.
- Reduces the transaction retry frequency and therefore improves performance.
-
maxTransactionLockRequestTimeoutMillis¶ New in version 4.0.
Available for
mongodonly.Type: integer
Default: 5
The maximum amount of time in milliseconds that multi-document transactions should wait to acquire locks required by the operations in the transaction.
If the transaction cannot acquire the locks after waiting
maxTransactionLockRequestTimeoutMillis, the transaction aborts.By default, multi-document transactions wait
5milliseconds. That is, if the transaction cannot acquire the locks within5milliseconds, the transaction aborts. If an operation provides a greater timeout in a lock request,maxTransactionLockRequestTimeoutMillisoverrides the operation-specific timeout.You can set
maxTransactionLockRequestTimeoutMillisto:0such that if the transaction cannot acquire the required locks immediately, the transaction aborts.- A number greater than
0to wait the specified time to acquire the required locks. This can help obviate transaction aborts on momentary concurrent lock acquisitions, like fast-running metadata operations. However, this could possibly delay the abort of deadlocked transaction operations. -1to use the operation specific timeout.
The following sets the
maxTransactionLockRequestTimeoutMillisto20milliseconds:You can also set this parameter during start-up:
-
shouldMultiDocTxnCreateCollectionAndIndexes¶ Removed in 5.0
Type: boolean
Default: true
A flag that enables or disables the creation of a collection or an index inside transactions. Set the parameter to:
trueto enable. (Default)falseto disable.
You can set the parameter during startup or runtime.
Important
When setting the parameter for a sharded cluster, set the parameter on all shards.
To set the parameter at startup, specify the parameter in the
configuration fileor with the--setParameteroption on the command line. For example:To modify during runtime, you can use the
setParametercommand; for example:
Slot-Based Execution Parameters¶
-
planCacheSize¶ New in version 5.1.
Type: string
Default: 5%
Available for
mongodonly.Sets the size of the plan cache for the slot based query execution engine.
You can set the
planCacheSizevalue to either:- A percentage of the system’s total physical memory to allocate for
the plan cache. For example,
"8.5%". - The exact amount of data to allocate for the plan cache in either
MBorGB. For example,"100MB"or"1GB".
Increasing the plan cache size adds more cached query shapes for the query planner. This can improve query performance, but increases memory usage.
The following startup command sets
planCacheSizeto 80 megabytes:You can also use the
setParametercommand within the MongoDB Shell:- A percentage of the system’s total physical memory to allocate for
the plan cache. For example,