자체 관리형 배포서버를 위한 MongoDB Server 매개변수
이 페이지의 내용
Synopsis
MongoDB는 다음을 사용하여 설정할 수 있는 다양한 구성 옵션을 제공합니다:
setParameter
명령:db.adminCommand( { setParameter: 1, <parameter>: <value> } ) setParameter
구성 설정:setParameter: <parameter1>: <value1> ... mongos
3} 및 에--setParameter
mongod
대한 명령줄 옵션을 사용합니다:mongod --setParameter <parameter>=<value> mongos --setParameter <parameter>=<value>
추가 구성 옵션은 자체 관리 구성 파일 옵션, mongod
및 mongos
를 참조하세요.
매개변수
인증 매개변수
authenticationMechanisms
mongod
및mongos
모두에 사용할 수 있습니다.서버가 수락하는 인증 메커니즘 목록을 지정합니다. 다음 값 중 하나 이상으로 설정합니다. 여러 값을 지정하는 경우 공백 없이 쉼표로 구분된 목록을 사용하세요. 인증 메커니즘에 대한 설명은 자체 관리 배포서버의 인증을 참조하세요.
값설명RFC 5802 SHA-1 해시 함수를 사용하는 표준 Salted Challenge Response 인증 메커니즘.RFC 7677 표준 SHA-256 해시 함수를 사용하는 솔티드 챌린지 응답 인증 메커니즘.MongoDB TLS/SSL 인증서 인증.GSSAPI(Kerberos)Kerberos를 사용한 외부 인증. 이 메커니즘은 MongoDB Enterprise에서만 사용할 수 있습니다.PLAIN (LDAP SASL)LDAP를 사용한 외부 인증.PLAIN
을 사용해 데이터베이스 내 사용자를 인증할 수도 있습니다.PLAIN
은 비밀번호를 일반 텍스트로 전송합니다. 이 메커니즘은 MongoDB Enterprise에서만 사용할 수 있습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어,
PLAIN
및SCRAM-SHA-256
모두 인증 메커니즘으로 지정하려면 다음 명령을 사용합니다.mongod --setParameter authenticationMechanisms=PLAIN,SCRAM-SHA-256 --auth
awsSTSRetryCount
버전 6.0.7에서 변경됨: (역시 5.0.18 부터 시작)
이전 버전에서는 서버가 HTTP 500 오류를 반환한 경우에만 AWS IAM 인증을 재시도했습니다.
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 2
AWS IAM 자격 증명 또는 AWS IAM 환경 변수를 사용하는 MongoDB 배포의 경우.
연결 실패 후 AWS IAM 인증을 다시 시도할 수 있는 최대 횟수입니다.
다음 예시에서는
awsSTSRetryCount
에서15
의 재시도를 설정합니다.mongod --setParameter awsSTSRetryCount=15 또는 다음 예제에서는
setParameter
명령을mongosh
내에서 사용합니다.db.adminCommand( { setParameter: 1, awsSTSRetryCount: 15 } )
clusterAuthMode
mongod
및mongos
모두에 사용할 수 있습니다.clusterAuthMode
를sendX509
또는x509
으로 설정합니다. 롤링 업그레이드 시 멤버십 인증에 x509를 사용하여 다운타임을 최소화하는 데 유용합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.이 매개변수는 런타임에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
명령을 사용합니다.db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )
enableLocalhostAuthBypass
mongod
및mongos
모두에 사용할 수 있습니다.로컬 호스트 인증 우회를 사용하지 않으려면
0
또는false
을 지정합니다. 기본적으로 활성화되어 있습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.자체 관리 배포에서 로컬호스트 예외에 대한 자세한 내용은 관련 문서를 참조하세요.
KeysRotationIntervalSec
기본값: 7776000초(90일)
다음 키로 넘어가기 전에 HMAC 서명 키가 유효한 시간(초)을 지정합니다. 이 매개변수는 주로 인증 테스트를 용이하게 하기 위한 것입니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
ldapForceMultiThreadMode
기본값: false
LDAP 작업을 동시에 수행할 수 있도록 설정합니다.
참고
libldap
인스턴스가 이 모드에서 사용하기에 안전하다고 확신하는 경우에만 이 플래그를 활성화하세요. 사용 중인libldap
버전이 스레드로부터 안전하지 않은 경우 MongoDB 프로세스 충돌이 발생할 수 있습니다.LDAP 연결 풀을 사용하려면
ldapForceMultiThreadMode
를 사용해야 합니다. LDAP 연결 풀을 활성화하려면ldapForceMultiThreadMode
및ldapUseConnectionPool
을true
로 설정하세요.팁
MongoDB 버전, OS 버전 또는 libldap 버전과 관련하여 우려 사항이 있는 경우 MongoDB 지원팀에 문의하십시오.
ldapQueryPassword
mongod
및mongos
모두에 사용할 수 있습니다.유형: 문자열
LDAP 서버에 바인딩하는 데 사용되는 비밀번호입니다. 이 매개변수와 함께
ldapQueryUser
를 사용해야 합니다.설정하지 않으면 mongod 또는 mongos가 LDAP 서버에 바인딩을 시도하지 않습니다.
ldapQueryUser
mongod
및mongos
모두에 사용할 수 있습니다.유형: 문자열
LDAP 서버에 바인딩하는 사용자입니다. 이 매개변수와 함께
ldapQueryPassword
를 사용해야 합니다.설정하지 않으면 mongod 또는 mongos가 LDAP 서버에 바인딩을 시도하지 않습니다.
ldapRetryCount
버전 6.1에 추가.
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 0
자체 관리형 배포에서 LDAP 권한 부여를 사용하는 MongoDB 배포의 경우.
네트워크 오류 후 서버 LDAP 관리자가 작업을 다시 시도한 횟수입니다.
예를 들어 다음은
ldapRetryCount
에서3
초로 설정합니다.mongod --ldapRetryCount=3 또는
mongosh
내에서setParameter
명령을 사용하는 경우:db.adminCommand( { setParameter: 1, ldapRetryCount: 3 } )
ldapUserCacheInvalidationInterval
버전 5.2에서 변경되었습니다.
mongod
에만 사용 가능합니다.참고
MongoDB 5.2부터 LDAP 서버에서 검색된 캐시된 사용자 정보의 업데이트 간격은
ldapShouldRefreshUserCacheEntries
에 따라 달라집니다.false인 경우
ldapUserCacheInvalidationInterval
을 사용하세요.
자체 관리 배포서버에서 LDAP 권한 부여 를 사용하는 MongoDB 배포와 함께 사용합니다.
mongod
인스턴스에만 사용할 수 있습니다.mongod
2} 인스턴스가 외부 사용자 캐시 플러시 사이에 대기하는 간격(초)입니다. MongoDB가 외부 사용자 캐시를 플러시한 후 MongoDB는 다음에 LDAP 권한이 부여된 사용자가 조작을 발행할 때 LDAP 서버에서 권한 부여 데이터를 다시 가져옵니다.지정된 값을 늘리면 MongoDB와 LDAP 서버가 동기화되지 않을 수 있는 시간이 늘어나지만 LDAP 서버의 로드는 줄어듭니다. 반대로 지정한 값을 줄이면 MongoDB와 LDAP 서버가 동기화되지 않을 수 있는 시간이 줄어드는 반면 LDAP 서버의 부하가 증가합니다.
기본값은 30초입니다.
ldapUserCacheRefreshInterval
버전 5.2에 추가되었습니다.
mongod
에만 사용 가능합니다.유형: integer
기본값: 30초
참고
MongoDB 5.2부터 LDAP 서버에서 검색된 캐시된 사용자 정보의 업데이트 간격은
ldapShouldRefreshUserCacheEntries
에 따라 달라집니다.false인 경우
ldapUserCacheInvalidationInterval
을 사용하세요.
자체 관리형 배포에서 LDAP 권한 부여를 사용하는 MongoDB 배포의 경우.
mongod
2}가 LDAP 서버에서 캐시된 사용자 정보를 새로 고치기 전에 대기하는 간격(초)입니다.최대 간격은 86,400초(24시간)입니다.
예를 들어 다음은
ldapUserCacheRefreshInterval
에서4000
초로 설정합니다.mongod --setParameter ldapUserCacheRefreshInterval=4000 또는
mongosh
내에서setParameter
명령을 사용하는 경우:db.adminCommand( { setParameter: 1, ldapUserCacheRefreshInterval: 4000 } )
ldapUserCacheStalenessInterval
버전 5.2에 추가되었습니다.
mongod
에만 사용 가능합니다.유형: integer
기본값: 90초
자체 관리형 배포에서 LDAP 권한 부여를 사용하는 MongoDB 배포의 경우.
마지막 캐시 새로 고침 후
mongod
가 캐시된 LDAP 사용자 정보를 유지하는 간격(초)입니다.LDAP 서버에서 사용자 정보를 새로 고치지 않고
ldapUserCacheStalenessInterval
초 이상 경과하면mongod
는 다음을 수행합니다.캐시된 LDAP 사용자 정보를 무효화합니다.
2}이 (가) LDAP 서버에 연결하여 LDAP 사용자에게 권한을 부여할 때까지 LDAP 사용자에 대한 새 세션을 인증할 수 없습니다.
mongod
2}가 LDAP 서버에 연결할 수 없는 경우 이전에 인증된 LDAP 사용자를 사용하는 모든 기존 세션에 권한을 부여합니다.
mongod
5}가 LDAP 서버에mongod
mongod
다시 연결하면 은 LDAP 사용자에게 올바른 권한이 부여되었는지 확인합니다.
최대 간격은 86,400초(24시간)입니다.
예를 들어 다음은
ldapUserCacheStalenessInterval
에서4000
초로 설정합니다.mongod --setParameter ldapUserCacheStalenessInterval=4000 또는
mongosh
내에서setParameter
명령을 사용하는 경우:db.adminCommand( { setParameter: 1, ldapUserCacheStalenessInterval: 4000 } )
ldapUseConnectionPool
MongoDB가 인증/권한 부여를 위해 LDAP 서버에 연결할 때 연결 풀링을 사용해야 하는지 여부를 지정합니다.
MongoDB는 다음과 같은 기본값을 사용합니다:
Windows에서는 true입니다.
libldap_r
에 대해 MongoDB Enterprise 바이너리가 연결된 Linux에서 true입니다.libldap
에 대해 MongoDB Enterprise 바이너리가 연결된 Linux에서는 false입니다.
시작 중에만
ldapUseConnectionPool
를 설정할 수 있으며,setParameter
데이터베이스 명령으로 이 설정을 변경할 수 없습니다.
ldapConnectionPoolUseLatencyForHostPriority
기본값: true
LDAP 연결 풀(
ldapUseConnectionPool
참조)에서 LDAP 서버의 대기 시간을 사용하여 연결 순서(대기 시간이 가장 짧은 순서에서 가장 긴 순서로)를 결정할지 여부를 결정하는 부울입니다.시작 중에만
ldapConnectionPoolUseLatencyForHostPriority
를 설정할 수 있으며, 런타임 중에setParameter
데이터베이스 명령을 사용하여 이 설정을 변경할 수 없습니다.
ldapConnectionPoolMinimumConnectionsPerHost
기본값: 1
각 LDAP 서버에 대해 열려 있어야 하는 최소 연결 수입니다.
시작 중에만
ldapConnectionPoolMinimumConnectionsPerHost
를 설정할 수 있으며, 런타임 중에setParameter
데이터베이스 명령을 사용하여 이 설정을 변경할 수 없습니다.
ldapConnectionPoolMaximumConnectionsPerHost
MongoDB 버전 5.0.9 및 6.0.0부터 변경됨 기본값이
2147483647
로 변경되었습니다. 이전 버전에서는 기본값이 설정되지 않았습니다.기본값: 2147483647
각 LDAP 서버에 대해 열려 있어야 하는 최대 연결 수입니다.
시작 중에만
ldapConnectionPoolMaximumConnectionsPerHost
를 설정할 수 있으며, 런타임 중에setParameter
데이터베이스 명령을 사용하여 이 설정을 변경할 수 없습니다.
ldapConnectionPoolMaximumConnectionsInProgressPerHost
MongoDB 버전 5.0.9 및 6.0.0부터 변경됨 기본값이
2
로 변경되었습니다. 이전 버전에서는 기본값이 설정되지 않았습니다.기본값: 2
각 LDAP 서버에 대해 진행 중인 연결 작업의 최대 수입니다.
시작 중에만
ldapConnectionPoolMaximumConnectionsInProgressPerHost
를 설정할 수 있으며,setParameter
데이터베이스 명령으로 이 설정을 변경할 수 없습니다.
ldapConnectionPoolHostRefreshIntervalMillis
기본값: 60000
풀링된 LDAP 연결의 상태 확인 사이의 시간(밀리초)입니다.
시작 중에만
ldapConnectionPoolHostRefreshIntervalMillis
를 설정할 수 있으며,setParameter
데이터베이스 명령으로 이 설정을 변경할 수 없습니다.
ldapConnectionPoolIdleHostTimeoutSecs
기본값: 300
LDAP 서버에 대한 풀링된 연결이 닫히기 전에 유휴 상태로 유지될 수 있는 최대 시간(초)입니다.
시작 중에만
ldapConnectionPoolIdleHostTimeoutSecs
를 설정할 수 있으며,setParameter
데이터베이스 명령으로 이 설정을 변경할 수 없습니다.
ldapShouldRefreshUserCacheEntries
버전 5.2에 추가되었습니다.
mongod
에만 사용 가능합니다.유형: 부울
기본값: true
자체 관리형 배포에서 LDAP 권한 부여를 사용하는 MongoDB 배포의 경우.
MongoDB 5.2부터 LDAP 서버에서 검색된 캐시된 사용자 정보의 업데이트 간격은
ldapShouldRefreshUserCacheEntries
에 따라 달라집니다.false인 경우
ldapUserCacheInvalidationInterval
을 사용하세요.
스타트업 도중
ldapShouldRefreshUserCacheEntries
는configuration file
또는--setParameter
명령줄의 옵션으로만 설정할 수 있습니다. 예를 들어, 다음은ldapShouldRefreshUserCacheEntries
를 비활성화합니다.mongod --setParameter ldapShouldRefreshUserCacheEntries=false
maxValidateMemoryUsageMB
버전 5.0에 추가.
기본값: 200
validate
명령의 최대 메모리 사용 제한 (MB) 입니다. 제한을 초과하면validate
함수는 가능한 한 많은 결과를 반환하고 제한으로 인해 일부 손상이 보고되지 않을 수도 있다고 경고합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
ocspEnabled
Linux 및 macOS에서 사용할 수 있습니다.
기본값: true
OCSP를 활성화 또는 비활성화하는 플래그입니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어 다음은 OCSP를 비활성화합니다:
mongod --setParameter ocspEnabled=false ... MongoDB 6.0부터 초기 동기화 중에
ocspEnabled
(이)가true
(으)로 설정된 경우 모든 노드가 OCSP 응답자에 연결할 수 있어야 합니다.멤버가
STARTUP2
상태에서 실패하면tlsOCSPVerifyTimeoutSecs
5
보다 작은 값으로 설정합니다.
ocspValidationRefreshPeriodSecs
Linux에서 사용할 수 있습니다.
스테이플된 OCSP 상태 응답을 새로 고치기 전에 대기할 시간(초)입니다. 1보다 크거나 같은 숫자를 지정합니다.
configuration file
에서 시작 중이거나 명령줄의--setParameter
옵션으로만ocspValidationRefreshPeriodSecs
를 설정할 수 있습니다. 예를 들어 다음은 매개 변수를 3600초로 설정합니다.mongod --setParameter ocspValidationRefreshPeriodSecs=3600 ... MongoDB 5.0부터
rotateCertificates
명령과db.rotateCertificates()
메서드는 스테이플링된 OCSP 응답도 새로 고칩니다.
opensslCipherConfig
Linux에서만 사용 가능
네이티브 TLS/SSL 라이브러리를 사용하는 경우 매개 변수
opensslCipherConfig
는 Linux/BSD에서 지원되며 Windows 및 macOS에서는 더 이상 지원되지 않습니다.TLS/SSL 암호화를 사용할 때 OpenSSL의 암호 문자열을 지정합니다 암호 문자열 목록은 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html을 참조하세요. 여러 개의 암호 문자열을 콜론으로 구분된 목록으로 제공할 수 있습니다.
참고
이 매개 변수는 TLS 1.2 이하에서만 사용할 수 있습니다. TLS 1.3에 사용할 암호 모음을 지정하려면
opensslCipherSuiteConfig
매개 변수를 사용하세요.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.SSL
옵션보다TLS
옵션을 사용하는 것이 좋습니다. TLS 옵션은SSL
옵션과 동일한 기능을 가지고 있습니다. 다음 예시에서는'HIGH:!EXPORT:!aNULL@STRENGTH'
의opensslCipherConfig
암호 string을 사용하여mongod
를 구성합니다.mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL@STRENGTH' --tlsMode requireTLS --tlsCertificateKeyFile Certs/server.pem
opensslCipherSuiteConfig
버전 5.0에 추가.
Linux에서만 사용 가능
TLS 1.3 암호화를 사용할 때 OpenSSL이 허용해야 하는 지원되는 암호화 제품군 목록을 지정합니다.
TLS 1.3과 함께 사용할 수 있는 암호 모음 목록은 https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_cipher_list.html을 참조하세요. 여러 개의 암호 제품군을 콜론으로 구분된 목록으로 제공할 수 있습니다.
참고
이 매개변수는 TLS 1.3에서만 사용할 수 있습니다. TLS 1.2 이하에서 사용할 암호 문자열을 지정하려면
opensslCipherConfig
매개변수를 사용합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어 다음은 TLS 1.3과 함께 사용하기 위해
'TLS_AES_256_GCM_SHA384'
의opensslCipherSuiteConfig
암호화 제품군으로mongod
(을)를 구성합니다.mongod --setParameter opensslCipherSuiteConfig='TLS_AES_256_GCM_SHA384' --tlsMode requireTLS --tlsCertificateKeyFile Certs/server.pem
opensslDiffieHellmanParameters
Linux에서만 사용 가능
TLS 1.2 이하 버전을 사용할 경우, OpenSSL Diffie-Hellman 매개 변수를 포함하는 PEM 파일 경로를 지정하세요. OpenSSL Diffie-Hellman 매개변수를 지정하면 TLS/SSL 암호화 과정에서 DHE(임시 Diffie-Hellman) 암호 제품군을 지원할 수 있습니다.
이 매개변수는 TLS 1.3과 함께 사용할 수 없습니다.
DHE(Ephemeral Diffie-Hellman) 암호 제품군(및 ECDHE(Ephemeral Elliptic Curve Diffie-Hellman) 암호 제품군)은 순방향 비밀성을 제공합니다. 순방향 비밀성 밀성 암호 제품군은 서버의 개인 키로 보호되지만 전송되지 않는 임시 세션 키를 생성합니다. 이는 서버의 개인 키가 손상되더라도, 손상된 키로 과거 세션을 해독할 수 없음을 보장합니다.
참고
opensslDiffieHellmanParameters
가 설정되지 않았지만 ECDHE가 활성화된 경우 MongoDB는 RFC-7919#appendix-A.2에 정의된 대로ffdhe3072
Diffie-Hellman 매개변수를 사용하여 DHE를 사용하도록 설정합니다.ffdhe3072
는 강력한 매개변수입니다(구체적으로 크기가 1024보다 큰 경우). Oracle에서 확장 지원을 구입하지 않는 한 Java 6 및 7에서는 강력한 매개변수가 지원되지 않습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.성능상의 이유로 DHE 암호 모음에 대한 지원을 비활성화해야 하는 경우
opensslCipherConfig
매개변수를 사용합니다.mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!DHE:!kDHE@STRENGTH' ...
saslauthdPath
참고
MongoDB Enterprise에서만 사용할 수 있습니다(Windows용 MongoDB Enterprise 제외).
mongod
및mongos
모두에 사용할 수 있습니다.프록시 인증에 사용할
saslauthd
인스턴스의 Unix 도메인 소켓 경로를 지정합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
saslHostName
mongod
및mongos
모두에 사용할 수 있습니다.saslHostName
SASL 및 Kerberos 인증을 구성하기 위해 MongoDB의 기본 호스트 이름 검색을 재정의합니다.saslHostName
은 SASL 및 Kerberos의 구성 이외의 어떤 목적으로도mongod
또는mongos
인스턴스의 호스트 이름에 영향을 주지 않습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.참고
saslHostName
는 Kerberos 인증을 지원하며 MongoDB Enterprise에만 포함되어 있습니다. 자세한 내용은 다음을 참조하세요:
saslServiceName
mongod
및mongos
모두에 사용할 수 있습니다.사용자가 인스턴스별로 Kerberos 주체 이름의 기본 Kerberos 서비스 이름 구성 요소를 재정의할 수 있도록 허용합니다. 지정하지 않으면 기본값이
mongodb
사용됩니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.saslServiceName
MongoDB Enterprise에서만 사용할 수 있습니다.중요
드라이버가 대체 서비스 이름을 지원하는지 확인합니다.
scramIterationCount
기본값:
10000
mongod
및mongos
모두에 사용할 수 있습니다.모든 새
SCRAM-SHA-1
비밀번호에 사용되는 해싱 반복 횟수를 변경합니다. 반복 횟수가 많을수록 클라이언트가 MongoDB에 인증하는 데 필요한 시간이 늘어나지만, 무차별 암호 대입 시도에 덜 취약해집니다. 기본값은 가장 일반적인 사용 사례 및 요구 사항에 이상적입니다.이 값을 수정해도 기존 비밀번호의 반복 횟수는 변경되지 않습니다.
scramIterationCount
값은5000
이상이어야 합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 다음은
scramIterationCount
를12000
으로 설정합니다.mongod --setParameter scramIterationCount=12000 또는
mongosh
내에서setParameter
명령을 사용하는 경우:db.adminCommand( { setParameter: 1, scramIterationCount: 12000 } )
scramSHA256IterationCount
기본값:
15000
mongod
및mongos
모두에 사용할 수 있습니다.모든 새
SCRAM-SHA-256
비밀번호에 사용되는 해싱 반복 횟수를 변경합니다. 반복 횟수가 많을수록 클라이언트가 MongoDB에 인증하는 데 필요한 시간이 늘어나지만, 무차별 암호 대입 시도에 덜 취약해집니다. 기본값은 가장 일반적인 사용 사례 및 요구 사항에 이상적입니다.이 값을 수정해도 기존 비밀번호의 반복 횟수는 변경되지 않습니다.
scramSHA256IterationCount
값은5000
이상이어야 합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 다음은
scramSHA256IterationCount
를20000
으로 설정합니다.mongod --setParameter scramSHA256IterationCount=20000 또는
mongosh
내에서setParameter
명령을 사용하는 경우:db.adminCommand( { setParameter: 1, scramSHA256IterationCount: 20000 } )
sslMode
mongod
및mongos
모두에 사용할 수 있습니다.net.ssl.mode
를preferSSL
또는requireSSL
로 설정합니다. 다운타임을 최소화하기 위해 TLS/SSL로 롤링 업그레이드할 때 유용합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.이 매개변수는 런타임에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
명령을 사용합니다.db.adminCommand( { setParameter: 1, sslMode: "preferSSL" } )
tlsMode
mongod
및mongos
모두에 사용할 수 있습니다.둘 중 하나로 설정합니다:
preferTLS
requireTLS
tlsMode
매개변수는 다운타임을 최소화하기 위해 TLS/SSL로 롤링 업그레이드할 때 유용합니다.이 매개변수는 런타임에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
명령을 사용합니다.db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } ) TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
tlsOCSPStaplingTimeoutSecs
Linux에서 사용할 수 있습니다.
mongod
/mongos
인스턴스가 대기해야 하는 최대 시간(초)입니다. / 인스턴스가 인증서에 대한 OCSP 상태 응답을 받을 때까지 대기해야 하는 최대 시간입니다.1보다 크거나 같은(
>=
) 정수를 지정합니다. 설정하지 않으면tlsOCSPStaplingTimeoutSecs
는tlsOCSPVerifyTimeoutSecs
값을 사용합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어 다음은
tlsOCSPStaplingTimeoutSecs
를 20초로 설정합니다.mongod --setParameter tlsOCSPStaplingTimeoutSecs=20 ...
tlsOCSPVerifyTimeoutSecs
Linux 및 Windows에서 사용할 수 있습니다.
기본값: 5
mongod
/mongos
이(가) 서버 인증서를확인하기 위해 대기하는 최대 시간(초)입니다. / 가 서버 인증서를 확인할 때 OCSP 응답을 대기해야 하는 최대 시간입니다.(
>=
) 1보다 크거나 같은 정수를 지정합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어 다음은
tlsOCSPVerifyTimeoutSecs
를 20초로 설정합니다.mongod --setParameter tlsOCSPVerifyTimeoutSecs=20 ...
tlsUseSystemCA
mongod
에만 사용 가능합니다.유형: 부울
기본값: false
MongoDB가 운영 체제의 인증 기관에서 이미 사용할 수 있는 TLS 인증서를 로드할지 여부를 지정합니다.
중요
TLS/SSL이 활성화된
mongod
인스턴스를 시작할 때--tlsCAFile
플래그,net.tls.CAFile
구성 옵션, 또는tlsUseSystemCA
매개변수의 값을 지정해야 합니다.--tlsCAFile
,tls.CAFile
,tlsUseSystemCA
는 모두 상호 배타적입니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어
tlsUseSystemCA
true
로 설정하려면 다음을 실행합니다.mongod --setParameter tlsUseSystemCA=true TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
tlsWithholdClientCertificate
mongod
및mongos
모두에 사용할 수 있습니다.TLS 인증서는
mongod
mongos
--tlsClusterFile
옵션 또는 설정되지--tlsCertificateKeyFile
않은 경우 옵션에 의해 또는--tlsClusterFile
에 대해 설정됩니다. TLS 인증서가 설정되어 있으면 기본적으로 인스턴스는 배포의 다른mongod
또는mongos
인스턴스와 클러스터 내 통신을 시작할 때 인증서를 보냅니다.tlsWithholdClientCertificate
를1
또는true
로 설정하여 이러한 통신 중에 TLS 인증서 전송을 보류하도록 인스턴스에 지시합니다. (인증서 없이 인바운드 연결을 허용하려면)--tlsAllowConnectionsWithoutCertificates
과 함께 이 옵션을 배포의 모든 구성원에 사용합니다.tlsWithholdClientCertificate
--clusterAuthMode x509
와 상호 배타적입니다 .이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
tlsX509ClusterAuthDNOverride
mongod
및mongos
모두에 사용할 수 있습니다.인스턴스가 배포 멤버를 식별하는 데 사용할 수도 있는 대체 DN(고유 이름)입니다.
2}에 대해 x.509 인증서를 사용하는 MongoDB 배포의
clusterAuthMode
경우, 배포 구성원은 클러스터 내 통신net.tls.clusterFile
net.tls.certificateKeyFile
중에 x.509 인증서(지정된 경우 및 )를 사용하여 서로를 식별합니다. 동일한 배포의 구성원의 경우, 인증서의DN
는 동일한 조직 특성(O
), 조직 단위 특성(OU
) 및 도메인 구성 요소(DC
)를 가져야 합니다.멤버에 대해
tlsX509ClusterAuthDNOverride
가 설정된 경우 멤버는 제시된 인증서의DN
구성 요소(O
,OU
,DC
)를 비교할 때 재정의 값을 사용할 수도 있습니다. 즉, 멤버는 제시된 인증서를 자신의net.tls.clusterFile
/net.tls.certificateKeyFile
와 비교하여 확인합니다. DN이 일치하지 않으면 멤버는 제시된 인증서를tlsX509ClusterAuthDNOverride
값과 비교하여 확인합니다.참고
설정된 경우 배포의 모든 구성원에 대해 이 매개변수를 설정해야 합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
새
DN
값을 포함하는 새 인증서로 인증서를 롤링 업데이트하는 데 이 매개변수를 사용할 수 있습니다. 자체 관리형 클러스터에서 새 DN이 포함된 x.509 클러스터 인증서 롤링 업데이트를 참조하세요.회원 인증서 요구 사항에 대한 자세한 내용은 회원 인증서 요구 사항을 참조하세요.
tlsX509ExpirationWarningThresholdDays
mongod
및mongos
모두에 사용할 수 있습니다.기본값 : 30
MongoDB 4.4 부터
mongod
/mongos
는 x가 표시되면 연결 시 경고를 기록합니다.509 인증서가mongod/mongos
시스템 시계로부터30
일 이내에 만료됩니다.tlsX509ExpirationWarningThresholdDays
매개 변수를 사용하여 인증서 만료 경고 임계값을 제어합니다.인증서 만료 날짜보다 훨씬 이전에 경고를 트리거하려면 매개변수 값을 늘립니다.
인증서 만료 날짜에 가까워지면 경고를 트리거하려면 매개변수 값을 줄이세요.
경고를 비활성화하려면 매개 변수를
0
으로 설정합니다.
이 매개 변수의 최소값은
0
입니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.x.509 인증서 유효성에 대한 자세한 내용은 RFC 5280 4.1.2.5를 참조하세요.
userCacheInvalidationIntervalSecs
기본값: 30
mongos
에만 사용 가능합니다.mongos
2} 인스턴스에서 인스턴스가mongos
사용자 객체의 인메모리 캐시에 부실 데이터가 있는지 확인하고 부실 데이터가 있는 경우 캐시를 지우는 간격(초)을 지정합니다. 사용자 객체에 대한 변경 내용이 없으면 캐시mongos
지우지 않습니다.이 매개변수의 최소값은
1
초이고 최대값은86400
초(24시간)입니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
authFailedDelayMs
기본값: 0
mongod
및mongos
모두에 사용할 수 있습니다.참고
엔터프라이즈 기능
MongoDB Enterprise에서만 사용할 수 있습니다.
클라이언트에게 인증 시도가 실패했음을 알리기 전에 기다려야 하는 시간(밀리초)입니다. 이 매개변수의 범위는
0
에서5000
사이일 수 있습니다.이 매개변수를 설정하면 데이터베이스에 대한 무차별 대입 로그인 공격에 더 많은 시간이 소요됩니다. 그러나 MongoDB 서버의 응답을 기다리는 클라이언트는 여전히 서버 리소스를 소모하며, 서버가 다른 많은 클라이언트의 액세스를 동시에 거부하는 경우 정상적인 로그인 시도에 악영향을 미칠 수 있습니다.
allowRolesFromX509Certificates
기본값: true
mongod
및mongos
모두에 사용할 수 있습니다.클라이언트 x.509 인증서에서 권한 부여 역할 검색을 허용하거나 허용하지 않는 부울 플래그입니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
일반 매개변수
allowDiskUseByDefault
기본값: True
mongod
에만 사용 가능합니다.MongoDB 6.0부터 실행에 100 메가바이트 이상의 메모리가 필요한 파이프라인 단계에서 기본적으로 임시 파일을 디스크에 씁니다. 이러한 임시 파일은 파이프라인 실행 기간 동안 지속되며 인스턴스의 스토리지 공간에 영향을 줄 수 있습니다. MongoDB의 이전 버전에서는 이 동작을 활성화하려면 개별
find
및aggregate
명령에{ allowDiskUse: true }
을 전달해야 합니다.개별
find
및aggregate
명령은 다음 중 하나를 통해allowDiskUseByDefault
매개변수를 무효화할 수 있습니다.1}이 로 설정된 경우 을 사용하여 임시 파일을 디스크에 쓰는 것을 허용합니다.
{ allowDiskUse: true }
allowDiskUseByDefault
false
1}이 로 설정된 경우 을 사용하여 임시 파일을 디스크에 쓰는 것을 금지합니다.
{ allowDiskUse: false }
allowDiskUseByDefault
true
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
mongod --setParameter allowDiskUseByDefault=false allowDiskUseByDefault
는mongos
가 아닌mongod
에서만 작동합니다.mongos
는 임시 파일을 디스크에 쓰지 않습니다. 실행 중인mongod
에 연결된mongosh
세션에서setParameter
명령을 사용하여 서버가 실행되는 동안 매개변수 값을 변경합니다.db.adminCommand( { setParameter: 1, allowDiskUseByDefault: false } )
httpVerboseLogging
mongod
및mongos
모두에 사용할 수 있습니다.Linux 및 macOS에서 컬에 대한 자세한 추적을 추가합니다. Windows에는 영향을 미치지 않습니다.
기본적으로 이 매개변수는 설정되지 않습니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
mongos --setParameter httpVerboseLogging=true
connPoolMaxConnsPerHost
기본값: 200
mongod
및mongos
모두에 사용할 수 있습니다.글로벌 연결 풀의 다른
mongod
인스턴스로 나가는 연결에 대한 레거시 연결 풀의 최대 크기를 설정합니다. 풀의 크기는 추가 연결 생성을 막지는 못하지만 연결 풀이connPoolMaxConnsPerHost
값을 초과하는 연결을 유지하지 못하게 합니다.참고
매개변수는 TaskExecutor 풀의 연결과 별개입니다.
ShardingTaskExecutorPoolMaxSize
를 참조하세요.이 설정은 드라이버가 연결을 풀링하지 않고 샤딩된 클러스터 상황에서 인증을 사용하는 경우에 국한하여 조정하세요.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.mongod --setParameter connPoolMaxConnsPerHost=250
connPoolMaxInUseConnsPerHost
mongod
및mongos
모두에 사용할 수 있습니다.레거시 글로벌 연결 풀의 다른
mongod
인스턴스로 나가는 연결에 대해 주어진 시간에 사용 중인 최대 연결 수를 설정합니다.기본적으로 이 매개변수는 설정되지 않습니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.mongod --setParameter connPoolMaxInUseConnsPerHost=100
globalConnPoolIdleTimeoutMinutes
mongod
및mongos
모두에 사용할 수 있습니다.레거시 글로벌 연결 풀의 연결이 닫히기 전에 유휴 상태로 유지될 수 있는 시간 제한을 설정합니다.
기본적으로 이 매개변수는 설정되지 않습니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.mongos --setParameter globalConnPoolIdleTimeoutMinutes=10
cursorTimeoutMillis
기본값: 600000(10분)
mongod
및mongos
모두에 사용할 수 있습니다.MongoDB가 유휴 커서를 제거하기 전에 유휴 커서에 대한 만료 임계값을 밀리초 단위로 설정합니다. 구체적으로 MongoDB는 지정된
cursorTimeoutMillis
동안 유휴 상태였던 커서를 제거합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 다음은
cursorTimeoutMillis
를300000
밀리초(5분)로 설정합니다.mongod --setParameter cursorTimeoutMillis=300000 또는
mongosh
내에서setParameter
명령을 사용하는 경우:db.adminCommand( { setParameter: 1, cursorTimeoutMillis: 300000 } ) cursorTimeoutMillis
를0
보다 작거나 같게 설정하면 모든 커서가 즉시 시간 초과될 수 있습니다. 일반적으로 시간 초과 값은 쿼리가 결과를 반환하는 데 걸리는 평균 시간보다 커야 합니다.cursor.explain()
커서 수정자와 같은 도구를 사용하여 평균 쿼리 시간을 분석하고 적절한 시간 초과 기간을 선택하세요.경고
MongoDB는 세션 관리의 일환으로 세션에 연결된 분리된 커서를 정리합니다. 이는 세션 ID가 있는 분리된 커서가 시간 초과를 제어하기 위해
cursorTimeoutMillis
를 사용하지 않음을 의미합니다.커서를 반환하고 유휴 기간이
localLogicalSessionTimeoutMinutes
이상인 작업의 경우Mongo.startSession()
를 사용하여 명시적 세션 내에서 작업을 수행하세요. 세션을 새로 고침하려면refreshSessions
명령을 실행합니다. 자세한 내용은refreshSessions
를 사용하여 커서 새로 고침을 참조하세요.
maxNumActiveUserIndexBuilds
mongod
에만 사용 가능합니다.유형: integer
기본값: 3
프라이머리에서 허용되는 최대 동시 인덱스 빌드 수를 설정합니다. 이는 모든 컬렉션에 적용되는 글로벌 제한입니다.
maxNumActiveUserIndexBuilds
값을 늘리면 추가 동시 인덱스 빌드가 가능하지만 WiredTiger 캐시에 가해지는 부담은 커집니다.시스템 색인은
maxNumActiveUserIndexBuilds
으로 제한되지 않지만 시스템 색인 빌드는 사용자 색인 빌드 제한에 포함됩니다.서버가
maxNumActiveUserIndexBuilds
수준에 도달하면 동시 인덱스 빌드 수가maxNumActiveUserIndexBuilds
제한 아래로 떨어질 때까지 추가 사용자 인덱스 빌드를 차단합니다. 인덱스 빌드가 차단되면 서버는 이 메시지를 기록합니다.Too many index builds running simultaneously, waiting until the number of active index builds is below the threshold. 해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 명령은 동시 인덱스 빌드 제한을 4개로 설정합니다.
db.adminCommand( { setParameter: 1, maxNumActiveUserIndexBuilds: 4 } ) 다음도 참조하세요.
notablescan
mongod
에만 사용 가능합니다.모든 쿼리가 인덱스를 사용해야 하는지 여부를 지정합니다.
1
인 경우 MongoDB는 컬렉션 스캔이 필요한 쿼리를 실행하지 않고 오류를 반환합니다.notablescan
을1
또는 true로 설정하는 다음 예시를 살펴보겠습니다.db.adminCommand( { setParameter: 1, notablescan: 1 } ) notablescan
을1
로 설정하면 애플리케이션 쿼리를 테스트할 때 유용할 수 있습니다. 예를 들어, 전체 컬렉션을 스캔하지만 인덱스를 사용할 수 없는 쿼리를 식별하는 데 유용할 수 있습니다.notablescan
없는 인덱싱되지 않은 쿼리를 감지하려면 현재 작업의 성능 평가 및 쿼리 성능 최적화 섹션을 읽고logLevel
매개 변수,mongostat
및 프로파일링을 사용하는 것이 좋습니다.컬렉션 스캔을 방지하면 관리 쿼리를 포함한 모든 데이터베이스의 쿼리에 잠재적으로 영향을 미칠 수 있으므로
notablescan
(으)로 프로덕션mongod
인스턴스를 실행하지 마세요.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
참고
notablescan
쿼리에는 전체 컬렉션 스캔이 필요하므로 클러스터형 인덱스를 사용하는 무제한 쿼리를 허용하지 않습니다. 자세한 내용은 컬렉션 스캔을 참조하세요.
ttlMonitorEnabled
mongod
에만 사용 가능합니다.기본값:
true
TTL 인덱스를 지원하기 위해
mongod
인스턴스에는 TTL 인덱스가 있는 컬렉션에서 문서를 삭제하는 작업을 담당하는 백그라운드 스레드가 있습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
mongod
에서 이 작업자 스레드를 비활성화하려면 다음 작업에서와 같이ttlMonitorEnabled
를false
로 설정합니다.db.adminCommand( { setParameter: 1, ttlMonitorEnabled: false } ) 또는 다음 옵션을 사용하여
mongod
인스턴스를 시작하여 시작 시 스레드를 비활성화할 수 있습니다.mongod --setParameter ttlMonitorEnabled=false 중요
MongoDB 지원팀의 지침을 따르는 경우를 제외하고
ttlMonitorEnabled
를 비활성화한 상태로 프로덕션mongod
인스턴스를 실행하지 마십시오. TTL 문서 제거를 방지하면 TTL 인덱스에 의존하는 MongoDB 내부 시스템 작업에 부정적인 영향을 미칠 수 있습니다.
tcpFastOpenServer
mongod
및mongos
모두에 사용할 수 있습니다.기본값:
true
클라이언트에서
mongod/mongos
에 대한 인바운드 TCP Fast Open(TFO) 연결을 허용하기 위한 지원을 활성화합니다. TFO를 사용하려면 클라이언트와mongod/mongos
호스트 컴퓨터가 모두 지원되어야 하며 TFO를 활성화해야 합니다.- Windows
다음 Windows 운영 체제에서 TFO를 지원합니다.
Microsoft Windows Server 2016 이상.
Microsoft Windows 10 업데이트 1607 이상.
- macOS
- macOS 10.11(El Capitan) 이상
- Linux
Linux 커널 3.7 이상을 실행하는 Linux 운영 체제는 인바운드 TFO를 지원할 수 있습니다.
인바운드 TFO 연결을 활성화하려면
/proc/sys/net/ipv4/tcp_fastopen
값을 설정합니다.인바운드 TFO 연결만 활성화하려면
2
으로 설정합니다.인바운드 및 아웃바운드 TFO 연결을 활성화하려면
3
으로 설정합니다.
호스트 운영 체제가 TFO 연결을 지원하지 않거나 지원하도록 구성되지 않은 경우 이 매개 변수는 영향을 미치지 않습니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
tcpFastOpenClient
mongod
및mongos
모두에 사용할 수 있습니다.기본값:
true
Linux 운영 체제만 해당
mongod/mongos
에서 클라이언트로의 아웃바운드 TCP Fast Open (TFO)연결을 지원할 수 있습니다. TFO에는 클라이언트와mongod/mongos
호스트 시스템 지원이 모두 필요하며 TFO를 활성화해야 합니다.Linux 커널 4.11 이상을 실행하는 Linux 운영 체제는 아웃바운드 TFO를 지원할 수 있습니다.
아웃바운드 TFO 연결을 활성화하려면
/proc/sys/net/ipv4/tcp_fastopen
값을 설정합니다.1
를 설정하여 아웃바운드 TFO 연결만 활성화하도록 허용합니다.3
를 활성화하여 인바운드 및 아웃바운드 TFO 연결을 허용합니다.
호스트 운영 체제가 TFO 연결을 지원하지 않거나 지원하도록 구성되지 않은 경우 이 매개 변수는 영향을 미치지 않습니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
tcpFastOpenQueueSize
mongod
및mongos
모두에 사용할 수 있습니다.기본값:
1024
TCP Fast Open (TFO) 연결 설정의 일환으로 클라이언트는 표준 TCP 3방향 핸드셰이크가 완료되기 전에 유효한 TFO 쿠키를
mongod/mongos
에 제출합니다.mongod/mongos
은 보류 중인 모든 TFO 연결의 대기열을 유지합니다.tcpFastOpenQueueSize
매개변수는 보류 중인 TFO 연결의 대기열 크기를 설정합니다. 대기열이 가득 차면mongod/mongos
은 들어오는 클라이언트 요청에 대해 일반적인 3자 핸드셰이크로 돌아가서 TFO 쿠키의 존재를 무시합니다. 대기열 크기가 제한 아래로 떨어지면mongod/mongos
가 새 TFO 쿠키를 허용하기 시작합니다.기본 대기열 크기를 늘리면 TFO가 네트워크 성능에 미치는 영향이 향상될 수 있습니다. 그러나 대기열 크기가 크면 과도한 TFO 요청 수신으로 인해 서버 리소스가 고갈될 위험도 커집니다.
기본 대기열 크기를 줄이면 과도한 수신 TFO 요청으로 인한 리소스 서버 리소스 고갈 위험을 줄일 수 있습니다. 그러나 대기열 크기가 작으면 네트워크 성능에 대한 TFO의 영향도 줄어들 수 있습니다.
최소 대기열 크기는
0
입니다. 대기열0
은 TFO를 효과적으로 비활성화합니다.
이 매개변수는 TFO 연결을 지원하지 않거나 TFO 연결을 위해 구성되지 않은 호스트 운영 체제에는 영향을 주지 않습니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
disableJavaScriptJIT
mongod
에만 사용 가능합니다.MongoDB JavaScript 엔진은 스크립트 실행 시 성능 향상을 위해 JIT(Just-in-Time) 컴파일을 구현하는 SpiderMonkey를 사용합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
JIT를 사용하려면 다음 예시와 같이
disableJavaScriptJIT
를false
로 설정합니다.db.adminCommand( { setParameter: 1, disableJavaScriptJIT: false } ) 참고
$where
는 기존 JavaScript 인터프리터 컨텍스트를 재사용합니다. 따라서disableJavaScriptJIT
변경 사항이 이러한 작업에 즉시 적용되지 않을 수 있습니다.또는 다음 옵션을 사용하여
mongod
인스턴스를 시작하여 시작 시 JIT를 활성화할 수도 있습니다.mongod --setParameter disableJavaScriptJIT=false
indexMaxNumGeneratedKeysPerDocument
버전 5.3에 추가.
기본값: 100000
메모리 부족 오류를 방지하기 위해 문서에 생성되는 최대 키 수를 제한합니다. 제한을 상향 조정할 수는 있지만
indexMaxNumGeneratedKeysPerDocument
매개 변수가 지정한 것보다 더 많은 키가 필요한 경우 작업이 실패합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
maxIndexBuildMemoryUsageMegabytes
기본값: 200
하나의 컬렉션에 대한 동시 인덱스 빌드가 빌드 기간 동안 소비할 수 있는 메모리 양을 제한합니다. 지정된 메모리 양은 단일
createIndexes
명령 또는 해당 셸 도우미db.collection.createIndexes()
를사용하여 구축된 모든 인덱스 간에 공유됩니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
인덱스 빌드에 사용되는 메모리는 WiredTiger 캐시 메모리와는 별개입니다(
cacheSizeGB
참조).maxIndexBuildMemoryUsageMegabytes
인덱스를 작성하는 데 한 번에 사용하는 메모리 양을 제한합니다. 이는 인덱스 빌드 프로세스에서 인덱스 키를 생성하고 정렬할 때 성능에 영향을 미칠 수 있습니다. 메모리 제한을 늘리면 인덱스 빌드 중 정렬 성능이 향상됩니다.인덱스 빌드는 인덱스 생성 과 같은 사용자 명령이나 초기 동기화 와 같은 관리 프로세스를 통해 시작할 수 있습니다. 둘 다
maxIndexBuildMemoryUsageMegabytes
에서 설정한 한도의 적용을 받습니다.초기 동기화 작업 은 한 번에 하나의 컬렉션만 채우며 메모리 제한을 초과할 위험이 없습니다. 그러나 사용자가 여러 데이터베이스의 여러 컬렉션에 대한 인덱스 빌드를 동시에 시작하면
maxIndexBuildMemoryUsageMegabytes
에 설정된 제한보다 많은 양의 메모리를 사용할 수 있습니다.팁
인덱스 빌드가 복제본 세트와 복제본 세트 샤드가 포함된 샤딩된 클러스터에 미치는 영향을 최소화하려면 복제본 세트의 롤링 인덱스 빌드에 설명된 롤링 인덱스 빌드 절차를 사용합니다.
컬렉션 스캔이 이미 시작된 경우
maxIndexBuildMemoryUsageMegabytes
변경은 진행 중인 인덱스 빌드에 영향을 주지 않습니다. 하지만 복제본 세트를 강제로 재구성하면 컬렉션 스캔이 다시 시작되고 제공된 최신maxIndexBuildMemoryUsageMegabytes
파일이 사용됩니다.기능 호환성 버전(fcv)
"4.2"
이상에서는 인덱스 빌드 메모리 제한이 모든 인덱스 빌드에 적용됩니다.
reportOpWriteConcernCountersInServerStatus
기본값: false
2} 메서드와
serverStatus
명령이db.serverStatus()
opWriteConcernCounters
정보를 반환할지 여부를 결정하는 부울 플래그입니다. [1]mongod --setParameter reportOpWriteConcernCountersInServerStatus=true [1] reportOpWriteConcernCountersInServerStatus
를 활성화하면 성능에 부정적인 영향을 미칠 수 있으며, 특히 TLS 없이 실행할 경우 더욱 그렇습니다.
watchdogPeriodSeconds
mongod
에만 사용 가능합니다.유형: integer
기본값: -1(비활성화됨)
스토리지 노드 워치독(Storage Node Watchdog)이 모니터링하는 파일시스템의 상태를 확인하는 빈도를 결정합니다:
--dbpath
디렉토리journal
가--dbpath
journaling
활성화된 경우 디렉토리 내의 디렉토리--logpath
파일의 디렉터리--auditPath
파일의 디렉터리
watchdogPeriodSeconds
의 유효한 값은 다음과 같습니다.-1
(기본값), 스토리지 노드 워치독을 비활성화/일시 중지하거나60보다 크거나 같은 정수입니다.
참고
모니터링되는 디렉터리의 파일 시스템이 응답하지 않는 경우
mongod
(을)를 종료하는 데watchdogPeriodSeconds
값의 최대 거의 두 배가 걸릴 수 있습니다.모니터링되는 디렉토리 중 하나가 다른 볼륨에 대한 심볼릭 링크인 경우 Storage Node Watchdog은 심볼릭 링크 대상을 모니터링하지 않습니다. 예를 들어
mongod
가storage.directoryPerDB: true
(또는--directoryperdb
)를 사용하고 데이터베이스 디렉터리를 다른 볼륨에 심볼릭 링크하는 경우, 스토리지 노드 워치독은 이 심볼릭 링크를 따라 대상을 모니터링하지 않습니다.
Storage Node Watchdog를 활성화하려면 시작 시
watchdogPeriodSeconds
를 설정해야 합니다.mongod --setParameter watchdogPeriodSeconds=60 시작 시에만 Storage Node Watchdog 을 활성화할 수 있습니다. 그러나 일단 활성화하면 런타임 중에 Storage Node Watchdog 을 일시 중지하거나
watchdogPeriodSeconds
을 변경할 수 있습니다.활성화되면 다음과 같습니다.
런타임 중에 Storage Node Watchdog 을 일시 중지하려면
watchdogPeriodSeconds
를 -1 로 설정합니다.db.adminCommand( { setParameter: 1, watchdogPeriodSeconds: -1 } ) 런타임 중에 기간을 재개하거나 변경하려면
watchdogPeriodSeconds
를 60 보다 크거나 같은 숫자로 설정합니다.db.adminCommand( { setParameter: 1, watchdogPeriodSeconds: 120 } )
참고
시작 시 Storage Node Watchdog
watchdogPeriodSeconds
이 활성화되지 않은 경우 런타임에 를 설정하면 오류가 발생합니다.
tcmallocAggressiveMemoryDecommit
유형: 정수(
0
또는1
만 해당)기본값: 0
0}을(를)
tcmallocAggressiveMemoryDecommit
활성화하는 경우 MongoDB:시스템에 메모리 덩어리를 해제하고
는 인접한 모든 무료 청크를 반환하려고 시도합니다.
0} 값은 을
1
tcmallocAggressiveMemoryDecommit
활성화하고, 은0
이 매개 변수를 비활성화합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
이 매개변수를 활성화하면 시스템을 사용하려면 새 메모리 할당이 필요합니다. 메모리가 제한된 시스템에서만 다른 메모리 및 성능 옵션을 추구한 후에는
tcmallocAggressiveMemoryDecommit
활성화하는 것이 좋습니다.tcmallocAggressiveMemoryDecommit
을 사용하면 성능이 저하될 수 있음에도 불구하고tcmallocReleaseRate
를 사용하는 것보다 선호되는 경우가 많습니다.
tcmallocReleaseRate
기본값: 1.0
tcmalloc 해제 비율(TCMALLOC_RELEASE_RATE)을 지정합니다. https://gperftools.github.io/gperftools/tcmalloc.html#runtime TCMALLOC_RELEASE_RATE는 이를 지원하는 시스템에서 madvise(MADV_DONTNEED)를 통해 사용하지 않는 메모리를 시스템에 해제하는 비율로 설명됩니다. 0은 시스템에 메모리를 다시 릴리스하지 않는다는 의미입니다. 이 플래그를 높이면 메모리를 더 빨리 반환하고, 낮추면 메모리를 더 느리게 반환합니다. 합리적인 비율 범위는 [0,10]입니다."
참고
tcmallocAggressiveMemoryDecommit
(을)를 사용할 때 성능이 크게 저하되지 않는 한tcmallocReleaseRate
대신tcmallocAggressiveMemoryDecommit
(을)를 사용하는 것을 고려합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
런타임 중에 릴리스 속도를 수정하려면
setParameter
명령을 사용하면 됩니다(예시: 명령).db.adminCommand( { setParameter: 1, tcmallocReleaseRate: 5.0 } ) 시작 시
tcmallocReleaseRate
를 설정할 수도 있습니다. 예를 들면 다음과 같습니다.mongod --setParameter "tcmallocReleaseRate=5.0"
fassertOnLockTimeoutForStepUpDown
버전 5.3에 추가.
기본값: 15초
mongod
및mongos
모두에 사용할 수 있습니다.스텝 업 또는 스텝 다운 요청을 받은 서버가 제한 시간 내에 규정을 준수하지 못할 경우 (예시: 서버 디스크 결함) 종료할 수 있습니다. 이를 통해 클러스터는 새 기본 노드를 성공적으로 선택하여 계속 사용할 수 있습니다.
fassertOnLockTimeoutForStepUpDown
기본값은 15초입니다. 노드의 패싱을 사용하지 않으려면 을fassertOnLockTimeoutForStepUpDown=0
설정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 노드가 fasserting을 사용하지 않도록 설정합니다.
mongod --setParameter fassertOnLockTimeoutForStepUpDown=0
로깅 매개변수
logLevel
mongod
및mongos
모두에 사용할 수 있습니다.0}에서 사이의 정수를 지정하여
0
5
로깅의 상세도를 나타내며, 여기서5
가 가장 상세합니다. [2]기본
logLevel
은0
(정보)입니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는
logLevel
(을)를2
(으)로 설정합니다.db.adminCommand( { setParameter: 1, logLevel: 2 } ) [2] 버전 4.2부터 MongoDB는 로그 메시지에 디버그 상세도 수준(1~5)을 포함합니다. 예를 들어, 상세도 수준이 2인 경우 MongoDB는 D2
을(를) 기록합니다. 이전 버전에서는 MongoDB 로그 메시지에 디버그 수준에D
만 지정되었습니다.
logComponentVerbosity
mongod
및mongos
모두에 사용할 수 있습니다.로그 메시지 에 대한 다양한컴포넌트의 상세도 수준을 설정합니다. 상세도 수준에 따라 MongoDB가 출력하는 정보 및 디버그 메시지의 양이 결정됩니다. [3]
상세도 수준은
0
에서5
사이의 범위입니다.컴포넌트의 경우
-1
을 지정하여 부모의 상세도 수준을 상속할 수도 있습니다.자세한 수준을 지정하려면 다음과 유사한 문서를 사용하십시오.
{ verbosity: <int>, <component1>: { verbosity: <int> }, <component2>: { verbosity: <int>, <component3>: { verbosity: <int> } }, ... } 구성 요소의 경우 상위 세부 정보 수준과 하위 구성 요소의 세부 정보 수준을 모두 설정하지 않는 한 문서의
<component>: <int>
만 지정할 수 있습니다.{ verbosity: <int>, <component1>: <int> , <component2>: { verbosity: <int>, <component3>: <int> } ... } 최상위 수준
verbosity
필드는 모든 구성 요소의 기본 수준을 설정하는systemLog.verbosity
에 해당합니다.systemLog.verbosity
의 기본값은0
입니다.구성 요소는 다음 설정에 해당합니다.
명시적으로 설정하지 않는 한 컴포넌트는 부모 컴포넌트의 상세도 수준을 갖습니다. 예를 들어
storage
은storage.journal
의 부모입니다. 즉,storage
상세 수준을 지정하는 경우 이 수준은 다음에도 적용됩니다.storage.journal
{ 5}에 대한storage.journal
상세도 수준을 지정하지 않으면 구성 요소를 반환합니다.storage.recovery
{ 5}에 대한storage.recovery
상세도 수준을 지정하지 않으면 구성 요소를 반환합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 다음은
default verbosity level
를1
으로,query
을2
로, 을storage
2
11}로, 을storage.journal
1
15}로 설정합니다.db.adminCommand( { setParameter: 1, logComponentVerbosity: { verbosity: 1, query: { verbosity: 2 }, storage: { verbosity: 2, journal: { verbosity: 1 } } } } ) 시작 시 매개 변수
logComponentVerbosity
를 설정하여 상세도 수준 문서를 문자열로 전달할 수도 있습니다.mongod --setParameter "logComponentVerbosity={command: 3}" mongosh
는 단일 구성 요소에 대한 로그 수준을 설정하는db.setLogLevel()
도 제공합니다. 로그 상세도 수준을 설정하는 다양한 방법은 로그 상세도 수준 구성을 참조하세요.[3] 버전 4.2부터 MongoDB는 로그 메시지에 디버그 상세도 수준(1~5)을 포함합니다. 예를 들어, 상세도 수준이 2인 경우 MongoDB는 D2
을(를) 기록합니다. 이전 버전에서는 MongoDB 로그 메시지에 디버그 수준에D
만 지정되었습니다.
maxLogSizeKB
mongod
및mongos
모두에 사용할 수 있습니다.유형: 음수가 아닌 정수
기본값: 10
로그 항목의 개별 속성 필드에 대한 최대 크기 (킬로바이트) 를 지정합니다. 이 제한을 초과하는 속성은 잘립니다.
잘린 속성 필드는
maxLogSizeKB
한도까지 필드 콘텐츠를 인쇄하고 이 한도를 초과하는 필드 콘텐츠는 유효한 JSON 형식을 유지하면서 제외합니다. 잘린 속성이 포함된 로그 항목은 로그 항목 끝에truncated
객체를 추가합니다.자세한 내용은 로그 메시지 잘라내기를 참조하십시오.
0} 값은
0
잘림을 완전히 비활성화합니다. 이 매개변수의 음수 값은 유효하지 않습니다.경고
큰 값을 사용하거나
0
값으로 잘림을 비활성화하면 시스템 성능에 악영향을 미치고 데이터베이스 작업에 부정적인 영향을 미칠 수 있습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예에서는 최대 로그 줄 크기를
20
KB로 설정합니다.mongod --setParameter maxLogSizeKB=20
quiet
mongod
및mongos
모두에 사용할 수 있습니다.조용한 로깅 모드를 설정합니다.
1
0}이면 은 다음 이벤트/활동을 기록하지 않는 조용한 로깅 모드로mongod
전환됩니다.연결 이벤트.
drop
명령,dropIndexes
명령,validate
명령,동기화 활동 복제
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
quiet
매개변수를1
로 설정하는 다음 예를 살펴보세요.db.adminCommand( { setParameter: 1, quiet: 1 } )
redactClientLogData
mongod
및mongos
모두에 사용할 수 있습니다.유형: 부울
참고
엔터프라이즈 기능
MongoDB Enterprise에서만 사용할 수 있습니다.
2} 또는
mongod
를 구성하여 로깅하기 전에 지정된 로그 이벤트에 수반되는 모든 메시지를 삭제합니다.mongos
이렇게 하면 프로그램이 데이터베이스에 저장된 잠재적으로 중요한 데이터를 진단 로그에 쓸 수 없습니다. 오류 또는 작업 코드, 줄 번호, 소스 파일 이름과 같은 메타데이터는 여전히 로그에 표시됩니다.redactClientLogData
를 미사용 데이터 암호화 및 TLS/SSL(전송 암호화)과 함께 사용하여 규제 요건을 준수할 수 있습니다.시작 시 로그 수정을 활성화하려면 다음 중 하나를 수행하세요.
5}
mongod
옵션으로--redactClientLogData
를 시작합니다.mongod --redactClientLogData 구성
security.redactClientLogData
파일에서 옵션을 설정합니다.security: redactClientLogData: true ...
시작 시
--setParameter
옵션을 사용하여redactClientLogData
를 설정할 수 없습니다.실행 중인
mongod
또는mongos
에서 로그 삭제를 활성화하려면 다음 명령을 사용합니다.db.adminCommand( { setParameter: 1, redactClientLogData : true } )
traceExceptions
mongod
및mongos
모두에 사용할 수 있습니다.디버깅에 사용할 수 있도록 모든 데이터베이스 및 소켓 C++ 예외에 대한 전체 소스 코드 스택 추적을 기록하도록
mongod
를 구성합니다.true
,mongod
인 경우 전체 스택 추적을 기록합니다.이 매개변수는 런타임에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
명령을 사용합니다.0}을 로 설정하는 다음 예시를
traceExceptions
true
살펴봅니다.db.adminCommand( { setParameter: 1, traceExceptions: true } )
suppressNoTLSPeerCertificateWarning
mongod
및mongos
모두에 사용할 수 있습니다.유형: 부울
기본값: false
기본적으로
mongod
또는mongos
를 TLS/SSL 사용하도록 설정하고net.ssl.allowConnectionsWithoutCertificates
:true
를 사용하면 클라이언트는 경고를 기록하는 동안 유효성 검사를 위한 인증서를 제공하지 않고도 연결할 수 있습니다. 해당 경고를 표시하지 않으려면suppressNoTLSPeerCertificateWarning
을1
또는true
로 설정하세요.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.다음 작업은
suppressNoTLSPeerCertificateWarning
을true
로 설정합니다.db.adminCommand( { setParameter: 1, suppressNoTLSPeerCertificateWarning: true} )
진단 매개변수
MongoDB 엔지니어가 MongoDB 서버 동작을 쉽게 분석할 수 있도록 MongoDB는 주기적으로 진단 파일에 서버 통계를 기록합니다.
mongod
2}의 경우 진단 데이터 파일은 diagnostic.data
mongod
인스턴스의 --dbpath
또는 아래에 storage.dbPath
있는 디렉터리에 저장됩니다.
2}의 mongos
경우 mongos
진단 데이터 --logpath
systemLog.path
파일은 기본적으로 인스턴스의 또는 디렉터리 아래에 있는 디렉터리에 저장됩니다. 진단 데이터 디렉터리는 logpath의 파일 확장자를 잘라내고 나머지 이름에 diagnostic.data
를 연결하여 계산됩니다.
예를 들어 mongos
에 --logpath
/var/log/mongodb/mongos.log.201708015
가 있으면 진단 데이터 디렉토리는 /var/log/mongodb/mongos.diagnostic.data/
디렉토리입니다. mongos
에 다른 진단 데이터 디렉토리를 지정하려면 diagnosticDataCollectionDirectoryPath
매개 변수를 설정하세요.
다음 매개변수는 진단 데이터 캡처(FTDC)를 지원합니다.
참고
진단 데이터 캡처 간격과 최대 크기의 기본값은 성능과 스토리지 크기에 미치는 영향을 최소화하면서 MongoDB 엔지니어에게 유용한 데이터를 제공하기 위해 선택됩니다. 일반적으로 이러한 값은 특정 진단 목적을 위해 MongoDB 엔지니어가 요청한 경우에만 수정하면 됩니다.
diagnosticDataCollectionEnabled
mongod
및mongos
모두에 사용할 수 있습니다.유형: 부울
기본값: true
진단 목적으로 데이터 수집 및 로깅을 활성화할지 여부를 결정합니다. 진단 로깅은 기본적으로 활성화되어 있습니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 다음은 컬렉션을 비활성화합니다.
mongod --setParameter diagnosticDataCollectionEnabled=false
diagnosticDataCollectionDirectoryPath
유형: 문자열
mongos
에만 사용 가능합니다.경고
FTDC(풀타임 진단 데이터 캡처)가
diagnosticDataCollectionEnabled
로 비활성화되었거나systemLog.destination
이syslog
로 설정된 경우diagnosticDataCollectionDirectoryPath
를 설정한 후mongos
를 다시 시작해야 합니다.2}에
mongos
대한 진단 디렉터리의 디렉터리를 지정합니다. 디렉터리가 존재하지 않으면mongos
가 디렉터리를 만듭니다.지정하지 않으면
mongos
인스턴스의--logpath
또는systemLog.path
파일 확장자를 잘라내고diagnostic.data
을 연결하여 진단 데이터 디렉터리를 계산합니다.예를 들어
mongos
에--logpath /var/log/mongodb/mongos.log.201708015
가 있는 경우 진단 데이터 디렉터리는/var/log/mongodb/mongos.diagnostic.data/
입니다.2}에서 지정된 디렉터리를 만들 수 없는 경우 해당 인스턴스에 대해 진단 데이터 캡처가
mongos
비활성화됩니다. 경로에 같은 이름의 파일이 이미 있거나 프로세스에 디렉터리를 만들 수 있는 권한이 없는 경우mongos
에서 지정한 디렉터리를 만들지 못할 수 있습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
diagnosticDataCollectionDirectorySizeMB
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 200
diagnostic.data
디렉토리의 최대 크기(메가바이트)를 지정합니다. 디렉토리 크기가 이 숫자를 초과하면 파일 이름의 타임스탬프를 기준으로 디렉토리에서 가장 오래된 진단 파일이 자동으로 삭제됩니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 다음은 디렉터리의 최대 크기를
250
메가바이트로 설정합니다.mongod --setParameter diagnosticDataCollectionDirectorySizeMB=250 diagnosticDataCollectionDirectorySizeMB
의 최소값은10
메가바이트입니다.diagnosticDataCollectionDirectorySizeMB
는 최대 진단 파일 크기인diagnosticDataCollectionFileSizeMB
보다 커야 합니다.
diagnosticDataCollectionFileSizeMB
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 10
각 진단 파일의 최대 크기(MB)를 지정합니다. 파일이 최대 파일 크기를 초과하면 MongoDB는 새 파일을 생성합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 다음은 각 진단 파일의 최대 크기를
20
MB로 설정합니다.mongod --setParameter diagnosticDataCollectionFileSizeMB=20 diagnosticDataCollectionFileSizeMB
의 최소값은1
메가바이트입니다.
diagnosticDataCollectionPeriodMillis
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 1000
진단 데이터를 수집할 간격(밀리초)을 지정합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 다음은 간격을
5000
밀리초 또는 5초로 설정합니다.mongod --setParameter diagnosticDataCollectionPeriodMillis=5000 diagnosticDataCollectionPeriodMillis
의 최소값은100
밀리초입니다.
복제 및 일관성
disableSplitHorizonIPCheck
버전 5.0.0에 추가되었습니다.
mongod
및mongos
모두에 사용할 수 있습니다.유형: 부울
기본값: false
분할 수평 DNS에 대한 클러스터 노드를 구성하려면 IP 주소 대신 호스트 이름을 사용합니다.
MongoDB v5.0부터 replSetInitiate
및 replSetReconfig
는 호스트 이름 대신 IP 주소를 사용하는 구성을 거부합니다.
호스트 이름을 사용하도록 업데이트할 수 없는 노드를 수정하려면 disableSplitHorizonIPCheck
(을)를 사용합니다. 이 매개 변수는 구성 명령에만 적용됩니다.
mongod
및 mongos
는 시작 시 유효성 검사를 위해 disableSplitHorizonIPCheck
에 의존하지 않습니다. 호스트 이름 대신 IP 주소를 사용하는 레거시 mongod
및 mongos
인스턴스는 업그레이드 후 시작할 수 있습니다.
IP 주소로 구성된 인스턴스는 IP 주소 대신 호스트 이름을 사용하라는 경고를 기록합니다.
분할 수평 DNS에 대한 클러스터 노드를 구성하려면 IP 주소 대신 호스트 이름을 사용합니다.
MongoDB v5.0부터 replSetInitiate
및 replSetReconfig
는 호스트 이름 대신 IP 주소를 사용하는 구성을 거부합니다.
호스트 이름을 사용하도록 업데이트할 수 없는 노드를 수정하려면 disableSplitHorizonIPCheck
(을)를 사용합니다. 이 매개 변수는 구성 명령에만 적용됩니다.
mongod
및 mongos
는 시작 시 유효성 검사를 위해 disableSplitHorizonIPCheck
에 의존하지 않습니다. 호스트 이름 대신 IP 주소를 사용하는 레거시 mongod
및 mongos
인스턴스는 업그레이드 후 시작할 수 있습니다.
IP 주소로 구성된 인스턴스는 IP 주소 대신 호스트 이름을 사용하라는 경고를 기록합니다.
IP 주소를 사용하여 구성 변경을 허용하려면 명령줄을 사용하여 disableSplitHorizonIPCheck=true
을 설정합니다.
/usr/local/bin/mongod --setParameter disableSplitHorizonIPCheck=true -f /etc/mongod.conf
IP 주소를 사용하여 구성을 변경할 수 있도록 하려면 노드의 구성 파일을 사용하여 disableSplitHorizonIPCheck=true
를 설정하십시오.
setParameter: disableSplitHorizonIPCheck: true
런타임에 disableSplitHorizonIPCheck
을(를) 업데이트하려고 하면 db.adminCommand()
이 (가) 오류를 반환합니다.
db.adminCommand( { setParameter: 1, "disableSplitHorizonIPCheck": true } ) MongoServerError: not allowed to change [disableSplitHorizonIPCheck] at runtime
enableOverrideClusterChainingSetting
버전 5.0.2에 추가되었습니다.
mongod
및mongos
모두에 사용할 수 있습니다.유형: 부울
기본값: false
enableOverrideClusterChainingSetting
이true
인 경우 복제본 세트 세컨더리 노드는settings.chainingAllowed
가false
인 경우에도 다른 세컨더리 노드의 데이터를 복제할 수 있습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어
mongod
인스턴스의enableOverrideClusterChainingSetting
을true
로 설정하려면 다음을 수행하세요.mongod --setParameter enableOverrideClusterChainingSetting=true
logicalSessionRefreshMillis
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 300000(5분)
캐시가 기본 세션 저장소에 대해 논리 세션 레코드를 새로 고치는 간격(밀리초)입니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어
mongod
인스턴스의logicalSessionRefreshMillis
를 10분으로 설정하려면 다음을 수행하세요.mongod --setParameter logicalSessionRefreshMillis=600000
localLogicalSessionTimeoutMinutes
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 30
경고
테스트 목적으로만 사용
이 매개변수는 테스트 용도로만 사용되며 프로덕션 용도로는 사용할 수 없습니다.
세션이 가장 최근에 사용한 후 활성 상태로 유지되는 시간 (분). 클라이언트로부터 새 읽기/쓰기 작업을 받지 못했거나 이 임계값 내에서
refreshSessions
로 새로 고쳐지지 않은 세션은 캐시에서 지워집니다. 만료된 세션과 관련된 상태는 언제든지 서버에 의해 정리될 수 있습니다.이 매개변수는 해당 매개변수가 설정된 인스턴스에만 적용됩니다. 복제본 세트 및 샤딩된 클러스터에서 이 매개변수를 설정하려면 모든 구성원에 동일한 값을 지정해야 하며, 그렇지 않으면 세션이 제대로 작동하지 않습니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어 테스트
mongod
인스턴스의localLogicalSessionTimeoutMinutes
를 20분으로 설정하려면 다음을 수행하세요.mongod --setParameter localLogicalSessionTimeoutMinutes=20
maxAcceptableLogicalClockDriftSecs
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 31536000 (1년)
현재 클러스터 시간을 앞당길 수 있는 최댓값입니다. 구체적으로
maxAcceptableLogicalClockDriftSecs
는 클러스터 시간의 새 값과 현재 클러스터 시간 간의 최대 차이입니다. 클러스터 시간은 작업 순서를 지정하는 데 사용되는 논리적 시간입니다.새 클러스터 시간이 현재 클러스터 시간과
maxAcceptableLogicalClockDriftSecs
이상 차이가 나면 클러스터 시간을 새 값으로 앞당길 수 없습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어
mongod
인스턴스의maxAcceptableLogicalClockDriftSecs
를 15분으로 설정하려면 다음을 수행하세요.mongod --setParameter maxAcceptableLogicalClockDriftSecs=900
maxSessions
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 1000000
캐시할 수 있는 최대 세션 수입니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어
mongod
인스턴스의maxSessions
을 1000로 설정하려면 다음을 수행하세요.mongod --setParameter maxSessions=1000
oplogBatchDelayMillis
버전 6.0에 추가.
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 0
보조 노드에 Oplog 작업 일괄 적용을 지연하는 시간(밀리초)입니다. 기본적으로
oplogBatchDelayMillis
은0
이며, 이는 Oplog 배치가 지연 없이 적용됨을 의미합니다. 지연이 없는 경우 MongoDB는 보조 서버에 소량의 Oplog 배치를 자주 적용할 수 있습니다.oplogBatchDelayMillis
을 늘리면 MongoDB가 세컨더리에 oplog 배치를 적용하는 빈도가 줄어들고 각 배치에 더 많은 양의 데이터가 포함됩니다. 이렇게 하면 세컨더리의 IOPS 가 감소하지만 쓰기 고려 (write concern)"majority"
가 있는 쓰기의 지연 시간이 늘어납니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어 다음 명령을 실행하여
mongod
인스턴스의oplogBatchDelayMillis
을 20밀리초로 설정합니다.mongod --setParameter oplogBatchDelayMillis=20
periodicNoopIntervalSecs
mongod
에만 사용 가능합니다.유형: integer
기본값: 10
각 개별 노드에서 noop 쓰기 사이의 기간 (초) 입니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.참고
MongoDB Atlas 클러스터에 대해 이 값을 수정하려면 Atlas 지원에 문의해야 합니다.
다음 예시에서는 시작 시
periodicNoopIntervalSecs
을 1초로 설정합니다.mongod --setParameter periodicNoopIntervalSecs=1
storeFindAndModifyImagesInSideCollection
버전 5.0에 추가.
mongod
및mongos
모두에 사용할 수 있습니다.유형: 부울
기본값: true
재시도 가능한
findAndModify
명령에 필요한 임시 문서를 사이드 컬렉션(config.image_collection
)에 저장할지 여부를 결정합니다.storeFindAndModifyImagesInSideCollection
인 경우:true
를 클릭하면 임시 문서가 측면 컬렉션에 저장됩니다.false
, 임시 문서는 복제 세트 Oplog에 저장됩니다.
다음과 같은 경우
storeFindAndModifyImagesInSideCollection
을true
로 설정합니다.재시도 가능한
findAndModify
개의 대규모 워크로드가 있습니다.다시 시도할 수 있는
findAndModify
명령에 대해 복제본 세트 Oplog에서 사용할 수 있는 것보다 더 많은 임시 문서 공간이 필요합니다.
참고
세컨더리는
storeFindAndModifyImagesInSideCollection
이true
일 때 CPU 사용량이 증가할 수 있습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 시작 중에
storeFindAndModifyImagesInSideCollection
을false
로 설정합니다.mongod --setParameter storeFindAndModifyImagesInSideCollection=false 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, storeFindAndModifyImagesInSideCollection: false } )
TransactionRecordMinimumLifetimeMinutes
mongod
에만 사용 가능합니다.유형: integer
기본값: 30
레코드가 정리 대상이 되기 전에 트랜잭션 레코드가
transactions
컬렉션에 존재하는 최소 수명입니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어
mongod
인스턴스의TransactionRecordMinimumLifetimeMinutes
를 20분으로 설정하려면 다음을 수행하세요.mongod --setParameter TransactionRecordMinimumLifetimeMinutes=20
enableFlowControl
유형: 부울
기본값: true
보조 멤버의
majority committed
지연을 구성 가능한 최대값 이하로 유지하기 위해 주 멤버가 쓰기를 적용하는 속도를 제어하는 메커니즘을 사용하거나 사용하지 않도록 설정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
참고
흐름 제어가 작동하려면 복제본 세트/샤딩된 클러스터에
4.2
의 featureCompatibilityVersion(fCV) 과majority enabled
의 읽기 우려 사항이 있어야 합니다. 즉, fCV가4.2
가 아니거나 읽기 문제 과반수가 비활성화된 경우 활성화된 흐름 제어는 효과가 없습니다.
flowControlTargetLagSeconds
유형: integer
기본값: 10
흐름 제어로 실행할 때 목표 최대
majority committed
지연입니다. 흐름 제어가 활성화되면 메커니즘은majority committed
지연을 지정된 초 미만으로 유지하려고 시도합니다. 흐름 제어가 비활성화되어 있으면 이 매개변수는 영향을 미치지 않습니다.지정된 값은 0보다 커야 합니다.
일반적으로 기본 설정으로도 충분하지만 기본값에서 값을 높이는 대신 줄여서 수정하는 것이 더 유용할 수 있습니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
flowControlWarnThresholdSeconds
유형: integer
기본값: 10
흐름 제어 메커니즘이 과반수 커밋 포인트를 감지한 후 경고를 기록하기 위해 기다리는 시간이 이동되지 않았습니다.
지정된 값은 0보다 크거나 같아야 하며, 경고를 비활성화하려면 0을 사용해야 합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
initialSyncTransientErrorRetryPeriodSeconds
유형: integer
기본값: 86400
일시적인 네트워크 오류로 인해 초기 동기화를 수행하는 보조 프로세스가 중단된 경우 프로세스를 재개하기 위해 시도하는 시간(초)입니다. 기본값은 24시간에 해당합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
initialSyncSourceReadPreference
mongod
에만 사용 가능합니다.유형: 문자열
초기 동기화를 수행하기 위한 기본 소스입니다. 다음 읽기 설정 모드 중 하나를 지정합니다.
primaryPreferred
(투표를 하는 복제본 세트 멤버에 대한 기본값)nearest
(새로 추가되거나 투표권이 없는 복제본 집합 구성원의 기본값)
복제본 세트가
chaining
를 비활성화한 경우,initialSyncSourceReadPreference
읽기 설정 모드의 기본값은primary
입니다.태그 세트나
maxStalenessSeconds
를initialSyncSourceReadPreference
로 지정할 수 없습니다.mongod
에서 지정된 읽기 기본 설정에 따라 동기화 소스를 찾을 수 없는 경우 오류를 기록하고 초기 동기화 프로세스를 다시 시작합니다. 5}가 번 시도한 후에도 초기 동기화 프로세스를mongod
완료하지10
못하면 오류와 함께 종료됩니다. 동기화 소스 선택에 대한 자세한 내용은 초기 동기화 소스 선택을 참조하십시오.초기 동기화 소스를 선택할 때
initialSyncSourceReadPreference
가 복제본 세트의settings.chainingAllowed
설정보다 우선합니다. 복제 세트 구성원이 초기 동기화를 성공적으로 완료한 후에는 복제 동기화 소스를 선택할 때chainingAllowed
값을 사용합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
initialSyncMethod
버전 5.2에 추가되었습니다.
mongod
에만 사용 가능합니다.유형: 문자열
기본값:
logical
MongoDB Enterprise에서만 사용할 수 있습니다.
초기 동기화에 사용되는 방법입니다.
논리적 초기 동기화를 사용하려면
logical
로 설정합니다. 파일 복사 기반 초기 동기화를 사용하려면fileCopyBased
로 설정합니다.이 매개변수는 매개변수가 지정된 구성원의 동기화 방법에만 영향을 미칩니다. 단일 복제본 세트 멤버에서 이 매개 변수를 설정해도 다른 복제본 세트 멤버의 sync 메서드에는 영향을 주지 않습니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
maxNumSyncSourceChangesPerHour
버전 5.0에 추가.
유형: integer
기본값: 3
동기화 소스는 동기화 소스가 업데이트될 때마다, 그리고 노드가 Oplog 항목의 배치를 가져올 때마다 평가됩니다. 한 시간 동안
maxNumSyncSourceChangesPerHour
개 이상의 소스 변경이 있는 경우 노드는 해당 동기화 소스 재평가를 일시적으로 중지합니다. 이 매개변수를 높은 값으로 설정하면 노드가 불필요한 소스 변경을 수행할 수 있습니다.이 파라미터는 동기화 소스가 없는 노드가 다른 노드에서 동기화를 시작하는 것을 막지 않습니다. 동기화 소스가 유효하지 않은 경우 노드가 다시 평가합니다. 마찬가지로 기본 변경 사항 및 체인이 비활성화된 경우 새 기본 노드에서 동기화되도록 노드가 업데이트됩니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
oplogFetcherUsesExhaust
mongod
에만 사용 가능합니다.유형: 부울
기본값: true
스트리밍 복제를 활성화하거나 비활성화합니다. 스트리밍 복제를 활성화하려면 값을
true
로 설정합니다.스트리밍 복제를 사용하지 않으려면 값을
false
으로 설정합니다. 비활성화된 경우 보조 노드는 소스에서 동기화 요청을 보내고 응답을 기다려 Oplog 항목의 배치를 가져옵니다. 이를 위해서는 각 배치의 Oplog 항목에 대해 네트워크 왕복이 필요합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
oplogInitialFindMaxSeconds
유형: integer
기본값: 60
mongod
에만 사용 가능합니다.데이터 동기화 중에 복제본 세트의
find
구성원이 명령이 완료될 때까지 대기하는 최대 시간(초)입니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
replWriterThreadCount
유형: integer
기본값: 16
mongod
에만 사용 가능합니다.복제된 작업을 병렬로 적용하는 데 사용할 최대 스레드 수입니다. 값의 범위는 1에서 256까지입니다. 그러나 사용되는 최대 스레드 수는 사용 가능한 코어 수의 두 배로 제한됩니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
replWriterMinThreadCount
버전 5.0에 추가.
유형: integer
기본값: 0
mongod
에만 사용 가능합니다.복제된 작업을 병렬로 적용하는 데 사용할 최소 스레드 수입니다. 값의 범위는 0에서 256까지 입니다. 시작 시에만
replWriterMinThreadCount
를 설정할 수 있으며setParameter
명령으로 이 설정을 변경할 수 없습니다.복제 작업의 병렬 적용은 최대
replWriterThreadCount
개의 스레드를 사용합니다.replWriterMinThreadCount
가replWriterThreadCount
보다 작은 값으로 구성된 경우 스레드 풀은 스레드 풀의 총 스레드 수가replWriterMinThreadCount
가 될 때까지 유휴 스레드를 시간 초과합니다.replWriterMinThreadCount
는replWriterThreadCount
보다 작거나 같은 값으로 구성해야 합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
rollbackTimeLimitSecs
유형: 64비트 정수
기본값: 86400 (1일)
롤백할 수 있는 데이터의 최대 보관 기간입니다. 이 매개변수의 음수 값은 유효하지 않습니다.
롤백 대상 인스턴스의 Oplog 끝에서 공통 지점 (소스 노드와 롤백 대상 노드가 동일한 데이터를 갖는 마지막 지점) 이후의 첫 번째 작업 사이의 시간이 이 값을 초과하면 롤백이 실패합니다.
사실상 무제한 롤백 기간을 가지려면 값을
2147483647
로 설정하십시오. 이 값은 허용된 최대값이며 대략 68년에 해당합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
waitForSecondaryBeforeNoopWriteMS
mongod
에만 사용 가능합니다.유형: integer
기본값: 10
afterClusterTime
값이 Oplog에서 마지막으로 적용된 시간보다 클 경우 보조 서버가 대기해야 하는 시간 (밀리초) 입니다.waitForSecondaryBeforeNoopWriteMS
통과 후afterClusterTime
값이 여전히 마지막 적용 시간보다 크면 보조 서버에서 no-op 쓰기를 실행하여 마지막 적용 시간을 앞당깁니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는
waitForSecondaryBeforeNoopWriteMS
를 20밀리초로 설정합니다.mongod --setParameter waitForSecondaryBeforeNoopWriteMS=20 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, waitForSecondaryBeforeNoopWriteMS: 20 } )
createRollbackDataFiles
mongod
에만 사용 가능합니다.유형: 부울
기본값: true
MongoDB가 롤백 중에 영향을 받는 문서가 포함된 롤백 파일을 생성할지 여부를 결정하는 플래그입니다.
기본적으로
createRollbackDataFiles
는true
이며 MongoDB가 롤백 파일을 생성합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는
createRollbackDataFiles
를 false로 설정하여 롤백 파일이 만들어지지 않도록 합니다.mongod --setParameter createRollbackDataFiles=false 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, createRollbackDataFiles: false } ) 자세한 내용은 롤백 데이터 수집을 참조하십시오.
replBatchLimitBytes
Default: 104857600 (100MB)
최대 oplog 애플리케이션 배치 크기를 바이트 단위로 설정합니다.
값의 범위는 16777216(16MB)에서 104857600(100MB)까지입니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는
replBatchLimitBytes
를 64MB로 설정하여 oplog 애플리케이션 배치 크기를 제한합니다.mongod --setParameter replBatchLimitBytes=67108864 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, replBatchLimitBytes: 64 * 1024 * 1024 } )
mirrorReads
mongod
에만 사용 가능합니다.버전 4.4에 추가되었습니다.
유형: 문서
기본값:
{ samplingRate: 0.01, maxTimeMS: 1000 }
4} 인스턴스에 대한
mongod
미러링된 읽기에 대한 설정을 지정합니다. 설정은 구성원이 기본 구성원인 경우에만 적용됩니다.매개 변수
mirrorReads
는 다음 필드가 있는 JSON 문서를 사용합니다.필드설명samplingRate
선택 가능한(특히
priority greater than 0
) 보조의 하위 집합에 미러링을 지원하는 작업의 하위 집합을 미러링하는 데 사용되는 샘플링 속도입니다. 즉, 1차 미러는 지정된 샘플링 속도로 선택 가능한 각 2차 미러를 읽습니다.유효한 값은 다음과 같습니다.
0.0
미러링을 끕니다.1.0
프라이머리 설정은 미러링이 지원되는 모든 작업을 각 선택 가능한 세컨더리 복제본에 반영합니다.0.0
0}에서 사이의1.0
숫자(고유)프라이머리는 선택 가능한 각 보조 데이터를 지정된 속도로 랜덤하게 샘플링하여 미러링된 읽기를 전송합니다.예를 들어, 1차 및 2개의 선택 가능한 2차가 있고 샘플링 속도가
0.10
인 복제본 세트가 주어진다면, 1차는 10%의 샘플링 속도로 각 선택 가능한 2차에 읽기를 미러링하여 한 번의 읽기가 한 2차에 미러링되고 다른 2차에는 미러링되지 않거나 둘 다 또는 둘 다에 미러링되지 않을 수 있습니다. 즉, 1차에서100
미러링할0.10
8
수 있는 개의 연산을 수신하는 경우, 의 샘플링 속도로 인해 개의 읽기가 2차에 미러링되고13
개의 읽기가 다른 2차에 미러링되거나10
각각 {5개}가 미러링되는 등의 결과가 발생할 수 있습니다.기본값은
0.01
입니다.maxTimeMS
미러링된 읽기의 최대 시간(밀리초)입니다. 기본값은
1000
입니다.미러링된 읽기의
maxTimeMS
는 미러링되는 원본 읽기의maxTimeMS
와 별개입니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
구성 파일이나 명령줄에서 지정하는 경우
mirrorReads
문서를 따옴표로 묶어야 합니다.예를 들어 다음은 명령줄에서 미러 읽기 샘플링 속도를
0.10
로 설정합니다.mongod --setParameter mirrorReads='{ samplingRate: 0.10 }' 또는 구성 파일에서 지정할 수 있습니다.
setParameter: mirrorReads: '{samplingRate: 0.10}' 또는, 실행 중인
mongod
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우에는 문서를 따옴표로 묶으면 안 됩니다.db.adminCommand( { setParameter: 1, mirrorReads: { samplingRate: 0.10 } } )
allowMultipleArbiters
mongod
에만 사용 가능합니다.버전 5.3에 추가.
유형: 부울
기본값: false
복제 세트에서 여러 중재자 사용을 허용할지 여부를 설정합니다.
여러 중재자를 사용하는 것은 권장하지 않습니다.
다수의 중재자는 다수의 쓰기 문제를 안정적으로 사용하는 것을 방해합니다. MongoDB는 회원 과반수를 계산할 때 중재자를 포함하지만 중재자는 데이터를 저장하지 않습니다. 여러 중재자를 포함하면 쓰기가 대다수의 데이터 베어링 노드에 복제되기 전에 과반수 쓰기 작업이 성공을 반환할 수 있습니다.
다중 중재자를 사용하면 복제본 세트에 데이터 복제를 위한 충분한 보조 장치가 없는 경우에도 복제본 세트가 쓰기를 수락할 수 있습니다.
자세한 내용은 다중 중재자 관련 문제를 참조하세요.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.mongod --setParameter allowMultipleArbiters=true
샤딩 매개변수
balancerMigrationsThrottlingMs
버전 6.0.6의 새로운 기능: ( 5.0.18부터 사용 가능)
유형: integer
기본값: 1000
mongod
에만 사용 가능합니다.두 개의 연속 균형 조정 라운드 사이의 최소 시간을 지정합니다. 이를 통해 밸런싱 비율을 조절할 수 있습니다. 이 매개변수는 구성 서버 노드에만 적용됩니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
이 예에서는 시작 시
balancerMigrationsThrottlingMs
을 2000밀리초로 설정합니다.mongod --setParameter balancerMigrationsThrottlingMs=2000 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, balancerMigrationsThrottlingMs: 2000 } )
chunkDefragmentationThrottlingMS
버전 5.3에 추가.
유형: integer
기본값: 0
mongod
및mongos
모두에 사용할 수 있습니다.샤딩된 컬렉션의 청크가 조각 모음될 때 밸런서가 실행하는 연속적인 분할 및 병합 명령 사이의 최소 기간(밀리초)을 지정합니다.
chunkDefragmentationThrottlingMS
는 분할 및 병합 명령의 속도를 제한합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예에서는
chunkDefragmentationThrottlingMS
를10
밀리초로 설정합니다.mongod --setParameter chunkDefragmentationThrottlingMS=10 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, chunkDefragmentationThrottlingMS: 10 } )
chunkMigrationConcurrency
MongoDB 6.0.6(및 5.0.15)부터 사용할 수 있습니다.
유형: integer
기본값: 1
mongod
에만 사용 가능합니다.청크 마이그레이션을 위해 소스 샤드와 목적지 샤드의 스레드 수를 설정하는 정수값을 지정합니다. 청크 마이그레이션은 목적지 샤드에서 설정한 스레드 수를 소스 샤드와 목적지 샤드 모두에 적용합니다.
동시성을 높이면 청크 마이그레이션 성능이 향상되지만 소스 샤드와 수신 샤드의 작업 부하와 디스크 IOPS 사용량도 늘어납니다.
최대 값은 500입니다.
일반적으로 총 CPU 코어 수의 절반을 스레드로 사용해야 합니다. 예를 들어 총 코어가 16개인 경우
chunkMigrationConcurrency
을 8개(또는 그 이하)로 설정합니다.chunkMigrationConcurrency
가1
보다 크면_secondaryThrottle
구성 설정이 무시됩니다._secondaryThrottle
설정은 청크 마이그레이션이 청크의 다음 문서로 진행되는 시기를 결정합니다. 자세한 내용은 범위 마이그레이션 및 복제를 참조하세요.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는
chunkMigrationConcurrency
을5
로 설정합니다.mongod --setParameter chunkMigrationConcurrency=5 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, chunkMigrationConcurrency: 5 } )
disableResumableRangeDeleter
mongod
에만 사용 가능합니다.유형: 부울
기본값: false
샤드의 기본에 설정된 경우, 샤드에서 범위 삭제가 일시 중지되는지 여부를 지정합니다. 로
true
설정하면 분리된 문서 가 포함된 청크 범위 정리가 일시 중지됩니다. 샤드는 다른 샤드에 청크를 계속 기부할 수 있지만, 이 매개변수를false
로 설정할 때까지 기부된 문서는 이 샤드에서 제거되지 않습니다. 이 샤드는 들어오는 청크의 범위와 겹치는config.rangeDeletions
컬렉션에 보류 중인 범위 삭제 작업이 없는 한 다른 샤드로부터 청크를 계속 받을 수 있습니다.disableResumableRangeDeleter
가true
인 경우, 수신자 샤드의 프라이머리에 수신되는 청크와 동일한 범위의 고아 문서가 존재하는 경우 청크 마이그레이션이 실패합니다.2}가 샤드의 기본이 아닌 경우 이 매개변수는
mongod
에 영향을 미치지 않습니다.중요
disableResumableRangeDeleter
매개 변수를true
로 설정하는 경우 샤드 복제본 세트의 모든 멤버에 일관되게 적용해야 합니다. 페일오버가 발생하는 경우 새 프라이머리의 이 설정 값에 따라 범위 삭제기의 동작이 결정됩니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.mongod --setParameter disableResumableRangeDeleter=false
enableShardedIndexConsistencyCheck
mongod
에만 사용 가능합니다.유형: 부울
기본값: true
구성 서버의 주 서버에 설정된 경우 분할된 컬렉션에 대한 인덱스 일관성 검사를 사용하거나 사용하지 않도록 설정합니다. 2}가 구성 서버의 기본값이 아닌 경우 이 매개 변수는
mongod
에 영향을 미치지 않습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 구성 서버 기본값으로
enableShardedIndexConsistencyCheck
를false
로 설정합니다.mongod --setParameter enableShardedIndexConsistencyCheck=false 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, enableShardedIndexConsistencyCheck: false } ) 팁
다음도 참조하세요.
shardedIndexConsistencyCheckIntervalMS
parameter{
shardedIndexConsistency
serverStatus
5} 명령이 반환한 메트릭입니다.
opportunisticSecondaryTargeting
버전 6.0.0 에 추가 되었습니다.
유형: 부울
기본값:
false
mongos
에만 사용 가능합니다.0}이 복제본 집합에 대해 기회주의 읽기를 수행할지 여부를 결정합니다.
mongos
이 매개 변수를
true
으로 설정하면mongos
은 보조 읽기를 활성 연결이 있는 보조로 지정합니다. 연결을 수락하는 첫 번째 보조 복제본에 요청을 보냅니다. 이 매개 변수를false
로 설정하면mongos
은 특정 보조에 대한 연결을 설정할 수 있을 때까지 보조 읽기를 보류합니다(헤지된 읽기(hedged read)의 경우 제외).참고
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 시작 중에
opportunisticSecondaryTargeting
을 설정합니다.mongos --setParameter opportunisticSecondaryTargeting=true
shardedIndexConsistencyCheckIntervalMS
mongod
에만 사용 가능합니다.유형: integer
기본값: 600000
구성 서버의 기본 서버에 설정된 경우 구성 서버의 기본 서버가 샤딩된 컬렉션의 인덱스 일관성을 확인하는 간격(밀리초)입니다. 2}가 구성 서버의 기본값이 아닌 경우 이 매개 변수는
mongod
에 영향을 미치지 않습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어, 다음은 시작 시 간격을 300000밀리초(5분)로 설정합니다.
mongod --setParameter shardedIndexConsistencyCheckIntervalMS=300000 팁
다음도 참조하세요.
enableShardedIndexConsistencyCheck
parameterserverStatus
commandq로 반환된shardedIndexConsistency
메트릭
enableFinerGrainedCatalogCacheRefresh
mongod
및mongos
모두에 사용할 수 있습니다.유형: 부울
기본값: true
이 매개 변수를 사용하면 샤드를 새로 고쳐야 하는 경우에만 카탈로그 캐시를 새로 고칠 수 있습니다. 비활성화하면 오래된 청크가 있으면 컬렉션에 대한 전체 청크 배포가 오래된 것으로 간주되어 샤드에 접속하는 모든 라우터가 샤드 카탈로그 캐시를 새로 고쳐야 합니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.mongod --setParameter enableFinerGrainedCatalogCacheRefresh=true mongos --setParameter enableFinerGrainedCatalogCacheRefresh=true
maxTimeMSForHedgedReads
mongos
에만 사용 가능합니다.유형: integer
기본값: 150
헤지된 읽기에 대한 최대 시간 제한(밀리초)을 지정합니다. 즉, 읽기 작업을 헤지하기 위해 전송된 추가 읽기는
maxTimeMSForHedgedReads
의maxTimeMS
값을 사용하는 반면, 헤지 중인 읽기 작업은 작업에 지정된maxTimeMS
값을 사용합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 제한을 200밀리초로 설정하려면 시작 중에 다음을 실행하면 됩니다.
mongos --setParameter maxTimeMSForHedgedReads=200 또는 실행 중인
mongos
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우입니다.db.adminCommand( { setParameter: 1, maxTimeMSForHedgedReads: 200 } )
maxCatchUpPercentageBeforeBlockingWrites
버전 5.0에 추가.
mongod
에만 사용 가능합니다.유형: integer
기본값: 10
moveChunk
moveRange
2} 및 작업의 경우 마이그레이션 프로토콜에서catchup
단계에서commit
단계로 전환하기 위해 허용하는 전송되지 않은 데이터의 최대 백분율(전체 청크 크기의 백분율로 표시)을 지정합니다.따라잡기 비율을 높게 설정하면
upsert
개 및delete
개 작업이 동시에 진행되는 동안 지연 시간이 증가하는 대신 마이그레이션이 완료되는 데 걸리는 시간이 단축될 수 있습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.버전 7.1(및 7.0.1) 변경 사항: 런타임 중에 매개변수를 설정할 수 있습니다.
예를 들어 최대 백분율을 20으로 설정하려면 시작 중에 다음을 실행하면 됩니다.
mongod --setParameter maxCatchUpPercentageBeforeBlockingWrites=20 런타임 중에는
maxCatchUpPercentageBeforeBlockingWrites
을 변경할 수 없습니다.
metadataRefreshInTransactionMaxWaitBehindCritSecMS
버전 5.2의 새로운 기능: (5.1.0, 5.0.4부터 사용 가능)
유형: integer
기본값: 500
mongod
에만 사용 가능합니다.샤드가 트랜잭션 내 중요 섹션을 기다리는 시간을 제한합니다.
쿼리가 샤드에 액세스할 때, 청크 마이그레이션 또는 DDL 작업이 이미 컬렉션의 중요한 섹션을 보유하고 있을 수 있습니다. 쿼리 결과 중요 섹션이 점유된 것으로 확인되면 샤드는 중요 섹션이 해제될 때까지 대기합니다. 샤드가 제어를
mongos
으로 반환하면mongos
는 쿼리를 재시도합니다. 그러나 다중 샤드 트랜잭션이 여러 샤드에서 중요한 부분을 차지하는 작업과 상호 작용하는 경우 상호 작용으로 인해 분산 교착 상태가 발생할 수 있습니다.metadataRefreshInTransactionMaxWaitBehindCritSecMS
임계 섹션이 해제될 때까지 트랜잭션 내에서 샤드가 기다리는 최대 시간을 제한합니다.트랜잭션 내의 임계 영역에 대한 최대 대기 시간을 줄이려면
metadataRefreshInTransactionMaxWaitBehindCritSecMS
값을 낮추세요.경고
metadataRefreshInTransactionMaxWaitBehindCritSecMS
가 너무 낮으면mongos
는 재시도 시도를 모두 사용하고 오류를 반환할 수 있습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어,
metadataRefreshInTransactionMaxWaitBehindCritSecMS
을 400밀리초로 설정하려면 다음을 입력해야 합니다.db.adminCommand( { setParameter: 1, metadataRefreshInTransactionMaxWaitBehindCritSecMS: 400 } )
readHedgingMode
mongos
에만 사용 가능합니다.유형: 문자열
기본값: 켜짐
mongos
은 읽기 기본 설정에서 헤지된 읽기(hedged read) 옵션을 활성화한 읽기 작업에 대해 헤지된 읽기(hedged read)를 지원하는지 여부를 지정합니다.사용 가능한 값은 다음과 같습니다.
값설명on
2}mongos
인스턴스는 읽기 기본 설정에서 헤지된 읽기(hedged read) 옵션을 활성화한 읽기 작업에 대해 헤지된 읽기(hedged read)를 지원합니다.off
mongos
인스턴스는 헤지된 읽기(hedged read)를 지원하지 않습니다. 즉, 읽기 기본 설정에서 헤지된 읽기(hedged read) 옵션을 활성화한 읽기 작업의 경우에도 헤지된 읽기(hedged read)는 사용할 수 없습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어
mongos
인스턴스에 대한 헤지된 읽기(hedged read) 지원을 해제하려면 시작 중에 다음을 실행하면 됩니다.mongos --setParameter readHedgingMode=off 또는 실행 중인
mongos
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우입니다.db.adminCommand( { setParameter: 1, readHedgingMode: "off" } )
routingTableCacheChunkBucketSize
버전 6.0.10의 새로운 기능.
mongod
및mongos
모두에 사용할 수 있습니다.유형: integer
기본값: 500
청크 그룹화 최적화를 구현하는 데 사용되는 라우팅 테이블 캐시 버킷의 크기를 지정합니다. 0}보다 커야 합니다.
0
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어
mongod
에서 캐시 청크 버킷 크기를250
로 설정하려면 시작 시 다음 명령을 실행합니다.mongod --setParameter routingTableCacheChunkBucketSize=1000
shutdownTimeoutMillisForSignaledShutdown
버전 5.0에 추가.
유형: integer
기본값: 15000
mongod
에만 사용 가능합니다.SIGTERM
신호에 대한 응답으로mongod
종료를 시작하기 전에 진행 중인 데이터베이스 작업이 완료될 때까지 대기할 시간 (밀리초) 을 지정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 시간을 250밀리초로 설정하려면 시작 중에 다음을 실행하면 됩니다.
mongod --setParameter shutdownTimeoutMillisForSignaledShutdown=250 또는 실행 중인
mongod
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우입니다.db.adminCommand( { setParameter: 1, shutdownTimeoutMillisForSignaledShutdown: 250 } )
mongosShutdownTimeoutMillisForSignaledShutdown
버전 5.0에 추가.
유형: integer
기본값: 15000
mongos
에만 사용 가능합니다.SIGTERM
신호에 대한 응답으로mongos
종료를 시작하기 전에 진행 중인 데이터베이스 작업이 완료될 때까지 대기할 시간 (밀리초) 을 지정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어 시간을 250밀리초로 설정하려면 시작 중에 다음을 실행하면 됩니다.
mongos --setParameter mongosShutdownTimeoutMillisForSignaledShutdown=250 또는 실행 중인
mongos
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우입니다.db.adminCommand( { setParameter: 1, mongosShutdownTimeoutMillisForSignaledShutdown: 250 } )
ShardingTaskExecutorPoolHostTimeoutMS
유형: 정수
기본값: 300000(5분)
mongod
및mongos
모두에 사용할 수 있습니다.5}가 호스트에
mongos
대한 모든mongos
연결을 제거하기 전까지 가 호스트와 통신하지 않는 최대 시간입니다.설정된 경우
ShardingTaskExecutorPoolHostTimeoutMS
는ShardingTaskExecutorPoolRefreshRequirementMS
와ShardingTaskExecutorPoolRefreshTimeoutMS
의 합보다 커야 합니다. 그렇지 않으면mongos
는ShardingTaskExecutorPoolHostTimeoutMS
값이 합계보다 커지도록 조정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 시작 중에
ShardingTaskExecutorPoolHostTimeoutMS
를120000
으로 설정합니다.mongos --setParameter ShardingTaskExecutorPoolHostTimeoutMS=120000 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolHostTimeoutMS: 120000 } )
ShardingTaskExecutorPoolMaxConnecting
유형: 정수
기본값: 2
mongod
및mongos
모두에 사용할 수 있습니다.각 TaskExecutor 연결 풀이
mongod
인스턴스에 대해 가질 수 있는 동시 시작 연결의 최대 수(설정/새로 고침 상태의 보류 중인 연결 포함)입니다. 이 매개 변수를 설정하여mongos
가mongod
인스턴스에 연결을 추가하는 속도를 제어할 수 있습니다.설정된 경우
ShardingTaskExecutorPoolMaxConnecting
은ShardingTaskExecutorPoolMaxSize
보다 작거나 같아야 합니다. 이보다 크면mongos
는ShardingTaskExecutorPoolMaxConnecting
값을 무시합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 시작 중에
ShardingTaskExecutorPoolMaxConnecting
를20
으로 설정합니다.mongos --setParameter ShardingTaskExecutorPoolMaxConnecting=20 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolMaxConnecting: 20 } )
ShardingTaskExecutorPoolMaxSize
유형: 정수
기본값: 2 64 - 1
mongod
및mongos
모두에 사용할 수 있습니다.각 TaskExecutor 연결 풀이 지정된
mongod
인스턴스에 대해 열 수 있는 아웃바운드 연결의 최대 수입니다. 모든 TaskExecutor 풀에서 특정 호스트에 대해 가능한 최대 연결 수는 다음과 같습니다.ShardingTaskExecutorPoolMaxSize * taskExecutorPoolSize 해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 시작 중에
ShardingTaskExecutorPoolMaxSize
를20
으로 설정합니다.mongos --setParameter ShardingTaskExecutorPoolMaxSize=20 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolMaxSize: 20 } ) mongos
는 최대n
TaskExecutor 연결 풀을 가질 수 있으며, 여기서n
은 코어 수입니다.taskExecutorPoolSize
를 참조하세요.
ShardingTaskExecutorPoolMaxSizeForConfigServers
버전 6.0에 추가.
유형: 정수
기본값: -1
mongod
및mongos
모두에 사용할 수 있습니다.각 TaskExecutor 연결 풀이 구성 서버에 열 수 있는 최대 아웃바운드 연결 수를 설정하는
ShardingTaskExecutorPoolMaxSize
에 대한 선택적 재정의입니다.다음으로 설정하는 경우:
-1
,ShardingTaskExecutorPoolMaxSize
가 사용됩니다. 기본값입니다.-1
보다 큰 정수 값은 각 TaskExecutor 연결 풀이 구성 서버에 열 수 있는 최대 아웃바운드 연결 수를 무시합니다.
매개 변수는 샤딩된 배포에만 적용됩니다.
다음 예시에서는 시작 중에
ShardingTaskExecutorPoolMaxSize
를2
로 설정하여 각 TaskExecutor 연결 풀이 구성 서버에 열 수 있는 아웃바운드 연결의 최소 수를2
로 설정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
mongos --setParameter ShardingTaskExecutorPoolMaxSizeForConfigServers=2 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolMaxSizeForConfigServers: 2 } )
ShardingTaskExecutorPoolMinSize
유형: 정수
기본값: 1
mongod
및mongos
모두에 사용할 수 있습니다.각 작업 실행기 연결 풀이 주어진
mongod
인스턴스에 대해 열 수 있는 아웃바운드 연결의 최소 개수입니다.ShardingTaskExecutorPoolMinSize
풀에서 새 호스트에 대한 연결이 처음 요청되면 연결이 생성됩니다. 풀이 유휴 상태인 동안 풀은 해당 풀을 사용하는 애플리케이션 없이ShardingTaskExecutorPoolHostTimeoutMS
밀리초가 경과할 때까지 이 연결 수를 유지합니다.warmMinConnectionsInShardingTaskExecutorPoolOnStartup
매개 변수를 사용하는mongos
의 경우ShardingTaskExecutorPoolMinSize
매개 변수는mongos
인스턴스가 시작될 때 들어오는 클라이언트 연결을 수락하기 전에 각 샤드 호스트에 설정되는 연결 수를 제어합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 시작 중에
ShardingTaskExecutorPoolMinSize
를2
으로 설정합니다.mongos --setParameter ShardingTaskExecutorPoolMinSize=2 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolMinSize: 2 } ) mongos
는 최대n
TaskExecutor 연결 풀을 가질 수 있으며, 여기서n
은 코어 수입니다.taskExecutorPoolSize
를 참조하세요.
ShardingTaskExecutorPoolMinSizeForConfigServers
버전 6.0에 추가.
유형: 정수
기본값: -1
mongod
및mongos
모두에 사용할 수 있습니다.선택적으로
ShardingTaskExecutorPoolMinSize
를 재정의하여 각 TaskExecutor 연결 풀이 구성 서버에 대해 열 수 있는 최소 아웃바운드 연결 수를 설정하세요.다음으로 설정하는 경우:
-1
,ShardingTaskExecutorPoolMinSize
가 사용됩니다. 기본값입니다.-1
보다 큰 정수 값으로 설정하면 각 작업 실행기 연결 풀이 구성 서버에 열 수 있는 아웃바운드 연결의 최소 개수를 재정의합니다.
매개 변수는 샤딩된 배포에만 적용됩니다.
다음 예시에서는 스타트업 도중
ShardingTaskExecutorPoolMinSize
를2
로 설정해 각 TaskExecutor 연결 풀이 구성 서버에 열 수 있는 아웃바운드 연결의 최소수를2
로 설정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
mongos --setParameter ShardingTaskExecutorPoolMinSizeForConfigServers=2 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolMinSizeForConfigServers: 2 } )
ShardingTaskExecutorPoolRefreshRequirementMS
유형: 정수
기본값: 60000(1분)
mongod
및mongos
모두에 사용할 수 있습니다.풀에서 유휴 연결을 하트비트하기 전에
mongos
가 대기하는 최대 시간입니다. 풀이 최소 크기를 초과하는 경우 새로 고침 중에 유휴 연결이 삭제될 수 있습니다.설정된 경우
ShardingTaskExecutorPoolRefreshRequirementMS
는ShardingTaskExecutorPoolRefreshTimeoutMS
보다 커야 합니다. 그렇지 않으면mongos
가ShardingTaskExecutorPoolRefreshTimeoutMS
값을ShardingTaskExecutorPoolRefreshRequirementMS
보다 작게 조정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 시작 중에
ShardingTaskExecutorPoolRefreshRequirementMS
를90000
으로 설정합니다.mongos --setParameter ShardingTaskExecutorPoolRefreshRequirementMS=90000 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolRefreshRequirementMS: 90000 } )
ShardingTaskExecutorPoolRefreshTimeoutMS
유형: 정수
기본값: 20000(20초)
mongod
및mongos
모두에 사용할 수 있습니다.2}가 하트비트 타이밍을 초과하기 전에 하트비트를 기다리는
mongos
최대 시간입니다.설정된 경우
ShardingTaskExecutorPoolRefreshTimeoutMS
는ShardingTaskExecutorPoolRefreshRequirementMS
보다 작아야 합니다. 그렇지 않으면mongos
가ShardingTaskExecutorPoolRefreshTimeoutMS
값을ShardingTaskExecutorPoolRefreshRequirementMS
미만으로 조정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 시작 중에
ShardingTaskExecutorPoolRefreshTimeoutMS
를30000
으로 설정합니다.mongos --setParameter ShardingTaskExecutorPoolRefreshTimeoutMS=30000 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolRefreshTimeoutMS: 30000 } )
ShardingTaskExecutorPoolReplicaSetMatching
버전 5.0에서 변경됨
mongod
및mongos
모두에 사용할 수 있습니다.유형: 문자열
기본값: "자동"
mongos
인스턴스에서 이 매개변수는 복제본 세트 내의 노드에 대한 연결 풀의 최소 크기 제한을 결정하는 정책을 설정합니다.mongod
2} 인스턴스에서 이 매개 변수는 다른 복제본 집합 내의 노드에 대한 연결 풀의 최소 크기 제한을 결정하는 정책을 설정합니다.이 매개변수는 사용자 요청 및 CRUD 작업과 직접 관련된 작업에 대한 연결만 관리합니다.
사용 가능한 값은 다음과 같습니다.
매칭 정책설명"automatic"
(기본값)5.0부터
"automatic"
은 새로운 기본값입니다.mongos
에 대해 설정된 경우 인스턴스는"matchPrimaryNode"
옵션에 지정된 동작을 따릅니다.mongod
에 대해 설정된 경우 인스턴스는"disabled"
옵션에 지정된 동작을 따릅니다.경고:
ShardingTaskExecutorPoolReplicaSetMatching
이(가)"automatic"
로 설정하다 경우replicaSetMatchingStrategy
은(는) 여전히 사용 중인 실제 정책을 설명하며,"automatic"
는 설명하지 않습니다.ShardingTaskExecutorPoolReplicaSetMatching
의 값을 찾으려면 서버 매개변수의 값을 반환하는getParameter
를 사용합니다."matchPrimaryNode"
2}로 설정된 경우, 샤딩된 클러스터의 각 복제 세트(특히, 샤드 복제 세트 및 구성 서버)에 대한 인스턴스 연결 풀의 최소 크기 제한은 해당 복제 세트의 기본 연결 풀의 크기와
mongos
동일합니다.2}로 설정된 경우, 샤딩된 클러스터의 다른 복제 세트(특히, 샤드 복제 세트 및 구성 서버)의 각 보조에 대한 인스턴스 연결 풀의 최소 크기 제한은 해당 복제 세트의 기본에 대한 연결 풀의 크기와
mongod
동일합니다.경고: 토폴로지 의 여러 샤드 서버에서 샤드 간 작업이 빠르게 유입될 수 있는 경우
mongod
인스턴스에서 이 옵션을 설정하다 하지 마세요.프라이머리 스텝다운의 경우
matchPrimaryNode
를 사용하면 프라이머리가 되는 모든 보조 서버가 현재 레벨의 프라이머리 읽기 및 쓰기를 처리할 수 있습니다."matchBusiestNode"
2}로 설정된 경우, 샤딩된 클러스터의 각 복제 세트 구성원(특히, 샤드 복제 세트 및 구성 서버)에 대한 인스턴스의 연결 풀의 최소 크기 제한은 해당 복제 세트의 기본 및 각 보조 구성원에 대한 활성 연결 수 중 가장 큰 값과
mongos
동일합니다.mongod
에 대해 설정된 경우, 샤딩된 클러스터의 다른 복제 세트(특히, 샤드 복제 세트 및 구성 서버)의 각 구성원에 대한 인스턴스의 연결 풀의 최소 크기 제한은 해당 복제 세트의 기본 및 각 보조 구성원에 대한 활성 연결 수 중 가장 큰 값과 동일합니다."matchBusiestNode"
,mongos
를 사용하면 각 보조 서버에 대한 충분한 연결을 유지하여 현재 수준의 기본 및 보조 읽기 및 쓰기를 처리할 수 있습니다. 활성 연결 수가 감소하면 풀에서 유지해야 하는 연결 수도 줄어듭니다."disabled"
mongos
로 설정된 경우, 인스턴스의 연결 풀에서 샤드된 clusterv에 있는 복제본 세트의 각 노드(특히 샤드 복제본 세트 및 config 서버)에 대한 인스턴스의 최소 연결 수가ShardingTaskExecutorPoolMinSize
와 같습니다.mongod
(으)로 설정된 경우 샤드 클러스터(구체적으로 샤드 복제본 세트 및 구성 서버)에 있는 다른 복제본 세트의 각 노드에 대한 인스턴스 연결 풀의 인스턴스 최소 연결 수는ShardingTaskExecutorPoolMinSize
(과)와 같습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는 시작 중에
ShardingTaskExecutorPoolReplicaSetMatching
을"automatic"
로 설정합니다.mongod --setParameter ShardingTaskExecutorPoolReplicaSetMatching="automatic" 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolReplicaSetMatching: "automatic" } )
taskExecutorPoolSize
유형: 정수
기본값: 1
mongos
에만 사용 가능합니다.지정된
mongos
에 사용할 Task Executor 연결 풀의 수입니다.매개 변수 값이
0
이하이면 Task Executor 연결 풀 수는 코어 수와 같지만 다음과 같은 예외가 있습니다.코어 수가 4개 미만인 경우 Task Executor 연결 풀 수는 4개입니다.
코어 수가 64보다 크면 Task Executor 연결 풀 수는 64입니다.
중요
Linux 에서
taskExecutorPoolSize
값을 수정하기 전에 MongoDB 지원 전문가 에게 문의하세요. 이 매개변수를 수정하면 성능이 저하될 수 있습니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
mongos --setParameter taskExecutorPoolSize=6
loadRoutingTableOnStartup
mongos
에만 사용 가능합니다.유형: 부울
기본값: true
2} 인스턴스가 시작 시 샤딩된 클러스터의 라우팅 테이블을 미리 로드하도록
mongos
구성합니다. 이 설정을 사용하면mongos
는 클라이언트 연결을 수락하기 전에 시작 절차의 일부로 샤드된 각 컬렉션에 대한 클러스터 전체 라우팅 테이블을 캐시합니다.이 설정을 사용하지 않으면
mongos
는 들어오는 클라이언트 연결에 필요한 라우팅 테이블만 로드하고 지정된 요청의 네임스페이스에 대한 특정 라우팅 테이블만 로드합니다.loadRoutingTableOnStartup
매개 변수가 활성화된mongos
인스턴스는 스타트업 시간이 길어질 수 있지만, 일단 시작되면 초기 클라이언트 연결의 서비스 속도가 빨라집니다.loadRoutingTableOnStartup
은(는) 기본적으로 활성화되어 있습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
warmMinConnectionsInShardingTaskExecutorPoolOnStartup
mongos
에만 사용 가능합니다.유형: 부울
기본값: true
스타트업 시 연결 풀을 미리 워밍하도록
mongos
인스턴스를 구성합니다. 이 매개 변수를 활성화하면mongos
(은)는 클라이언트 연결을 수락하기 전에 스타트업 절차의 일부로 각 샤드 서버에ShardingTaskExecutorPoolMinSize
네트워크 연결을 설정하려고 시도합니다.이 동작에 대한 시간 초과는
warmMinConnectionsInShardingTaskExecutorPoolOnStartupWaitMS
매개변수를 사용하여 구성할 수 있습니다. 이 시간 초과에 도달하면mongos
는 연결 풀의 크기에 관계없이 클라이언트 연결을 수락하기 시작합니다.이 매개 변수를 활성화한
mongos
인스턴스는 시작 시간이 길어질 수 있지만, 일단 시작되면 초기 클라이언트 연결의 서비스 속도가 빨라집니다.warmMinConnectionsInShardingTaskExecutorPoolOnStartup
은(는) 기본적으로 활성화되어 있습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
warmMinConnectionsInShardingTaskExecutorPoolOnStartupWaitMS
mongos
에만 사용 가능합니다.유형: 정수
기본값: 2000(2초)
warmMinConnectionsInShardingTaskExecutorPoolOnStartup
매개변수를 사용할 때 샤드 호스트당ShardingTaskExecutorPoolMinSize
연결이 설정될 때까지mongos
가 대기하는 시간 초과 임계값을 밀리초 단위로 설정합니다. 이 시간 제한에 도달하면mongos
는 연결 풀의 크기에 관계없이 클라이언트 연결을 수락하기 시작합니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
migrateCloneInsertionBatchDelayMS
mongod
에만 사용 가능합니다.유형: 음수가 아닌 정수
기본값: 0
마이그레이션 프로세스의 복제 단계 중 일괄 삽입 사이에 대기하는 시간(밀리초)입니다. 이 대기 시간은
secondaryThrottle
에 추가됩니다.기본값인
0
은 추가 대기 시간이 없음을 나타냅니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음은
migrateCloneInsertionBatchDelayMS
를 200밀리초로 설정합니다.mongod --setParameter migrateCloneInsertionBatchDelayMS=200 매개변수는
setParameter
명령을 사용하여 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, migrateCloneInsertionBatchDelayMS: 200 } )
migrateCloneInsertionBatchSize
mongod
에만 사용 가능합니다.유형: 음수가 아닌 정수
기본값: 0
마이그레이션 프로세스의 복제 단계 동안 단일 배치에 삽입할 최대 문서 수입니다.
기본값
0
은 배치당 최대 문서 수가 없음을 나타냅니다. 그러나 실제로는 최대 16MB의 문서를 포함하는 일괄 처리가 생성됩니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음은
migrateCloneInsertionBatchSize
를 100개의 문서로 설정합니다.mongod --setParameter migrateCloneInsertionBatchSize=100 매개변수는
setParameter
명령을 사용하여 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, migrateCloneInsertionBatchSize: 100 } )
orphanCleanupDelaySecs
기본값: 900(15분)
mongod
에만 사용 가능합니다.마이그레이션된 청크가 소스 샤드에서 삭제되기 전의 최소 지연입니다.
청크 마이그레이션 중에 청크를 삭제하기 전에, MongoDB는
orphanCleanupDelaySecs
또는 청크와 관련된 진행 중인 쿼리가 샤드 프라이머리에서 완료될 때까지 둘 중 더 긴 시간을 기다립니다.그러나 샤드 프라이머리는 샤드 세컨더리에서 실행되는 진행 중인 쿼리에 대한 지식이 없기 때문에 청크를 사용하지만 세컨더리에서 실행되는 쿼리는 이러한 쿼리가 샤드 프라이머리 쿼리를 완료하는 데 걸리는 시간 및
orphanCleanupDelaySecs
보다 오래 걸리는 경우 문서가 사라지는 것을 볼 수 있습니다.참고
이 동작은 청크 마이그레이션 전에 시작되는 진행 중인 쿼리에만 영향을 미칩니다. 청크 마이그레이션이 시작된 후에 시작되는 쿼리는 마이그레이션하는 청크를 사용하지 않습니다.
샤드에 스토리지 제약이 있는 경우, 이 값을 일시적으로 줄이는 것이 좋습니다. 샤드 보조 데이터베이스에서 15분을 초과하는 쿼리를 실행하는 경우 이 값을 늘리는 것이 좋습니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음은
orphanCleanupDelaySecs
를 20분으로 설정합니다.mongod --setParameter orphanCleanupDelaySecs=1200 이는
setParameter
명령을 사용하여 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, orphanCleanupDelaySecs: 1200 } )
persistedChunkCacheUpdateMaxBatchSize
버전 6.0.13에 새로 추가됨: (및 5.0.25)
mongod
에만 사용 가능합니다.유형: 유형: 정수
기본값: 1000
작업을 라우팅하고 제공하려면 샤드가 컬렉션과 관련된 라우팅 및 소유권 정보를 알아야 합니다. 이 정보는 내부 캐시 컬렉션
config.cache.collections
및config.cache.chunks.<collectionName>
복제를 통해 샤드의 기본 노드에서 보조 노드로 전파됩니다.이전 버전에서는 청크 캐시 collection에 대한 업데이트가 개별적으로 수행되었습니다(즉, 항목이 삭제되고 새 항목이 삽입됨). MongoDB 6.0.13부터는 이러한 업데이트는 일괄적인 삭제와 그 뒤를 이은 일괄적인 삽입 과정으로 수행됩니다. 업데이트된 로직은 많은 수의 청크가 포함된 컬렉션의 성능을 개선합니다.
persistedChunkCacheUpdateMaxBatchSize
매개변수는 지속형 청크 캐시를 업데이트하는 데 사용되는 최대 배치 크기를 지정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예에서는 시작 시
persistedChunkCacheUpdateMaxBatchSize
을 700으로 설정합니다.mongod --setParameter persistedChunkCacheUpdateMaxBatchSize=700 런타임 중에
persistedChunkCacheUpdateMaxBatchSize
을 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, persistedChunkCacheUpdateMaxBatchSize: 700 } )
rangeDeleterBatchDelayMS
mongod
에만 사용 가능합니다.유형: 음수가 아닌 정수
기본값: 20
범위 마이그레이션의 정리 단계(또는
cleanupOrphaned
명령)에서 다음 삭제 일괄 처리 전에 대기할 시간(밀리초)입니다._secondaryThrottle 복제 지연은 각 배치 삭제 후에 발생합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음은
rangeDeleterBatchDelayMS
를 200밀리초로 설정합니다.mongod --setParameter rangeDeleterBatchDelayMS=200 매개변수는
setParameter
명령을 사용하여 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, rangeDeleterBatchDelayMS: 200 } )
rangeDeleterBatchSize
mongod
에만 사용 가능합니다.유형: 음수가 아닌 정수
기본값: MongoDB 5.1.2 및 5.0.6부터 2147483647
범위 마이그레이션의 정리 단계(또는
cleanupOrphaned
명령)에서 삭제할 각 배치의 최대 문서 수입니다.값이
0
이면 시스템이 기본값을 선택함을 나타냅니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는
rangeDeleterBatchSize
문서를 32개로 설정합니다.mongod --setParameter rangeDeleterBatchSize=32 매개변수는
setParameter
명령을 사용하여 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, rangeDeleterBatchSize: 32 } ) 팁
6.0.3 이전 버전에서
rangeDeleterBatchSize
의 새 값은 값이 변경된 후에 생성된 범위 삭제에만 적용됩니다. 기존 범위 삭제에 새 값을 적용하려면 강제로 강등하세요.6.0.3부터는 범위 삭제가 생성된 시기와 상관없이 업데이트 후 처리된 모든 범위 삭제에 매개변수의 새 값이 적용됩니다.
skipShardingConfigurationChecks
mongod
에만 사용 가능합니다.유형: 부울
기본값: false
true
인 경우 샤드 멤버 또는 구성 서버 멤버를 유지 관리 작업을 위한 독립 실행형으로 시작할 수 있습니다. 이 매개 변수는--configsvr
또는--shardsvr
옵션과 상호 배타적입니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.mongod --setParameter skipShardingConfigurationChecks=true 중요
유지 관리가 완료되면
mongod
를 다시 시작할 때skipShardingConfigurationChecks
매개변수를 제거합니다.
findChunksOnConfigTimeoutMS
버전 5.0에 추가.
mongod
및mongos
모두에 사용할 수 있습니다.유형: 음수가 아닌 정수
기본값: 900000
chunks
에서 찾기 작업의 제한 시간 (밀리초) 입니다.클러스터에 청크 수가 많고
ExceededTimeLimit
오류로 인해 청크 로드가 실패하는 경우 매개변수 값을 늘립니다.mongod --setParameter findChunksOnConfigTimeoutMS=1000000 해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
상태 관리자 매개변수
activeFaultDurationSecs
유형: 문서
mongos
에만 사용 가능합니다.상태 관리자 개요 오류가 발생한 후 클러스터에서 mongos가 제거될 때까지 기다리는 시간을 초 단위로 설정합니다.
장애가 감지되고 Health Manager가
critical
으로 구성된 경우 서버는 클러스터에서mongos
를 제거하기 전에 지정된 간격만큼 대기합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예를 들어, 실패부터 충돌까지의 기간을 5분으로 설정하려면 시작 시 다음을 실행하십시오.
mongos --setParameter activeFaultDurationSecs=300 또는 실행 중인
mongos
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우입니다.db.adminCommand( { setParameter: 1, activeFaultDurationSecs: 300 } ) setParameter
로 설정된 파라미터는 재시작 시에도 유지되지 않습니다. 자세한 내용은 SetParameter 페이지를 참조하십시오.이 설정을 영구적으로
activeFaultDurationSecs
유지하려면setParameter
다음 예시에서와 같이 옵션을 사용하여 mongos 구성 파일에서 을 설정합니다.setParameter: activeFaultDurationSecs: 300
healthMonitoringIntensities
유형: 문서 배열
mongos
에만 사용 가능합니다.이 매개변수를 사용하여 상태 관리자의 강도 수준을 설정합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
healthMonitoringIntensities
values
은 문서 배열을 받아들입니다.values
각 문서에는 두 개의 필드가 있습니다.type
를 클릭하고 상태 관리자 패싯intensity
강도 수준
상태 관리자
패싯상태 관리자가 확인하는 사항configServer
config 서버에 대한 연결과 관련된 클러스터 상태 문제.dns
DNS 가용성 및 기능과 관련된 클러스터 상태 문제.ldap
LDAP 가용성 및 기능과 관련된 클러스터 상태 문제.강도 수준
강도 수준설명critical
이 패싯의 상태 관리자는 활성화되어 있으며 오류가 발생하면 실패한 mongos를 클러스터 밖으로 옮길 수 있습니다. 상태 관리자는activeFaultDurationSecs
로 지정된 시간 동안 기다렸다가 mongos를 중지하고 클러스터 밖으로 자동으로 이동합니다.non-critical
이 패싯의 상태 관리자가 활성화되어 있고 오류를 기록하지만 오류가 발생하면 mongos 클러스터에 남아 있습니다.off
이 패싯의 상태 관리자는 비활성화되어 있습니다. mongos는 이 패싯에 대해 상태 확인을 수행하지 않습니다. 이것이 기본 강도 수준입니다.예를 들어
dns
Health Manager 패싯을critical
강도 수준으로 설정하려면 시작 시 다음을 실행하십시오.mongos --setParameter 'healthMonitoringIntensities={ values:[ { type:"dns", intensity: "critical"} ] }' 또는 실행 중인
mongos
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우입니다.db.adminCommand( { setParameter: 1, healthMonitoringIntensities: { values: [ { type: "dns", intensity: "critical" } ] } } ) } ) setParameter
로 설정된 파라미터는 재시작 시에도 유지되지 않습니다. 자세한 내용은 SetParameter 페이지를 참조하십시오.이 설정을 영구적으로
healthMonitoringIntensities
유지하려면setParameter
다음 예시에서와 같이 옵션을 사용하여 mongos 구성 파일에서 을 설정합니다.setParameter: healthMonitoringIntensities: "{ values:[ { type:\"dns\", intensity: \"critical\"} ] }"
healthMonitoringIntervals
유형: 문서 배열
mongos
에만 사용 가능합니다.이 상태 관리자가 실행되는 빈도(밀리초)입니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
healthMonitoringIntervals
values
은 문서 배열을 받아들입니다.values
각 문서에는 두 개의 필드가 있습니다.type
를 클릭하고 상태 관리자 패싯interval
실행하는 시간 간격(밀리초)
상태 관리자
패싯상태 관리자가 확인하는 사항configServer
config 서버에 대한 연결과 관련된 클러스터 상태 문제.dns
DNS 가용성 및 기능과 관련된 클러스터 상태 문제.ldap
LDAP 가용성 및 기능과 관련된 클러스터 상태 문제.예를 들어, 30초마다 상태 확인을 실행하도록
ldap
Health Manager 패싯을 설정하려면 시작 시 다음을 실행하십시오.mongos --setParameter 'healthMonitoringIntervals={ values:[ { type:"ldap", interval: "30000"} ] }' 또는 실행 중인
mongos
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우입니다.db.adminCommand( { setParameter: 1, healthMonitoringIntervals: { values: [ { type: "ldap", interval: "30000" } ] } } ) } ) setParameter
로 설정된 파라미터는 재시작 시에도 유지되지 않습니다. 자세한 내용은 SetParameter 페이지를 참조하십시오.이 설정을 영구적으로
healthMonitoringIntervals
유지하려면setParameter
다음 예시에서와 같이 옵션을 사용하여 mongos 구성 파일에서 을 설정합니다.setParameter: healthMonitoringIntervals: "{ values: [{type: \"ldap\", interval: 200}] }"
progressMonitor
유형: 문서
mongos
에만 사용 가능합니다.진행률 모니터는 테스트를 실행하여 상태 관리자 검사가 멈추거나 응답하지 않는지 확인합니다. 진행률 모니터는
interval
로 지정된 간격으로 이러한 테스트를 실행합니다. 상태 확인이 시작되었지만deadline
지정된 제한 시간 내에 완료되지 않는 경우 Progress Monitor는 mongos를 중지하고 클러스터에서 제거합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
progressMonitor
필드필드설명단위interval
상태 관리자가 정체되거나 응답하지 않는지 확인하는 빈도입니다.밀리초deadline
mongos가 상태 관리자 검사를 통과하지 못할 경우 자동으로 실패하기 전의 타임아웃을 설정합니다.초interval
시간을 1000밀리초로 설정하고deadline
를 300초로 설정하려면 시작 시 다음을 실행하십시오.mongos --setParameter 'progressMonitor={"interval": 1000, "deadline": 300}' 또는 실행 중인
mongos
에 연결된mongosh
세션에서setParameter
명령을 사용하는 경우입니다.db.adminCommand( { setParameter: 1, progressMonitor: { interval: 1000, deadline: 300 } ) } ) setParameter
로 설정된 파라미터는 재시작 시에도 유지되지 않습니다. 자세한 내용은 SetParameter 페이지를 참조하십시오.이 설정을 영구적으로
progressMonitor
유지하려면setParameter
다음 예시에서와 같이 옵션을 사용하여 mongos 구성 파일에서 을 설정합니다.setParameter: progressMonitor: "{ interval: 1000, deadline: 300 }"
스토리지 매개변수
honorSystemUmask
mongod
에만 사용 가능합니다.기본값:
false
honorSystemUmask
(이)가true
(으)로 설정되면 MongoDB에서 만든 새 파일은 사용자의umask
설정에 따라 권한을 갖습니다.honorSystemUmask
(이)가true
(으)로 설졍된 경우processUmask
(을)를 설정할 수 없습니다.honorSystemUmask
가false
로 설정되어 있으면 MongoDB에서 만든 새 파일의 권한이600
로 설정되어 소유자에게만 읽기 및 쓰기 권한이 부여됩니다. 새 디렉토리의 권한이700
으로 설정되어 있습니다.processUmask
를 사용하여 MongoDB에서 만든 모든 새 파일에 대한 그룹 및 기타 사용자의 기본 권한을 재정의할 수 있습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.mongod --setParameter honorSystemUmask=true 참고
honorSystemUmask
은(는) Windows 시스템에서 사용할 수 없습니다.
journalCommitInterval
mongod
에만 사용 가능합니다.저널 커밋 사이의 밀리초(ms) 수를 나타내는
1
과500
사이의 정수를 지정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
journalCommitInterval
을200
ms로 설정하는 다음 예시를 살펴보세요.db.adminCommand( { setParameter: 1, journalCommitInterval: 200 } )
minSnapshotHistoryWindowInSeconds
버전 5.0에 추가.
기본값:
300
mongod
에만 사용 가능합니다.스토리지 엔진이 스냅샷 기록을 유지하는 최소 시간 창(초)입니다. 읽기 관심사 를 사용하여 데이터를
"snapshot"
쿼리하고 지정된 보다 오래된 atClusterTime 값을 지정하는minSnapshotHistoryWindowInSeconds
mongod
경우 에서SnapshotTooOld
{ 9} 오류를 반환합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
(
>=
) 0보다 크거나 같은 정수를 지정합니다.minSnapshotHistoryWindowInSeconds
을(를)600
초로 설정하는 다음 예시를 살펴보겠습니다.db.adminCommand( { setParameter: 1, minSnapshotHistoryWindowInSeconds: 600 } ) 참고
minSnapshotHistoryWindowInSeconds
값을 늘리면 디스크 사용량이 늘어납니다. 자세한 내용은 스냅샷 기록 보존을 참조하세요.MongoDB Atlas 클러스터에 대해 이 값을 수정하려면 Atlas 지원에 문의해야 합니다.
processUmask
mongod
에만 사용 가능합니다.honorSystemUmask
가false
로 설정된 경우 그룹 및 기타 사용자에게 사용되는 기본 권한을 재정의합니다. 기본적으로honorSystemUmask
가false
로 설정된 경우 MongoDB에서 만든 새 파일은600
으로 권한이 설정됩니다.processUmask
매개 변수를 사용하여 사용자 지정umask
값으로 이 기본값을 재정의합니다. 파일 소유자는umask
시스템에서 사용 권한을 상속받습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.honorSystemUmask
가true
로 설정된 경우에는 이 매개 변수를 설정할 수 없습니다.그룹 및 기타 사용자에게 읽기/쓰기 전용 권한을 설정하고 소유자에 대한 시스템
umask
설정을 유지하는 다음 예를 고려하십시오.mongod --setParameter processUmask=011 참고
processUmask
은(는) Windows 시스템에서 사용할 수 없습니다.
storageEngineConcurrentReadTransactions
mongod
에만 사용 가능합니다.버전 6.0에서 변경되었습니다: 0}
wiredTigerConcurrentReadTransactions
매개변수의 이름이 로 변경되었습니다.storageEngineConcurrentReadTransactions
WiredTiger 스토리지 엔진에서만 사용할 수 있습니다.
WiredTiger storage engine에 허용되는 최대 동시 읽기 트랜잭션 수를 지정합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
db.adminCommand( { setParameter: 1, storageEngineConcurrentReadTransactions: <num> } )
storageEngineConcurrentWriteTransactions
mongod
에만 사용 가능합니다.버전 6.0에서 변경되었습니다: 0}
wiredTigerConcurrentReadTransactions
매개변수의 이름이 로 변경되었습니다.storageEngineConcurrentReadTransactions
WiredTiger 스토리지 엔진에서만 사용할 수 있습니다.
WiredTiger 스토리지 엔진에 허용되는 최대 동시 쓰기 트랜잭션(write transaction) 수를 지정합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
db.adminCommand( { setParameter: 1, storageEngineConcurrentWriteTransactions: <num> } )
syncdelay
mongod
에만 사용 가능합니다.mongod
가 작업 메모리를 디스크로 플러시하는 간격을 초 단위로 지정합니다. 기본적으로mongod
는 60초마다 메모리를 디스크로 플러시합니다. 거의 모든 상황에서 이 값을 설정하지 말고 기본 설정을 사용해야 합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
syncdelay
을(를)60
초로 설정하는 다음 예시를 살펴보겠습니다.db.adminCommand( { setParameter: 1, syncdelay: 60 } ) WiredTiger는 내구성 있는 데이터를 제공하기 위해 체크포인트를 사용합니다. 자세한 내용은 저널링 및 WiredTiger 스토리지 엔진을 참조하세요.
WiredTiger 매개변수
wiredTigerEngineRuntimeConfig
mongod
에만 사용 가능합니다.실행 중인
mongod
인스턴스에 대해wiredTiger
스토리지 엔진 구성 옵션을 지정합니다.이 매개변수는 런타임에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
명령을 사용합니다.경고
이 설정은 WiredTiger와 MongoDB 모두에 중요한 영향을 미치므로 MongoDB 엔지니어의 지시가 없는 한
wiredTigerEngineRuntimeConfig
를 수정하지 마세요.다음 작업 프로토타입을 고려하세요.
db.adminCommand({ "setParameter": 1, "wiredTigerEngineRuntimeConfig": "<option>=<setting>,<option>=<setting>" })
wiredTigerFileHandleCloseIdleTime
mongod
에만 사용 가능합니다.유형: integer
기본값: 600
wiredTiger
의 파일 핸들이 닫히기 전에 유휴 상태로 남아 있을 수 있는 시간(초)을 지정합니다.wiredTigerFileHandleCloseIdleTime
를0
으로 설정하면 유휴 핸들이 닫히지 않습니다.이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들면 다음과 같습니다.
mongod --setParameter wiredTigerFileHandleCloseIdleTime=100000
사용 가능한 모든 WiredTiger 구성 옵션은 WiredTiger 문서를 참조하세요.
감사 매개변수
auditAuthorizationSuccess
유형: 부울
기본값: false
참고
MongoDB Enterprise 및 MongoDB Atlas에서만 사용할 수 있습니다.
mongod
및mongos
모두에 사용할 수 있습니다.authCheck 조치에 대한 권한 부여 성공 사례를 감사하도록 설정합니다.
auditAuthorizationSuccess
가false
인 경우 감사 시스템은authCheck
에 대한 권한 부여 실패만 기록합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
권한 부여 성공에 대한 감사를 활성화하려면 다음 명령을 실행하십시오.
db.adminCommand( { setParameter: 1, auditAuthorizationSuccess: true } ) auditAuthorizationSuccess
(을)를 사용하도록 설정하면 권한 부여 실패만 로그하는 것보다 성능이 더 저하됩니다.런타임 감사 구성이 활성화된 경우
auditAuthorizationSuccess
매개 변수가mongod
또는mongos
구성 파일에 나타나지 않아야 합니다. 매개 변수가 있는 경우 서버가 시작되지 않습니다.
auditConfigPollingFrequencySecs
버전 5.0에 추가.
유형: integer
기본값: 300
샤딩된 클러스터에는 클러스터에 대한 감사 구성 설정을 유지 관리하는 서버가 있을 수 있습니다. 구성되지 않은 서버가 현재 감사 생성에 대해 구성 서버를 폴링하는 간격(초)을 설정합니다. 반환된 이 값이 이전에 알려진 값과 다른 경우 시작 노드는 현재 구성을 요청하고 내부 상태를 업데이트합니다.
참고
기본값인 300초를 사용하면 구성되지 않은 노드는 setAuditConfig 명령보다 최대 5분 정도 지연될 수 있습니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.
auditEncryptionHeaderMetadataFile
버전 6.0에 추가.
유형: 문자열
참고
MongoDB Enterprise에서만 사용할 수 있습니다. MongoDB Enterprise와 Atlas의 구성 요구 사항은 서로 다릅니다.
mongod
및mongos
모두에 사용할 수 있습니다.감사 로그 암호화를 위한 메타데이터 감사 헤더 로깅의 경로 및 파일 이름입니다. 헤더는 각 로그 파일의 맨 위에 위치하며 감사 로그를 해독하기 위한 메타데이터를 포함합니다. 헤더는 감사 로그에도 저장됩니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.예를 들어 다음은
auditEncryptionHeaderMetadataFile
의 경로와 파일을 설정합니다.mongod --setParameter auditEncryptionHeaderMetadataFile=/auditFiles/auditHeadersMetadataFile.log
auditEncryptKeyWithKMIPGet
버전 6.0에 추가.
유형: 부울
기본값: false
참고
MongoDB Enterprise에서만 사용할 수 있습니다. MongoDB Enterprise와 Atlas의 구성 요구 사항은 서로 다릅니다.
mongod
및mongos
모두에 사용할 수 있습니다.KMIP 프로토콜 버전 1.0 또는 1.1만 지원하는 KMIP(Key Management Interoperability Protocol) 서버의 경우 감사 로그 암호화를 활성화합니다.
이 매개변수는 시작 시에만 사용할 수 있습니다. 매개변수를 설정하려면
setParameter
설정을 사용하세요.다음 예시에서는
auditEncryptKeyWithKMIPGet
(을)를true
(으)로 설정합니다.mongod --setParameter auditEncryptKeyWithKMIPGet=true
트랜잭션 매개변수
coordinateCommitReturnImmediatelyAfterPersistingDecision
버전 5.0에 추가.
버전 6.0 및 5.0.10에서 업데이트됨
유형: 부울
기본값: false
false
로 설정하면 샤드 트랜잭션 코디네이터는 모든 구성원이 다중 문서 트랜잭션의 커밋 또는 취소 결정을 승인할 때까지 기다렸다가 결과를 클라이언트에게 반환합니다.true
로 설정하면 샤드 트랜잭션 코디네이터는 요청된 트랜잭션의 쓰기 고려에 따른 결정이 지속형이 되는 즉시 다중 문서 트랜잭션 커밋 결정을 클라이언트에 반환합니다.클라이언트가
"majority"
미만의 쓰기 문제를 요청한 경우 결정이 클라이언트에 반환된 후 커밋이 롤백될 수 있습니다.트랜잭션에 '읽기/쓰기' 일관성이 없을 수 있습니다. 즉, 읽기 작업이 그에 앞선 쓰기 작업의 결과를 표시하지 않을 수 있습니다. 이는 다음과 같은 경우에 발생할 수 있습니다:
트랜잭션은 여러 개의 샤드에 기록해야 합니다.
읽기와 이전 쓰기는 서로 다른 세션에서 발생합니다.
인과적 일관성은 동일한 세션 내에서 발생하는 읽기 및 쓰기의 인과적 관계만 보장합니다.
샤드 트랜잭션 코디네이터는 요청된 트랜잭션의 쓰기 고려에 따른 결정이 영속성있게 되는 즉시 다중 문서 트랜잭션 커밋 결정을 클라이언트에 반환합니다.
클라이언트가
"majority"
미만의 쓰기 문제를 요청한 경우 결정이 클라이언트에 반환된 후 커밋이 롤백될 수 있습니다.트랜잭션에 "읽기/쓰기" 일관성이 없을 수 있습니다. 즉, 읽기 작업은 이전 쓰기 작업의 결과를 반영하지 않을 수 있습니다. 다음과 같은 경우에 발생할 수 있습니다.
트랜잭션은 여러 개의 샤드에 기록해야 합니다.
읽기와 이전 쓰기는 서로 다른 세션에서 발생합니다.
인과적 일관성 은 동일한 세션 내에서 발생하는 읽기 및 쓰기의 인과 관계만 보장합니다.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
예시
다음 예시에서는
coordinateCommitReturnImmediatelyAfterPersistingDecision
을true
로 설정합니다.mongod --setParameter coordinateCommitReturnImmediatelyAfterPersistingDecision=true 런타임 중에
setParameter
명령을 사용하여 파라미터를 설정할 수도 있습니다.db.adminCommand( { setParameter: 1, coordinateCommitReturnImmediatelyAfterPersistingDecision: true } )
internalSessionsReapThreshold
버전 6.0에 추가.
mongod
및mongos
모두에 사용할 수 있습니다.기본값: 1000
내부 세션 메타데이터 삭제에 대한 세션 제한입니다. 메타데이터입니다:
사용자 작업에 대한 세션 트랜잭션 정보를 포함합니다.
config.transactions
컬렉션에 저장됩니다.
내부 세션 수가
internalSessionsReapThreshold
보다 많으면 메타데이터가 삭제됩니다.internalSessionsReapThreshold
를0
으로 설정하면 내부 세션 메타데이터는 사용자 세션이 종료될 때만 삭제됩니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음 예시에서는
internalSessionsReapThreshold
를500
세션으로 설정합니다.db.adminCommand( { setParameter: 1, internalSessionsReapThreshold: 500 } ) 시작 시
internalSessionsReapThreshold
를 설정할 수도 있습니다. 예를 들면 다음과 같습니다.mongod --setParameter internalSessionsReapThreshold=500
transactionLifetimeLimitSeconds
mongod
에만 사용 가능합니다.기본값: 60
다중 문서 트랜잭션의 수명을 지정합니다. 이 한도를 초과하는 거래는 만료된 것으로 간주되며 주기적인 정리 프로세스를 통해 중단됩니다. 정리 프로세스는
transactionLifetimeLimitSeconds
/2초마다 또는 60초에 한 번 이상 실행됩니다.정리 프로세스는 스토리지 캐시 압박을 완화하는 데 도움이 됩니다.
transactionLifetimeLimitSeconds의 최소값은
1
초입니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음은
transactionLifetimeLimitSeconds
(을)를30
초로 설정합니다.db.adminCommand( { setParameter: 1, transactionLifetimeLimitSeconds: 30 } ) 스타트업 시 매개 변수
transactionLifetimeLimitSeconds
를 설정할 수도 있습니다.mongod --setParameter "transactionLifetimeLimitSeconds=30" 샤딩된 클러스터의 파라미터를 설정하려면 모든 샤드 복제본 세트 멤버에 대해 파라미터를 수정해야 합니다.
MongoDB 5.0부터는
transactionLifetimeLimitSeconds
매개변수를 변경하는 경우 모든 구성 서버 복제본 세트 멤버에서transactionLifetimeLimitSeconds
도 동일한 값으로 변경해야 합니다. 이 값을 일관되게 유지합니다.적어도 샤드 복제본 세트 멤버의 트랜잭션 수명 제한만큼 라우팅 테이블 기록이 유지되도록 합니다.
트랜잭션 재시도 빈도를 줄여 성능을 향상시킵니다.
transactionTooLargeForCacheThreshold
버전 6.0.5에 추가 되었습니다.
mongod
에만 사용 가능합니다.유형: 십진수
기본값: 0.75
캐시 압박으로 인해 실패한 트랜잭션을 다시 시도하기 위한 임계값입니다. 이 값은 더티 캐시 크기의 백분율입니다. 기본값인
0.75
은 더티 캐시의 75%를 의미합니다.더티 캐시는 전체 캐시 크기의 20%로 제한됩니다.
transactionTooLargeForCacheThreshold
를0.75
으로 설정하면 서버는 전체 스토리지 엔진 캐시의 15% (0.75 * 20%
) 미만을 사용하는 트랜잭션만 재시도합니다.제한은 재시도에만 적용됩니다. 대규모 트랜잭션은
transactionTooLargeForCacheThreshold
% 이상의 더티 캐시를 사용할 수 있습니다. 하지만 캐시 압력으로 인해 대용량 트랜잭션이 롤백되면 서버는TransactionTooLargeForCache
오류를 발생시키고 트랜잭션을 재시도하지 않습니다.이 동작을 비활성화하려면
transactionTooLargeForCacheThreshold
을1.0
로 설정합니다.해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
WiredTiger 스토리지에 대한 자세한 내용은
storage.wiredTiger
옵션을 참조하세요.
maxTransactionLockRequestTimeoutMillis
mongod
에만 사용 가능합니다.유형: integer
기본값: 5
다중 문서 트랜잭션이 트랜잭션 작업에 필요한 잠금을 획득하기 위해 대기해야 하는 최대 시간을 밀리초 단위로 설정합니다.
maxTransactionLockRequestTimeoutMillis
를 기다린 후에도 트랜잭션이 잠금을 획득하지 못하면 트랜잭션이 중단됩니다.기본적으로 다중 문서 트랜잭션은
5
밀리초 동안 대기합니다. 즉, 트랜잭션이5
밀리초 내에 잠금을 획득할 수 없으면 트랜잭션이 중단됩니다. 작업이 잠금 요청에서 더 긴 시간 제한을 제공하는 경우maxTransactionLockRequestTimeoutMillis
가 작업별 시간 제한을 재정의합니다.maxTransactionLockRequestTimeoutMillis
를 다음과 같이 설정할 수 있습니다.0
따라서 트랜잭션이 필요한 잠금을 즉시 획득할 수 없으면 트랜잭션이 중단됩니다.필요한 잠금을 획득하기 위해 지정된 시간 동안 기다릴
0
보다 큰 숫자입니다. 이를 통해 빠르게 실행되는 메타데이터 작업과 같이 일시적인 동시 잠금 획득 시 트랜잭션이 중단되는 것을 방지할 수 있습니다. 그러나 이렇게 하면 교착 상태에 빠진 트랜잭션 작업의 중단이 지연될 수 있습니다.-1
작업별 타임아웃을 사용하려면 해당 옵션을 선택하세요.
해당 매개변수는 런타임과 시작 시 모두 사용할 수 있습니다.
런타임 중에 매개 변수를 설정하려면
setParameter
명령을 사용합니다.시작 시 매개변수를 설정하려면
setParameter
설정을 사용하세요.
다음은
maxTransactionLockRequestTimeoutMillis
를20
밀리초로 설정합니다.db.adminCommand( { setParameter: 1, maxTransactionLockRequestTimeoutMillis: 20 } ) 시작 중에도 이 매개변수를 설정할 수 있습니다.
mongod --setParameter maxTransactionLockRequestTimeoutMillis=20