自己管理型配置の MongoDB Server パラメーター
項目一覧
注意
MongoDB 8.0以降、 LDAP認証と認可は非推奨です。 LDAP は使用可能であり、 MongoDB 8のサポート期間中に変更されずに動作し続けます。 LDAP は将来のメジャー リリースで削除される予定です。
詳しくは、「 LDAP の非推奨」を参照してください。
Synopsis
MongoDB には、以下を使用して設定できるさまざまな構成オプションがあります。
setParameter
コマンドdb.adminCommand( { setParameter: 1, <parameter>: <value> } ) setParameter
構成設定。setParameter: <parameter1>: <value1> ... mongod
およびmongos
の--setParameter
コマンドライン オプション。mongod --setParameter <parameter>=<value> mongos --setParameter <parameter>=<value>
追加の構成オプションについては、自己管理型構成ファイル オプション、 mongod
、およびmongos
を参照してください。
パラメーター
認証パラメータ
authenticationMechanisms
サーバーが受け入れる認証メカニズムの一覧を指定します。 これを、次の 1 つ以上の値に設定します。 複数の値を指定する場合は、スペースを入れずにコンマ区切りのリストを使用します。 認証メカニズムの説明については、「自己管理型配置での認証 」を参照してください。
値説明SHA-1 ハッシュ関数を使用する RFC5802 標準の Salted Challenge Response Authentication Mechanismです。
SHA-256 ハッシュ関数を使用する RFC 7677 標準の Salted Challenge Response Authentication Mechanism。
MongoDB TLS/SSL 証明書認証。
GSSAPI(Kerberos)
Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。
PLAIN(LDAP SASL)
LDAP を使用する外部認証。データベース内のユーザー認証には、
PLAIN
を使用することもできます。PLAIN
はパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。OpenID Connect は、OAuth2 上にビルドされた認証レイヤーです。このメカニズムは MongoDB Enterprise でのみ使用できます。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。たとえば、認証メカニズムとして
PLAIN
とSCRAM-SHA-256
の両方を指定するには、次のコマンドを使用します。mongod --setParameter authenticationMechanisms=PLAIN,SCRAM-SHA-256 --auth
awsSTSRetryCount
バージョン7.0の変更:(6.0.7および5.0.18以降でも開始)
以前のバージョンでは、AWS IAM 認証は、サーバーが HTTP 500 エラーを返した場合にのみ再試行されていました。
タイプ: 整数
デフォルト: 2
Amazon Web ServicesIAM MongoDB認証情報 を使用した 配置の場合 またはAmazon Web Services IAM 環境変数。
接続失敗後の AWS IAM 認証の最大再試行回数。
次の例では、
awsSTSRetryCount
に15
の再試行を設定します。mongod --setParameter awsSTSRetryCount=15 あるいは、次の例では、
setParameter
mongosh
内で コマンドを使用します。db.adminCommand( { setParameter: 1, awsSTSRetryCount: 15 } )
clusterAuthMode
clusterAuthMode
にsendX509
またはx509
を設定します。ローリング アップグレード中にメンバーシップ認証に x509 を使用するとダウンタイムを最小限に抑えるために役立ちます。TLS/SSL と MongoDB の詳細については、 「
mongod
とmongos
の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。このパラメーターは実行時にのみ使用できます。 パラメーターを設定するには、
setParameter
コマンドを使用します。db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )
enableLocalhostAuthBypass
デフォルト:
true
ローカルホスト認証バイパスを無効にするには、
0
またはfalse
を指定します。デフォルトでは有効になっています。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。詳細については、「自己管理型配置での Localhost 例外」を参照してください。
enforceUserClusterSeparation
構成ファイルで
clusterAuthMode
がkeyFile
である場合にO/OU/DC
チェックを無効にするには、false
に設定します。 これにより、メンバー証明書を持つクライアントは、$external
データベースに保存されているユーザーとして認証できるようになります。 構成ファイルでclusterAuthMode
がkeyFile
でない場合、サーバーは起動しません。enforceUserClusterSeparation
パラメータをfalse
に設定するには、起動時に次のコマンドを実行します。mongod --setParameter enforceUserClusterSeparation=false enforceUserClusterSeparation
パラメータをfalse
に設定すると、サーバーは、アプリケーションが認証に使用するクライアント証明書と、特権アクセス権を持つクラスター内証明書を区別しません。 これは、clusterAuthMode
がkeyFile
である場合、効果はありません。 ただし、clusterAuthMode
がx509
の場合、許可されたスキームを使用するユーザー証明書はクラスター証明書と複合化され、特権アクセスが付与されます。次の操作を行うと、既存の証明書に内部特権が付与されます。
このパラメーターで許可された名前を持つユーザーを作成します。
enforceUserClusterSeparation
パラメータをfalse
に設定します。clusterAuthMode
をx509
に設定します。
enforceUserClusterSeparation
フラグによって作成が許可された昇格特権を持つユーザーを削除したことを検証せずに、keyFile
からx509
にアップグレードすることはできません。
KeysRotationIntervalSec
デフォルト:7776000 秒(90 日)
HMAC 署名鍵が次の鍵にローテーションするまで有効な秒数を指定します。このパラメータは主に認証テストを容易にすることを目的としています。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
ldapForceMultiThreadMode
mongod
でのみ利用可能です。デフォルト: false
同時 LDAP 操作のパフォーマンスを有効にします。
注意
libldap
のインスタンスがこのモードで安全に使用できることが確実な場合にのみ、このフラグを有効にしてください。使用しているlibldap
バージョンがスレッドセーフでない場合、MongoDB プロセスがクラッシュする可能性があります。LDAP 接続プールを使用するには、
ldapForceMultiThreadMode
を使用する必要があります。 LDAP 接続プールを有効にするには、ldapForceMultiThreadMode
とldapUseConnectionPool
をtrue
に設定します。Tip
MongoDB のバージョン、OS のバージョン、または libldap のバージョンについて心配な場合は、MongoDB サポートにお問い合わせください。
ldapQueryPassword
mongod
でのみ利用可能です。型: string
LDAP サーバーにバインドするために使用されるパスワード。 このパラメータでは
ldapQueryUser
を使用する必要があります。設定されていない場合、mongod または mongos は LDAP サーバーにバインドしません。
ldapQueryUser
mongod
でのみ利用可能です。型: string
LDAP サーバーにバインドするユーザー。 このパラメータでは
ldapQueryPassword
を使用する必要があります。設定されていない場合、mongod または mongos は LDAP サーバーにバインドしません。
ldapRetryCount
バージョン 6.1 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 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
に依存します。true の場合は、
ldapUserCacheRefreshInterval
を使用します。false の場合は、
ldapUserCacheInvalidationInterval
を使用します。
自己管理型配置で LDAP 認証を使用する MongoDB 配置で使用します。
mongod
インスタンスが外部ユーザー キャッシュのフラッシュ間で待機する間隔(秒単位)。MongoDB が外部ユーザー キャッシュをフラッシュした後、次に LDAP で承認されたユーザーが操作を発行するときに、MongoDB は LDAP サーバーから承認データを再取得する必要があります。指定する値を大きくすると、MongoDB と LDAP サーバーが同期するまでの間隔が長くなりますが、LDAP サーバーの負荷は軽減されます。逆に、指定する値を小さくすると、MongoDB と LDAP サーバーが同期するまでの感覚は短くなりますが、LDAP サーバーの負荷は増加します。
デフォルトは 30 秒です。
ldapUserCacheRefreshInterval
バージョン 5.2 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 30 秒
注意
MongoDB 5.2以降、LDAP サーバーから取得されたキャッシュされたユーザー情報の更新間隔は
ldapShouldRefreshUserCacheEntries
に依存します。true の場合は、
ldapUserCacheRefreshInterval
を使用します。false の場合は、
ldapUserCacheInvalidationInterval
を使用します。
自己管理型配置で LDAP 認証を使用する MongoDB 配置の場合。
mongod
が LDAP サーバーからキャッシュしたユーザー情報を更新するまでの間隔(秒単位)。最大間隔は 86,400 秒(24 時間)です。
次の例では、
ldapUserCacheRefreshInterval
を4000
秒に設定します。mongod --setParameter ldapUserCacheRefreshInterval=4000 または、
mongosh
内でsetParameter
コマンドを使用する場合。db.adminCommand( { setParameter: 1, ldapUserCacheRefreshInterval: 4000 } )
ldapUserCacheStalenessInterval
バージョン 5.2 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 90 秒
自己管理型配置で LDAP 認証を使用する MongoDB 配置の場合。
最後にキャッシュを更新したあとに
mongod
がキャッシュされた LDAP ユーザー情報を保持する間隔(秒単位)。LDAP サーバーからのユーザー情報の更新に成功せずに
ldapUserCacheStalenessInterval
秒以上経過すると、mongod
が起動します。キャッシュされた LDAP ユーザー情報を無効にします。
mongod
が LDAP サーバーに接続して LDAP ユーザーを承認するまで、LDAP ユーザーの新しいセッションを認証できません。mongod
が LDAP サーバーに接続できない場合、過去に認証された LDAP ユーザーを使用する既存のセッションを承認します。mongod
が LDAP サーバーに再接続すると、mongod
は LDAP ユーザーが正しく承認されていることを確認します。
最大間隔は 86,400 秒(24 時間)です。
次の例では、
ldapUserCacheStalenessInterval
を4000
秒に設定します。mongod --setParameter ldapUserCacheStalenessInterval=4000 または、
mongosh
内でsetParameter
コマンドを使用する場合。db.adminCommand( { setParameter: 1, ldapUserCacheStalenessInterval: 4000 } )
ldapUseConnectionPool
mongod
でのみ利用可能です。MongoDB が認証および承認のために LDAP サーバーに接続するときに接続プーリングを使用するかどうかを指定します。
MongoDB では、次のデフォルト値が使用されます。
Windows では true
MongoDB Enterprise バイナリが
libldap_r
にリンクされている Linux では true。MongoDB Enterprise バイナリが
libldap
にリンクされている Linux では false。
ldapUseConnectionPool
が設定できるのはスタートアップ時のみです。setParameter
データベースコマンドを使用してこの設定を変更することはできません。
ldapConnectionPoolUseLatencyForHostPriority
mongod
でのみ利用可能です。デフォルト: true
LDAP 接続プール(
ldapUseConnectionPool
を参照)が LDAP サーバーのレイテンシを使用して接続順序(最小レイテンシから最大レイテンシまで)を決定するかどうかを決めるブール値。ldapConnectionPoolUseLatencyForHostPriority
が設定できるのはスタートアップ時のみです。実行中にsetParameter
データベースコマンドを使用してこの設定を変更することはできません。
ldapConnectionPoolMinimumConnectionsPerHost
mongod
でのみ利用可能です。デフォルト: 1
各 LDAP サーバーに対して開始したままにしておく接続の最小数。
ldapConnectionPoolMinimumConnectionsPerHost
が設定できるのはスタートアップ時のみです。実行中にsetParameter
データベースコマンドを使用してこの設定を変更することはできません。
ldapConnectionPoolMaximumConnectionsPerHost
mongod
でのみ利用可能です。MongoDB バージョン5.0 9および6.0.0以降で変更デフォルト値を
2147483647
に変更しました。以前のバージョンのデフォルトは未設定です。デフォルト: 2147483647
各 LDAP サーバーに対して開始したままにしておく接続の最大数。
ldapConnectionPoolMaximumConnectionsPerHost
が設定できるのはスタートアップ時のみです。実行中にsetParameter
データベースコマンドを使用してこの設定を変更することはできません。
ldapConnectionPoolMaximumConnectionsInProgressPerHost
mongod
でのみ利用可能です。MongoDB バージョン5.0 9および6.0.0以降で変更デフォルト値を
2
に変更しました。以前のバージョンのデフォルトは未設定です。デフォルト: 2
各 LDAP サーバーに対して進行中の接続操作の最大数。
ldapConnectionPoolMaximumConnectionsInProgressPerHost
が設定できるのはスタートアップ時のみです。setParameter
データベースコマンドを使用してこの設定を変更することはできません。
ldapConnectionPoolHostRefreshIntervalMillis
mongod
でのみ利用可能です。デフォルト: 60000
プールされたLDAP接続のヘルスチェック間隔(ミリ秒単位)。
ldapConnectionPoolHostRefreshIntervalMillis
が設定できるのはスタートアップ時のみです。setParameter
データベースコマンドを使用してこの設定を変更することはできません。
ldapConnectionPoolIdleHostTimeoutSecs
mongod
でのみ利用可能です。デフォルト: 300
LDAPサーバーにプールされた接続がクローズされるまでにアイドル状態を維持できる最大時間(秒)。
ldapConnectionPoolIdleHostTimeoutSecs
が設定できるのはスタートアップ時のみです。setParameter
データベースコマンドを使用してこの設定を変更することはできません。
ldapShouldRefreshUserCacheEntries
バージョン 5.2 で追加。
mongod
でのみ利用可能です。タイプ: ブール値
デフォルト: true
自己管理型配置で LDAP 認証を使用する MongoDB 配置の場合。
MongoDB 5.2以降、LDAP サーバーから取得されたキャッシュされたユーザー情報の更新間隔は
ldapShouldRefreshUserCacheEntries
に依存します。true の場合は、
ldapUserCacheRefreshInterval
を使用します。false の場合は、
ldapUserCacheInvalidationInterval
を使用します。
ldapShouldRefreshUserCacheEntries
スタートアップ時にconfiguration file
--setParameter
またはコマンドラインで オプションを使用してのみ を設定できます。たとえば、次の例ではldapShouldRefreshUserCacheEntries
が無効になっています。mongod --setParameter ldapShouldRefreshUserCacheEntries=false
maxValidateMemoryUsageMB
mongod
でのみ利用可能です。バージョン 5.0 で追加
デフォルト: 200
validate
コマンドのメモリ使用上限(メガバイト)。上限を超えた場合、validate
は可能な限り多くの結果を返し、制限によりすべての破損が報告されない可能性があることを警告します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
oidcIdentityProviders
mongod
でのみ利用可能です。バージョン 8.0 での変更: (7.3 および 7.0 でも利用可能)
OpenID Connect 認証を使用する場合、このパラメータを使用して IDP(アイデンティティ プロバイダー)構成を指定します。
oidcIdentityProviders
は、0 個以上の IdP(ID プロバイダー)構成の配列を受け入れます。空の配列(デフォルト)は、OpenID Connect サポートが有効になっていないことを示します。複数の IdP が定義されている場合、
oidcIdentityProviders
はmatchPattern
フィールドを使用して IdP を選択します。配列順が優先順位を決定し、常に最初のIdPが選択されます。MongoDB 8.0 以降では、複数の ID プロバイダー(IDP)が定義されている場合、
audience
値が各発行者に対して一意である限り、oidcIdentityProviders
パラメータは重複するissuer
値を受け入れます。これは、バージョン 7.3 および 7.0 でも利用できます。oidcIdentityProviders フィールド
フィールド必要性タイプ説明issuer
必須
string
サーバーがトークンを受け入れるべき IdP の発行者 URI。これは、認証に使用されるすべての JWT の
iss
フィールドと一致する必要があります。MongoDB 8.0以降では、複数の ID プロバイダー(IDP)が定義されている場合、
audience
値が各発行者に対して一意である限り、oidcIdentityProviders
パラメータは重複するissuer
値を受け入れます。 これは、バージョン7.3および7でも利用できます。 0 。到達不能な発行者 URI を指定すると、MongoDB は次の処理を実行します。
警告をログに記録します。
サーバーの起動を続行します。これにより、発行者 URI を更新できます。
発行者への接続を再試行します。MongoDB が発行者 URI に到達し、アクセス トークンを検証すると、認証は成功します。発行者 URI に到達できない状態の場合、認証は失敗します。
バージョン 8.0 での変更: (7.3 および 7.0 でも利用可能)
authNamePrefix
必須
string
生成された
UserName
とRoleName
に適用される承認用の一意のプレフィックス。authNamePrefix
には、次の文字のみを含めることができます。英数字(
a
~z
と0
~9
の組み合わせ)ハイフン(
-
)アンダースコア(
_
)
matchPattern
条件付き
string
どのIdPを使用するかを決定するために使用する正規表現パターン。
matchPattern
がユーザー名と一致します。配列順が優先順位を決定し、常に最初のIdPが選択されます。matchPattern
が一部の構成では必須となり、ユーザーがsupportsHumanFlows
をどのように設定するかに応じて決まります。1 つの IdP のみで
supportsHumanFlows
がtrue
(デフォルト)に設定されている場合、matchPatterns
は任意です。複数の IdP で
supportsHumanFlows
がtrue
(デフォルト)に設定されている場合、それぞれに対してmatchPatterns
が必要です。matchPatterns
は、supportsHumanFlows
がfalse
に設定されているすべての IdP で任意です。
これはセキュリティの仕組みではありません。
matchPattern
は顧客への助言としてのみ機能します。MongoDBは、このパターンに一致しないプリンシパル名の IdP が発行したトークンを受け入れます。clientId
条件付き
string
アクセス トークンを受信するクライアントを識別するために IdP によって提供される ID。
supportsHumanFlows
にtrue
(デフォルト)が設定されている場合に必須です。audience
必須
string
アクセス トークンの対象となるアプリケーションまたはサービスを指定します。
MongoDB 7.0以降、 OIDC アクセス トークンには、
audience
oidcIdentityProviders フィールドのみを指定できます。 空の配列または複数の文字列の配列を持つaudience
フィールドは無効です。複数の IdP が定義されている場合、これは
issuer
を共有する構成ごとに一意の 値である必要があります。requestScopes
任意
array[ string ]
MongoDB が IdP に要求するパーミッションとアクセスレベル。
principalName
任意
string
MongoDB ユーザー識別子を含むアクセス トークンから抽出されるクレーム。
デフォルト値は
sub
(subject
を表す)です。useAuthorizationClaim
任意
ブール値
authorizationClaim
が必要かどうかを判断します。 デフォルト値はtrue
です。useAuthorizationClaim
フィールドがtrue
に設定されている場合、サーバーは IdP の構成にauthorizationClaim
が必要です。これはデフォルトの動作です。useAuthorizationClaim
フィールドにfalse
が設定されている場合、authorizationClaim
フィールドは任意(存在した場合は無視)です。代わりに、サーバーは次の処理を行います。principalNameClaim
フィールドに名前が一覧化されているクレームをトークンから検索します。通常、これにはsub
という名前がついています。たとえば次のとおりです。sub: "spencer.jackson@example.com"
authNamePrefix
、フォワードスラッシュ(/
)、アクセストークン内のprincipalNameClaim
で識別されるクレームの内容を連結して、内部ユーザー名を作成します。たとえば、authNamePrefix
フィールドの値が「mdbinc」の場合、内部ユーザー名は次のようになります。mdbinc/spencer.jackson@example.com
このユーザー名を持つユーザーを検索し、クライアントにロールを承認します。
{ user: "mdbinc/spencer.jackson@example.com", db: "$external" }
バージョン 7.2 の新機能(7.0.5 でも利用可能)
authorizationClaim
条件付き
string
useAuthorizationClaim
にfalse
が設定されていない場合は必須です。MongoDB ロール名を含むアクセス トークンから抽出されたクレーム。
logClaims
任意
array[ string ]
認証完了時にログおよび監査メッセージに含めるアクセス トークン クレームのリスト。
JWKSPollSecs
任意
integer
更新された JWKS(JSON Web Key Set)をIdP から要求する頻度(秒単位)。"0" を設定すると、ポーリングは無効になります。
複数の IdP が定義されている場合、これは
issuer
を共有する構成ごとに同じ値である必要があります。supportsHumanFlows
任意
ブール
OIDC プロバイダーが人間のワークフローまたは機械のワークフローをサポートするか。これは、
clientId
フィールドとmatchPattern
フィールドに影響します。マシン ワークロード IdP でこのフィールドに
false
を設定して、不要な場合にclientId
を省略できるようにすると便利な場合があります。デフォルト:
true
。バージョン 7.2 で追加。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
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 以上の数値を指定します。
ocspValidationRefreshPeriodSecs
スタートアップ時にconfiguration file
--setParameter
またはコマンドラインで オプションを使用してのみ を設定できます。次の例では、 パラメータを3600秒に設定します。mongod --setParameter ocspValidationRefreshPeriodSecs=3600 ... MongoDB 5.0 以降では、
rotateCertificates
コマンドとdb.rotateCertificates()
メソッドによって、ステープリングされた OCSP 応答もリフレッシュされます。
opensslCipherConfig
Linux でのみ利用可能です。
ネイティブ TLS/SSL ライブラリを使用することで、パラメータ
opensslCipherConfig
は Linux/BSD でサポートされ、Windows と macOS ではサポートされなくなりました。TLS/SSL 暗号化を使用する場合は、OpenSSL の暗号stringを指定します。 暗号文字列のリストについては、 https://www.openssl.org/docs/man1.1.1 /man1 /ciphers.html を参照してください。 。複数の暗号文字列をコロン区切りのリストとして提供できます。
注意
このパラメータは TLS 1.2またはそれ以前のバージョンでのみ使用します。 TLS 1.3で使用する暗号スイートを指定するには、
opensslCipherSuiteConfig
パラメーターを使用します。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。SSL
オプションよりもTLS
オプションの使用が優先されます。 TLS オプションはSSL
オプションと同じ機能を持ちます。 次の例では、 のmongod
opensslCipherConfig
暗号 を持つstring'HIGH:!EXPORT:!aNULL@STRENGTH'
を構成します。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.opensl.org/docs/man1.1.1 /man3 /SSL_CTX_set_cipher_list.html を参照してください。 。複数の暗号スイートは、コロン区切りのリストとして提供できます。
注意
このパラメータは TLS 1.3でのみ使用します。 TLS 1.2またはそれ以前のバージョンで使用する暗号文字列を指定するには、
opensslCipherConfig
パラメータを使用します。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。次の例では、TLS 1.3で使用するために
mongod
は、'TLS_AES_256_GCM_SHA384'
のopensslCipherSuiteConfig
暗号スイートで構成します。mongod --setParameter opensslCipherSuiteConfig='TLS_AES_256_GCM_SHA384' --tlsMode requireTLS --tlsCertificateKeyFile Certs/server.pem
opensslDiffieHellmanParameters
Linux でのみ利用可能です。
TLS 1.2 以前を使用する場合は、OpenSSL ディフィー ヘルマン パラメータを含む PEM ファイルに対するパスを指定します。OpenSSL ディフィー ヘルマン パラメータを指定すると、TLS/SSL 暗号化中にエフェメラル ディフィー ヘルマン(DHE)暗号スイートのサポートが有効になります。
TLS 1.3 では、このパラメータの使用はサポートされていません。
エフェメラル ディフィー ヘルマン(DHE)暗号スイート(およびエフェメラル楕円曲線ディフィー ヘルマン(ECDHE)暗号スイート)では、フォワード シークレシーが提供されます。フォワード シークレシー暗号スイートは、サーバーの秘密キーで保護されているが送信されない一時的なセッション鍵を作成します。これにより、サーバーの秘密キーが侵害された場合でも、侵害された鍵で過去のセッションを復号化することはできません。
注意
opensslDiffieHellmanParameters
が設定されていないが ECDHE が有効になっている場合、MongoDB はffdhe3072
RFC-7919 #appendix-A2 で定義されているように、 ディフィー ヘルマン パラメータを使用して DHE を有効にします。 。ffdhe3072
は強力なパラメータ(具体的には、サイズが1024より大きい場合)。 Oracle から延長サポートを購入しない限り、Java 6および7ではサポートされていません。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。パフォーマンス上の理由で、DHE 暗号スイートのサポートを無効にする必要がある場合は、
opensslCipherConfig
パラメーターを使用します。mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!DHE:!kDHE@STRENGTH' ...
saslauthdPath
注意
MongoDB Enterprise でのみ利用可能です(MongoDB Enterprise for Windows を除く)。
プロキシ認証に使用する
saslauthd
インスタンスの Unix ドメイン ソケットへのパスを指定します。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
saslHostName
saslHostName
は、SASL および Kerberos 認証を構成するために、MongoDB のデフォルトのホスト名検出を上書きします。saslHostName
は、SASL と Kerberos の構成以外の目的で、mongod
またはmongos
インスタンスのホスト名に影響を与えません。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。注意
saslHostName
は、Kerberos 認証をサポートしており、MongoDB Enterprise にのみ含まれています。詳細については、以下を参照してください。Linux: Linuxで Kerberos 認証を使用して自己管理型 MongoDB を構成する
Windows: Windowsで Kerberos 認証を使用して自己管理型 MongoDB を構成する
saslServiceName
ユーザーがインスタンスごとに、Kerberos プリンシパル名のデフォルトの Kerberos サービス名コンポーネントを上書きできるようにします。指定しない場合、デフォルト値は
mongodb
です。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。saslServiceName
は MongoDB Enterprise でのみ利用可能です。重要
ドライバーが代替サービス名をサポートしていることを確認します。
scramIterationCount
デフォルト:
10000
すべての新しい
SCRAM-SHA-1
パスワードに使用されるハッシュ反復回数を変更します。反復回数を増やすと、クライアントが MongoDB への認証に必要な時間は長くなりますが、パスワードはブルートフォース攻撃の影響を受けにくくなります。デフォルト値は、最も一般的なユースケースと要件に最適です。この値を変更しても、既存のパスワードの反復回数は変更されません。
scramIterationCount
の値は5000
以上である必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では
scramIterationCount
を12000
に設定します。mongod --setParameter scramIterationCount=12000 または、
mongosh
内でsetParameter
コマンドを使用する場合。db.adminCommand( { setParameter: 1, scramIterationCount: 12000 } )
scramSHA256IterationCount
デフォルト:
15000
すべての新しい
SCRAM-SHA-256
パスワードに使用されるハッシュ反復回数を変更します。反復回数を増やすと、クライアントが MongoDB への認証に必要な時間は長くなりますが、パスワードはブルートフォース攻撃の影響を受けにくくなります。デフォルト値は、最も一般的なユースケースと要件に最適です。この値を変更しても、既存のパスワードの反復回数は変更されません。
scramSHA256IterationCount
の値は5000
以上である必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では
scramSHA256IterationCount
を20000
に設定します。mongod --setParameter scramSHA256IterationCount=20000 または、
mongosh
内でsetParameter
コマンドを使用する場合。db.adminCommand( { setParameter: 1, scramSHA256IterationCount: 20000 } )
sslMode
net.ssl.mode
にpreferSSL
またはrequireSSL
を設定します。TLS/SSL へのローリング アップグレード中に、ダウンタイムを最小限に抑えるために役立ちます。TLS/SSL と MongoDB の詳細については、 「
mongod
とmongos
の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。このパラメーターは実行時にのみ使用できます。 パラメーターを設定するには、
setParameter
コマンドを使用します。db.adminCommand( { setParameter: 1, sslMode: "preferSSL" } )
tlsMode
次のいずれかに設定します。
preferTLS
requireTLS
tlsMode
パラメータは、TLS/SSL へのローリング アップグレード中に、ダウンタイムを最小限に抑えるために役立ちます。このパラメーターは実行時にのみ使用できます。 パラメーターを設定するには、
setParameter
コマンドを使用します。db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } ) TLS/SSL と MongoDB の詳細については、 「
mongod
とmongos
の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
tlsClusterAuthX509Override
バージョン 7.0 で追加。
clusterAuthX509
構成オプションを上書きします。setParameter: tlsClusterAuthX509Override: { attributes: O=MongoDB, OU=MongoDB Server } このパラメーターは
attributes
およびextensionValue
の上書きサポートします。サーバーはノードからの接続を認証するときに、X.509証明書を分析して、クラスター ノードに属しているかどうかを判断します。サーバーが
attributes
設定またはtlsClusterAuthX509Override
パラメーターのattributes
フィールドを使用する場合、証明書の識別名(DN)値を確認します。extensionValue
設定またはtlsClusterAuthX509Override
パラメーターのextensionValue
フィールドが設定されている場合は、証明書の拡張値を確認します。一致するものが見つかった場合は、接続をピアとして承認します。このパラメーターを使用して、新しい証明書の属性または拡張値が異なる場合に証明書をローテーションします。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
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 証明書をロードするかどうかを指定します。
重要
mongod
TLS/SSL を有効 にして インスタンスを起動する場合は、--tlsCAFile
フラグ、net.tls.CAFile
構成オプション、tlsUseSystemCA
パラメータのいずれかの値を指定する必要があります。--tlsCAFile
、tls.CAFile
、tlsUseSystemCA
は、すべて相互に排他的です。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。たとえば、
tlsUseSystemCA
をtrue
に設定するには、次の操作を実行します。mongod --setParameter tlsUseSystemCA=true TLS/SSL と MongoDB の詳細については、 「
mongod
とmongos
の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
tlsWithholdClientCertificate
デフォルト: false
TLS 証明書は、
mongod
またはmongos
に対して、--tlsClusterFile
オプションによって、または--tlsClusterFile
が設定されていない場合は--tlsCertificateKeyFile
オプションによって設定されます。TLS 証明書が設定されている場合、デフォルトでは、インスタンスは配置内の他のmongod
インスタンスまたはmongos
インスタンスとのクラスター内通信を開始するときに証明書を送信します。tlsWithholdClientCertificate
に1
またはtrue
を設定すると、これらの通信中に TLS 証明書の送信を保留するようにインスタンスに指示します。このオプションを、(証明書なしでインバウンド接続を許可する場合に)配置のすべてのノードで--tlsAllowConnectionsWithoutCertificates
とともに使用します。tlsWithholdClientCertificate
と--clusterAuthMode x509
は排他関係にあります。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
tlsX509ClusterAuthDNOverride
インスタンスが配置のノードを識別するためにも使用できるDN(Distinguished Name、代替識別名)。
clusterAuthMode
に x.509 証明書を使用する MongoDB 配置では、配置ノードは、クラスター内通信中に x.509 証明書(指定されている場合はnet.tls.clusterFile
、およびnet.tls.certificateKeyFile
)を使用して相互を識別します。同じ配置のノードの場合、証明書のDN
に含まれる組織属性(O
)、組織単位属性(OU
)、およびドメインコンポーネント(DC
)は同じである必要があります。ノードに
tlsX509ClusterAuthDNOverride
が設定されている場合、ノードは提示された証明書のDN
コンポーネント(O
、OU
、およびDC
)を比較するときにオーバーライド値を使用することもできます。つまり、ノードは提示された証明書をnet.tls.clusterFile
/net.tls.certificateKeyFile
と照合します。DN が一致しない場合、ノードは提示された証明書をtlsX509ClusterAuthDNOverride
値と照合します。注意
設定されている場合配置のすべてのノードにこのパラメーターを設定する必要があります。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
このパラメータを使用して、新しい
DN
値を含む新しい証明書に、証明書のローリング アップデートを行うことができます。 x のローリング アップデート を参照してください。自己管理型クラスター上の新しい識別名を含む509証明書メンバーシップ証明書要件の詳細については、「メンバー証明書の要件」を参照してください。
tlsX509ExpirationWarningThresholdDays
デフォルト : 30
が x を表示した場合、
mongod
/mongos
は接続時に警告を記録します。 509証明書はmongod/mongos
システム クロックから30
日以内に期限切れになります。 証明書の有効期限警告しきい値を制御するには、tlsX509ExpirationWarningThresholdDays
パラメータを使用します。証明書の有効期限よりもかなり前に警告を発報するには、パラメーターの値を大きくします。
証明書の有効期限が近づくと警告を発報するには、パラメーター値を小さくします。
警告を無効にするには、パラメーターに
0
を設定します。
このパラメーターの最小値は
0
です。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。x の詳細については、こちらを参照してください。509 証明書の有効性については、 RFC52804.1.2.5 を参照してください。
userCacheInvalidationIntervalSecs
mongos
でのみ利用可能です。デフォルト: 30
mongos
インスタンスでは、mongos
インスタンスがユーザー オブジェクトのメモリ内キャッシュに古いデータがあるかどうかを確認し、古いデータがある場合はキャッシュをクリアする間隔(秒単位)を指定します。ユーザー オブジェクトに変更がない場合、mongos
はキャッシュをクリアしません。このパラメーターの最小値は
1
秒、最大値は86400
秒(24 時間)です。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
authFailedDelayMs
デフォルト: 0
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
認証が失敗したことをクライアントに通知するまでに待機するミリ秒数。このパラメーターの範囲は
0
から5000
(両端を含む)です。このパラメーターを設定すると、データベースに対するブルートフォースログイン攻撃にかかる時間が長くなります。ただし、MongoDB サーバーからの応答を待っているクライアントは引き続きサーバーのリソースを消費するため、サーバーが同時に他の多くのクライアントへのアクセスを拒否している場合は、正常なログイン試行に悪影響を与える可能性があります。
allowRolesFromX509Certificates
デフォルト: true
クライアントの x.509 証明書から承認ロールを取得することを許可または禁止するブール値フラグ。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
一般的なパラメータ
allowDiskUseByDefault
mongod
でのみ利用可能です。デフォルト: True
MongoDB 6.0 以降、 100 MB 以上のメモリを必要とするパイプライン ステージでは、デフォルトで一時ファイルをディスクに書き込みます。これらの一時ファイルはパイプラインの実行中ずっと残り、インスタンスのストレージ容量に影響を与える可能性があります。以前のバージョンの MongoDB では、この動作を有効にするには、個々の
find
コマンドとaggregate
コマンドに{ allowDiskUse: true }
を渡す必要がありました。個々の
find
およびaggregate
コマンドは、次のいずれかの方法でallowDiskUseByDefault
パラメーターを上書きできます。allowDiskUseByDefault
がfalse
に設定されている場合に{ allowDiskUse: true }
を使用して一時ファイルをディスクに書き込むことを許可するallowDiskUseByDefault
がtrue
に設定されている場合に{ allowDiskUse: false }
を使用して一時ファイルがディスクに書き込むことを禁止する
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
mongod --setParameter allowDiskUseByDefault=false allowDiskUseByDefault
はmongod
でのみ機能し、mongos
ではありません。mongos
は一時ファイルをディスクに書き込みません。 サーバーが実行中に パラメータの値を変更するには、実行中のsetParameter
mongosh
mongod
に接続されている セッションで コマンドを使用します。db.adminCommand( { setParameter: 1, allowDiskUseByDefault: false } )
httpVerboseLogging
Linux および macOS 上の curl に詳細なトレース機能を追加します。Windows への影響はありません。
デフォルトでは、このパラメータは設定されていません。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
mongos --setParameter httpVerboseLogging=true
slowConnectionThresholdMillis
バージョン 6.3 で追加。
デフォルト: 100
低速のサーバー接続の確立をログに記録する際の時間制限をミリ秒単位で設定します。
接続の確立に
slowConnectionThresholdMillis
パラメーターよりも長い時間がかかる場合、メッセージmsg
フィールドで"Slow connection establishment"
に設定されたイベントがログに追加されます。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
slowConnectionThresholdMillis
を250
ミリ秒に設定します。mongod --setParameter slowConnectionThresholdMillis=250 または、
mongosh
内でsetParameter
コマンドを使用する場合。db.adminCommand( { setParameter: 1, slowConnectionThresholdMillis: 250 } )
connPoolMaxConnsPerHost
デフォルト: 200
グローバル接続プール内の他の
mongod
インスタンスに対する、送信接続用のレガシー接続プールの最大サイズを設定します。プールのサイズによって追加の接続の作成が妨げられることはありませんが、接続プールがconnPoolMaxConnsPerHost
の値を超える接続を保持することは防止されます。注意
パラメーターは TaskExecutor プール内の接続とは別です。 詳しくは
ShardingTaskExecutorPoolMaxSize
を参照してください。ドライバーが接続をプールせず、シャーディングされたクラスターのコンテキストで認証を使用している場合にのみ、この設定を調整してください。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。mongod --setParameter connPoolMaxConnsPerHost=250
connPoolMaxInUseConnsPerHost
レガシー グローバル接続プール内の他の
mongod
インスタンスへの送信接続について、常に使用中の接続の最大数を設定します。デフォルトでは、このパラメータは設定されていません。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。mongod --setParameter connPoolMaxInUseConnsPerHost=100
globalConnPoolIdleTimeoutMinutes
レガシー グローバル接続プール内の接続が閉じられる前にアイドル状態を維持できる時間制限を設定します。
デフォルトでは、このパラメータは設定されていません。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。mongos --setParameter globalConnPoolIdleTimeoutMinutes=10
cursorTimeoutMillis
デフォルト:600000(10分)
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
でのみ利用可能です。タイプ: 整数
デフォルト: 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
、およびプロファイリングの使用を検討してください。コレクションスキャンを行わない場合、管理クエリを含むすべてのデータベースのクエリに影響する可能性があるため、本番環境の
mongod
インスタンスをnotablescan
で実行しないでください。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
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
デフォルト:
true
クライアントから
mongod/mongos
へのインバウンド TCP Fast Open(TFO)接続を受け入れるためのサポートを有効にします。TFO にはクライアントとmongod/mongos
ホスト マシンの両方で次のように TFO がサポートされ、有効である必要があります。- Windows
次の Windows オペレーティング システムは TFO をサポートしています。
Microsoft Windows Server 2016 以降。
Microsoft Windows 10 Update 1607 以降。
- MacOS
- macOS 10.11(El Capitan)以降は TFO をサポートしています。
- Linux
Linux カーネル 3.7 以降を実行している Linux オペレーティング システムは、インバウンド TFO をサポートできます。
インバウンド TFO 接続を有効にするには、
/proc/sys/net/ipv4/tcp_fastopen
の値を設定します。インバウンド TFO 接続のみを有効にするには、
2
を設定します。インバウンド TFO 接続およびアウトバウンド TFO 接続を有効にするには、
3
を設定します。
このパラメータは、ホスト オペレーティング システムが TFO 接続をサポートしていないか、またはサポートするように構成されていない場合、影響はありません。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
tcpFastOpenClient
デフォルト:
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
デフォルト:
1024
TCP Fast Open(TFO)接続を確立する一環として、クライアントは標準の TCP 3 ウェイ ハンドシェイクが完了する前に、有効な TFO クッキーを
mongod/mongos
に送信します。mongod/mongos
は、保留中のすべての TFO 接続に対するキューを 1 つ保持します。tcpFastOpenQueueSize
パラメーターには、保留中の TFO 接続のキューのサイズを設定します。 キューがいっぱいになると、mongod/mongos
はクライアントからの受信リクエストに対して通常の 3 ウェイ ハンドシェイクに戻り、TFO クッキーの存在を無視します。キューのサイズが制限値を下回ると、mongod/mongos
は新しい TFO クッキーの受け入れを開始します。デフォルトのキュー サイズを増やすと、TFO がネットワーク パフォーマンスに与える影響が改善される可能性があります。ただし、キュー サイズが大きいと、過剰な受信 TFO リクエストによってサーバー リソースが枯渇するリスクも高まります。
デフォルトのキューサイズを小さくすると、過剰な受信 TFO リクエストによるリソース サーバーのリソース枯渇のリスクを軽減できます。ただし、キューのサイズが小さいと、ネットワーク パフォーマンスに与える TFO の効果も小さくなる可能性があります。
キューの最小サイズは
0
です。0
のキューは、TFO を効果的に無効にします。
このパラメータは、TFO 接続をサポートしていない、または TFO 接続用に構成されていないホスト オペレーティング システムには影響しません。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
disableJavaScriptJIT
mongod
でのみ利用可能です。MongoDB JavaScript エンジンは、SpiderMonkey を使用します。SpiderMonkey は、スクリプト実行中のパフォーマンスを向上させるためにJIT(Just-in-Time、実行時)コンパイルを実装しています。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
JIT を有効にするには、次の例のように
disableJavaScriptJIT
をfalse
に設定します。db.adminCommand( { setParameter: 1, disableJavaScriptJIT: false } ) 注意
$where
は既存の JavaScript インタープリタ コンテキストを再利用するため、disableJavaScriptJIT
への変更はこれらの操作に対してすぐに有効にならない可能性があります。あるいは、次のオプションを使用して
mongod
インスタンスを開始することにより、起動時に JIT を有効にすることもできます。mongod --setParameter disableJavaScriptJIT=false
indexBuildMinAvailableDiskSpaceMB
バージョン 7.1 で追加。
mongod
でのみ利用可能です。Default: 500 MB
インデックス ビルドに必要な最小使用ディスク領域をメガバイト単位で設定します。
0MB 以上、8TB 以下である必要があります。 0 の場合、最小ディスク容量が無効になります。
使用可能なディスク容量が
indexBuildMinAvailableDiskSpaceMB
未満の場合、新しいインデックスビルドを開始できず、現在のインデックスビルドがキャンセルされます。警告
indexBuildMinAvailableDiskSpaceMB
を増やす場合は、サーバーに使用可能なディスク容量が十分にあることを確認してください。 また、indexBuildMinAvailableDiskSpaceMB
を高く設定しすぎると、使用可能なディスク容量が十分にある場合にインデックスのビルドが不必要に妨げられ、indexBuildMinAvailableDiskSpaceMB
が低く設定される可能性があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
indexBuildMinAvailableDiskSpaceMB
を650 MB に設定します。db.adminCommand( { setParameter: 1, indexBuildMinAvailableDiskSpaceMB: 650 } ) スタートアップ時に
indexBuildMinAvailableDiskSpaceMB
を設定することもできます。 例:mongod --setParameter indexBuildMinAvailableDiskSpaceMB=650
indexMaxNumGeneratedKeysPerDocument
バージョン 5.3 で追加。
デフォルト: 100000
メモリ不足エラーを防ぐために、ドキュメントに対して生成されるキーの最大数を制限します。制限を引き上げることは可能ですが、
indexMaxNumGeneratedKeysPerDocument
パラメーターで指定された数より多くのキーが操作に必要な場合、操作は失敗します。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
maxIndexBuildMemoryUsageMegabytes
mongod
でのみ利用可能です。デフォルト: 200
一度に1つのコレクションで実行されるインデックス構築が消費するメモリ量を、構築の期間中に制限します。指定されたメモリ量は、単一の
createIndexes
コマンドまたはそのシェルヘルパーdb.collection.createIndexes()
を使用して構築されるすべてのインデックス間で共有されます。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
インデックス構築によって消費されるメモリは、WiredTiger キャッシュ メモリとは別です(詳細は
cacheSizeGB
を参照してください)。maxIndexBuildMemoryUsageMegabytes
は、インデックスのビルドが一度に使用するメモリの量の制限を設定します。 これは、インデックス構築プロセスでインデックスのキーを生成およびソートする際のパフォーマンスに影響を与える可能性があります。 メモリ制限を増やすと、インデックス構築中のソート パフォーマンスが向上します。インデックスビルドは、
createIndexes
などのユーザー コマンドまたは最初の同期などの管理プロセスによって開始される場合があります。 どちらもmaxIndexBuildMemoryUsageMegabytes
で設定された制限の対象となります。最初の同期では一度に 1 つのコレクションのみが取り込まれるため、メモリ制限を超えるリスクはありません。ただし、ユーザーが複数のデータベース内の複数のコレクションに対して同時にインデックス構築を開始し、
maxIndexBuildMemoryUsageMegabytes
で設定された制限以上のメモリを消費する可能性があります。Tip
レプリカセットおよびレプリカセット シャードを含むシャーディングされたクラスターへのインデックス構築の影響を最小限に抑えるには、「レプリカセットでのローリング インデックス構築」で説明されているローリング インデックス構築手順を使用してください。
maxIndexBuildMemoryUsageMegabytes
を変更しても、コレクションスキャンがすでに開始されている場合は、進行中のインデックスビルドには影響しません。 ただし、レプリカセットを強制的に再構成すると、コレクションスキャンが再起動され、提供されている最新のmaxIndexBuildMemoryUsageMegabytes
が使用されます。機能の互換性バージョン (fcv)
"4.2"
以降では、インデックス構築でのメモリ制限がすべてのインデックス構築に適用されます。
reportOpWriteConcernCountersInServerStatus
mongod
でのみ利用可能です。デフォルト: false
db.serverStatus()
メソッドとserverStatus
コマンドがopWriteConcernCounters
情報を返すかどうかを決定するブール値のフラグです。[1]mongod --setParameter reportOpWriteConcernCountersInServerStatus=true [1] reportOpWriteConcernCountersInServerStatus
を有効にするとパフォーマンスに悪影響が及ぶ可能性があります。具体的には、TLSなしで実行している場合が該当します。
watchdogPeriodSeconds
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: -1(無効)
ストレージ ノード ウォッチドッグがモニター対象ファイルシステムのステータスをチェックする頻度を決定します。
--dbpath
ディレクトリ--dbpath
ディレクトリ内のjournal
ディレクトリ--logpath
ファイルのディレクトリ--auditPath
ファイルのディレクトリ
watchdogPeriodSeconds
の有効な値は次のとおりです。-1
(デフォルト)、Storage Node Watchdog を無効化もしくは一時停止します、または60以上の整数。
注意
モニター対象ディレクトリのファイルシステムが応答しなくなった場合、 を終了するには、 の値の最大
watchdogPeriodSeconds
2 倍mongod
がかかることがあります監視対象ディレクトリの中に他のボリュームへのシンボリック リンクである場合、Storage Node Watchdog はシンボリックリンクのターゲットの監視は行いません。たとえば、
mongod
がstorage.directoryPerDB: true
(または--directoryperdb
)を使用してデータベース ディレクトリを別のボリュームにシンボリック リンクする場合、Storage Node Watchdog はシンボリック リンクに従ってターゲットを監視することはありません。
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 } )
注意
watchdogPeriodSeconds
スタートアップ時に Storage Node Watchdog が有効になっていない場合、実行時に設定するとエラーが発生します。
警告
tcmallocAggressiveMemoryDecommit
は 8.0 では非推奨です。MongoDB 8.0 は、メモリの断片化と管理を改善する更新バージョンの tcmalloc
を使用します。詳細は tcmalloc のアップグレード を参照してください。メモリを解放してオペレーティングシステムに戻すには、代わりに tcmallocEnableBackgroundThread
の使用を検討してください。
tcmallocEnableBackgroundThread
バージョン8.0の新機能。
タイプ: ブール値
デフォルト: true
true
に設定すると、tcmallocEnableBackgroundThread
はメモリを定期的にオペレーティングシステムに解放するバックグラウンドスレッドを作成します。tcmallocReleaseRate
の値によって、バックグラウンドスレッドがメモリを解放する速度が 1 秒あたりのバイト単位で決まります。注意
tcmallocEnableBackgroundThread
がtrue
でtcmallocReleaseRate
が0
の場合でも、MongoDB はメモリを解放します。メモリ使用量を改善するには、デフォルト値の
true
を使用することをお勧めします。パフォーマンスとメモリ管理の改善の詳細については、「アップグレードされた TCMalloc」を参照してください。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。次の操作では、
tcmallocEnableBackgroundThread
にfalse
を設定します。mongod --setParameter "tcmallocEnableBackgroundThread=false"
tcmallocReleaseRate
バージョン8.0で変更。
デフォルト: 0
TCMAllocのリリースレートをバイト/秒で指定します。リリースレートとは、MongoDB が未使用のメモリをシステムに解放する速度を指します。
tcmallocReleaseRate
が0
に設定されている場合、MongoDB はメモリを解放してシステムに戻しません。この値を大きくするとメモリの戻りが速くなり、小さくするとメモリの戻りが遅くなります。注意
tcmallocEnableBackgroundThread
がtrue
でtcmallocReleaseRate
が0
の場合でも、MongoDB はメモリを解放します。MongoDB8.0 以降では、メモリ解放よりも
tcmallocReleaseRate
0
CPU パフォーマンスを優先する tcmalloc のアップグレード により、 のデフォルト値は に削減されます。以前のバージョンでは、 MongoDBは次のような古いバージョンの
tcmalloc
を使用していました。デフォルトの
tcmallocReleaseRate
を1
に設定します。0
から10
までのtcmallocReleaseRate
の値を受け入れました。
重要
Windows 、PPC、または s 390 x などの
tcmalloc-gperf
を使用するプラットフォームでMongoDBを実行すると、tcmallocReleaseRate
は以前のMongoDBバージョンと同じ動作をします。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
実行時にリリースレートを変更するには、 コマンドを使用します。 (例:
setParameter
)。db.adminCommand( { setParameter: 1, tcmallocReleaseRate: 2097152 } ) 起動時に
tcmallocReleaseRate
を設定することもできます。例:mongod --setParameter "tcmallocReleaseRate=5.0"
fassertOnLockTimeoutForStepUpDown
バージョン 5.3 で追加。
デフォルト: 15 秒
昇格または降格のリクエストを受け取ったサーバーが、タイムアウト内に応答できない場合(サーバーのディスク障害などにより)にサーバーを終了できるようにします。これにより、クラスターは新しいプライマリ ノードを正常に選択でき、引き続き利用ができます。
fassertOnLockTimeoutForStepUpDown
のデフォルトは 15 秒です。Fassert が発生したノードを無効にするにはfassertOnLockTimeoutForStepUpDown=0
を設定します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例えでは、ノードの fassert を無効にします。
mongod --setParameter fassertOnLockTimeoutForStepUpDown=0
ingressAdmissionControllerTicketPoolSize
mongod
でのみ利用可能です。デフォルト:
1000000
イングレスキューで同時に許可される操作の最大数を制御します。デフォルト値の
1000000
は、無制限の数値同等値を表し、MongoDB が許可するデフォルトの最大接続数まですべての受信操作を許可します。キューで待機している操作がある間にこの値を増やすと、新しいプールサイズが許容する限りの操作がブロック解除されます。この値を減らしても、現在実行中の操作はブロックされませんが、受信される制御可能な操作は、チケットが空くまでブロックされます。
mongod --setParameter ingressAdmissionControllerTicketPoolSize=100000 警告
MongoDB エンジニアの指示がない限り、
ingressAdmissionControllerTicketPoolSize
を変更することは避けてください。この設定は、WiredTiger と MongoDB の両方に大きな影響を与えます。
ログ パラメータ
logLevel
ログの冗長度を表す
0
から5
までの整数を指定します。5
が最も冗長度が高いことを表します。[2]デフォルトの
logLevel
は0
(情報)です。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
logLevel
を2
に設定します。db.adminCommand( { setParameter: 1, logLevel: 2 } ) [2] MongoDB バージョン 4.2 以降では、ログ メッセージにデバッグの冗長レベル(1 ~ 5)が含まれるようになりました。たとえば、冗長レベルが 2 の場合、MongoDB は D2
をログに出力します。以前のバージョンでは、MongoDB のログ メッセージではデバッグ レベルにD
しか指定されていませんでした。
logComponentVerbosity
ログ メッセージのさまざまなコンポーネントの冗長レベルを設定します。冗長レベルにより、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
に対して冗長レベルを指定しない場合の、storage.journal
。storage.recovery
に対して冗長レベルを指定しない場合の、storage.recovery
。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、次の例では、
default verbosity level
を1
に、query
を2
に、storage
を2
に、storage.journal
を1
に設定します。db.adminCommand( { setParameter: 1, logComponentVerbosity: { verbosity: 1, query: { verbosity: 2 }, storage: { verbosity: 2, journal: { verbosity: 1 } } } } ) また、起動時にパラメータ
logComponentVerbosity
を設定して、冗長レベル ドキュメントを string として渡すこともできます。mongod --setParameter "logComponentVerbosity={command: 3}" mongosh
には、単一のコンポーネントのログ レベルを設定するためのdb.setLogLevel()
} も用意されています。 ログの冗長レベルを設定するさまざまな方法については、「ログの冗長レベルの構成 」を参照してください。[3] MongoDB バージョン 4.2 以降では、ログ メッセージにデバッグの冗長レベル(1 ~ 5)が含まれるようになりました。たとえば、冗長レベルが 2 の場合、MongoDB は D2
をログに出力します。以前のバージョンでは、MongoDB のログ メッセージではデバッグ レベルにD
しか指定されていませんでした。
maxLogSizeKB
型: 非負整数
デフォルト: 10
ログ エントリの個々の属性フィールドの最大サイズをキロバイト単位で指定します。この制限を超える属性は切り捨てられます。
切り捨てられた属性フィールドは、
maxLogSizeKB
までのフィールド コンテンツを出力し、その制限を超えるフィールド コンテンツを削除して、有効な JSON 形式を保持します。切り捨てられた属性を含むログ エントリでは、ログ エントリの末尾にtruncated
オブジェクトが追加されます。詳細については、「ログメッセージの切り捨て」を参照してください。
値が
0
の場合は、切り捨てを完全に無効にします。このパラメーターでは負の値は無効です。警告
大きな値を使用するか、
0
を指定して切り捨てを無効にすると、システムのパフォーマンスが悪くなり、データベース操作に悪影響を及ぼす可能性があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、最大ログ行サイズを
20
キロバイトに設定します。mongod --setParameter maxLogSizeKB=20
profileOperationResourceConsumptionMetrics
mongod
でのみ利用可能です。タイプ: ブール値
デフォルト: false
操作でリソース消費メトリクスを収集し、低速クエリ ログで報告するかどうかを決定するフラグ。 プロファイリングを有効にすると、これらのメトリクスも含まれます。
true
に設定されている場合、冗長度がexecutionStats
以上のときにexplain
コマンドの実行により operationMetrics が返されます。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
quiet
quiet ロギング モードを設定します。
1
の場合、mongod
は quiet ロギング モードになり、次のイベントおよびアクティビティはログに記録されません。接続イベント
drop
コマンド、dropIndexes
コマンド、validate
コマンド、およびレプリケーション同期アクティビティ
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
quiet
パラメーターに1
を設定する次の例えを考えてみます。db.adminCommand( { setParameter: 1, quiet: 1 } )
redactClientLogData
タイプ: ブール値
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
ロギングする前に、特定のログ イベントに付随するメッセージをリダクションするには、
mongod
またはmongos
を構成します。これにより、データベースに格納されている機密性が高い可能性のあるデータをプログラムが診断ログに書き込むことを防止します。エラー コードや操作 コード、行番号、ソース ファイル名などのメタデータは、引き続きログに表示されます。規制要件へのコンプライアンスの補助に、
redactClientLogData
を保管時の暗号化および TLS/SSL(トランスポート暗号化)と組み合わせて使用します。スタートアップ時にログのリダクションを有効にするには、次のいずれかを実行します。
次のように、
--redactClientLogData
オプションでmongod
を開始します。mongod --redactClientLogData 構成ファイルで
security.redactClientLogData
オプションを設定します。security: redactClientLogData: true ...
起動時に
--setParameter
redactClientLogData
を設定するために オプションを使用することはできません。実行中の
mongod
またはmongos
でログ リダクションを有効にするには、次のコマンドを使用します。db.adminCommand( { setParameter: 1, redactClientLogData : true } )
redactEncryptedFields
バージョン 6.1.0 の新機能。
タイプ: ブール値
デフォルト:
true
すべてのログ メッセージからの暗号化された
Binary
データのフィールド値を編集するようにmongod
とmongos
を構成します。redactClientLogData
パラメーターまたはsecurity.redactClientLogData
設定がfalse
に設定され、redactEncryptedFields
がtrue
(デフォルト)に設定されている場合、暗号化されたフィールドはすべてのログ メッセージから削除されます。redactClientLogData
パラメーターまたはsecurity.redactClientLogData
設定がtrue
に設定されている場合、redactEncryptedFields
設定に関係なく、すべてのフィールドが編集されます。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
traceExceptions
デバッグで使用するために、すべてのデータベース例外およびソケット C++ 例外の完全なソースコード スタック トレースをログに記録するように
mongod
を構成します。true
の場合、mongod
は完全なスタック トレースをログに記録します。このパラメーターは実行時にのみ使用できます。 パラメーターを設定するには、
setParameter
コマンドを使用します。traceExceptions
にtrue
を設定する次の例を考えてみます。db.adminCommand( { setParameter: 1, traceExceptions: true } )
suppressNoTLSPeerCertificateWarning
タイプ: ブール値
デフォルト: false
デフォルトでは、
mongod
mongos
TLS/SSL が有効 になっている または とnet.ssl.allowConnectionsWithoutCertificates
:true
により、クライアントは警告をログに記録しながら検証のための証明書を提供せずに接続できます。これらの警告を抑制するには、suppressNoTLSPeerCertificateWarning
を1
またはtrue
に設定します。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。次の操作では、
suppressNoTLSPeerCertificateWarning
にtrue
を設定します。db.adminCommand( { setParameter: 1, suppressNoTLSPeerCertificateWarning: true} )
enableDetailedConnectionHealthMetricLogLines
バージョン 7.0 で追加。
タイプ: ブール値
デフォルト: true
クラスター接続の正常性メトリクスに関連する特定のログ メッセージを有効にするかどうかを決定します。
enableDetailedConnectionHealthMetricLogLines
がfalse
に設定されている場合、次のログ メッセージはオフになりますが、MongoDB は引き続きクラスター接続の正常性メトリクスに関するデータを収集します。ログ メッセージ説明ピアからの TLS 接続を受け入れました
受け付けた Ingress 接続での TLS ハンドシェイク中に、サーバーがピア証明書を正常に解析したことを示します。
Ingress TLS ハンドシェイクが完了しました
Ingress 接続での TLS ハンドシェイクが完了したことを示します。
Hello 処理が完了しました
受信クライアント接続で初期接続ハンドシェイクが完了したことを示します。
MongoDB は最初の
hello
コマンドでのみログ メッセージを表示します。認証メトリクス レポート
認証の交信のステップの完了を指定します。
セッションの開始または認証ハンドシェイク以降、Ingress 接続で最初のコマンドを受信しました
ハンドシェイクの一部ではない最初のコマンドを Ingress 接続が受信したことを示します。
ネットワーク応答の送信時間が遅くなっています
Ingress 接続を介してクライアントに応答を返すのにかかる時間(ミリ秒単位)が、
slowMS
サーバー パラメーターで定義された時間よりも長くかかることを示します。OCSP リクエストのクライアント側での検証が完了しました
Egress TLS 接続が確立されたときにピアが TLS ハンドシェイクに対して OCSP 応答を含めない場合、サーバーは認証局に OCSP 要求を送信する必要があります。MongoDB は、認証局が OCSP 応答を受信したときに、このログメッセージを書き込みます。
接続の確立が遅くなっています
Ingress 接続を介してクライアントに応答を返すのにかかる時間が、
slowConnectionThresholdMillis
パラメーターで指定されたしきい値よりも長くかかることを示します。 MongoDBは、接続確立がタイムアウトしたときにもこのログメッセージを発行します。接続の取得待ちの間に操作がタイムアウトしました
Egress 接続の取得待ちの間に操作がタイムアウトしたことを示します。
リモート操作用の接続を取得し、通信での書き込みを完了しました
接続が確立された瞬間から起算して、サーバーが Egress 接続で送信リクエストを書き込むのに 1 ミリ秒以上かかったことを示します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
診断パラメータ
MongoDB エンジニアが MongoDB サーバーの動作を簡単に分析できるように、MongoDB は定期的にサーバーの統計情報を診断ファイルに記録します。
mongod
の場合、診断データファイルは mongod
インスタンスの --dbpath
または storage.dbPath
配下のdiagnostic.data
ディレクトリに保存されます
mongos
の場合、診断データファイルは、デフォルトで、mongos
インスタンスの --logpath
または systemLog.path
ディレクトリ配下ディレクトリに保存されます。診断データディレクトリは、ログ パスのファイル拡張子を切り捨てて、残りの名前に diagnostic.data
を連結することによって命名します。
例えば、mongos
に --logpath
/var/log/mongodb/mongos.log.201708015
がある場合、データディレクトリは /var/log/mongodb/mongos.diagnostic.data/
ディレクトリです。mongos
に別の診断データディレクトリを指定するには、diagnosticDataCollectionDirectoryPath
パラメーターを設定します。
次のパラメータは診断データ取得(FTDC)をサポートします。
注意
診断データの取得間隔および最大サイズのデフォルト値は、パフォーマンスとストレージ サイズへの影響を最小限に抑えながら、MongoDB エンジニアに有用なデータを提供するために選択されています。通常、これらの値は、特定の診断目的のために MongoDB エンジニアから要求がある場合にのみ変更する必要があります。
diagnosticDataCollectionEnabled
タイプ: ブール値
デフォルト: true
診断目的でデータの収集とログの記録を有効にするかどうかを決定します。診断用ログの記録はデフォルトで有効になっています。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、次のようにすると、診断コレクションが無効になります。
mongod --setParameter diagnosticDataCollectionEnabled=false
diagnosticDataCollectionDirectoryPath
mongos
でのみ利用可能です。タイプ: string
警告
フルタイム診断データ取得(FTDC)が
diagnosticDataCollectionEnabled
で無効になっている場合、またはsystemLog.destination
がsyslog
に設定されている場合、diagnosticDataCollectionDirectoryPath
を設定した後にmongos
を再起動する必要があります。mongos
の診断ディレクトリを指定します。ディレクトリが存在しない場合は、mongos
がディレクトリを作成します。指定されていない場合、診断データディレクトリは、
mongos
インスタンスの--logpath
ファイル拡張子またはsystemLog.path
ファイル拡張子を切り捨て、diagnostic.data
を連結することによって命名されます。たとえば、
mongos
が--logpath /var/log/mongodb/mongos.log.201708015
を保有している場合、診断データディレクトリは/var/log/mongodb/mongos.diagnostic.data/
になります。mongos
が指定されたディレクトリを作成できない場合、そのインスタンスの診断データ取得は無効になります。パス上に同じ名前のファイルが既に存在する場合、またはプロセスにディレクトリを作成する権限がない場合、mongos
は指定されたディレクトリを作成できない可能性があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
diagnosticDataCollectionDirectorySizeMB
タイプ: 整数
デフォルト:
200
(シャーディングされたクラスターでは400
)diagnostic.data
ディレクトリの最大サイズをメガバイト単位で指定します。 ディレクトリのサイズがこの数を超えると、ファイル名のタイムスタンプに基づいて、ディレクトリ内の最も古い診断ファイルが自動的に削除されます。バージョン 8.0 で変更: シャーディングされたクラスターで使用される
mongos
およびmongod
インスタンスにおいて、diagnosticDataCollectionDirectorySizeMB
のデフォルト値は 400 MB です。レプリカセットまたはスタンドアロンサーバーとして使用されるmongod
インスタンスのデフォルト値は 200 MB です。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、次の例では、ディレクトリの最大サイズを
250
メガバイトに設定します。mongod --setParameter diagnosticDataCollectionDirectorySizeMB=250 diagnosticDataCollectionDirectorySizeMB
の最小値は10
メガバイトです。diagnosticDataCollectionDirectorySizeMB
は、最大診断ファイルサイズdiagnosticDataCollectionFileSizeMB
より大きくなければなりません。
diagnosticDataCollectionFileSizeMB
タイプ: 整数
デフォルト: 10
各診断ファイルの最大サイズをメガバイト単位で指定します。 ファイルの最大ファイル サイズを超える場合、MongoDB は新しいファイルを作成します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、次の例では、各診断ファイルの最大サイズを
20
メガバイトに設定します。mongod --setParameter diagnosticDataCollectionFileSizeMB=20 diagnosticDataCollectionFileSizeMB
の最小値は1
メガバイトです。
diagnosticDataCollectionPeriodMillis
タイプ: 整数
デフォルト: 1000
診断データを収集する間隔をミリ秒単位で指定します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、次の例では間隔を
5000
ミリ秒(5 秒)に設定します。mongod --setParameter diagnosticDataCollectionPeriodMillis=5000 diagnosticDataCollectionPeriodMillis
の最小値は100
ミリ秒です。
レプリケーションと整合性
disableSplitHorizonIPCheck
バージョン 5.0.0 の新機能。
タイプ: ブール値
デフォルト: false
スプリットホライズン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 このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。setParameter: disableSplitHorizonIPCheck: true
enableOverrideClusterChainingSetting
バージョン 5.0.2 の新機能。
タイプ: ブール値
デフォルト: false
enableOverrideClusterChainingSetting
がtrue
の場合、レプリカセットのセカンダリノードは、settings.chainingAllowed
がfalse
であっても、他のセカンダリ ノードからデータを複製できます。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。たとえば、 インスタンスの を に設定するには、次の手順に従います。
enableOverrideClusterChainingSetting
mongod
true
mongod --setParameter enableOverrideClusterChainingSetting=true
logicalSessionRefreshMillis
タイプ: 整数
デフォルト: 300000(5 分)
キャッシュがメイン セッション ストアに対して論理セッション レコードをリフレッシュする間隔(ミリ秒単位)。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。logicalSessionRefreshMillis
mongod
たとえば、10 インスタンスの を 分に設定するには、次の手順に従います。mongod --setParameter logicalSessionRefreshMillis=600000
localLogicalSessionTimeoutMinutes
タイプ: 整数
デフォルト: 30
警告
テスト目的のみ
このパラメーターはテスト目的のみで使用するものであり、本番環境での使用を目的としたものではありません。
セッションが最後に使用されてからアクティブな状態である時間(分単位)。クライアントから新しい読み取りもしくは書き込み操作を受信していないセッション、またはこのしきい値内に
refreshSessions
で更新されていないセッションは、キャッシュからクリアされます。 期限切れのセッションに関連付けられた状態は、サーバーによっていつでもクリーンアップされる可能性があります。このパラメーターは、それが設定されているインスタンスにのみ適用されます。レプリカセットとシャーディングされたクラスターにこのパラメーターを設定するには、すべてのノードに同じ値を指定する必要があります。そうでない場合は、セッションが正しく機能しません。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。localLogicalSessionTimeoutMinutes
たとえば、テスト用mongod
20インスタンスの を 分に設定するには、次の手順を実行します。mongod --setParameter localLogicalSessionTimeoutMinutes=20
maxAcceptableLogicalClockDriftSecs
タイプ: 整数
デフォルト:31536000(1年)
現在のクラスター時間を進める最大量。具体的には、
maxAcceptableLogicalClockDriftSecs
はクラスター時間の新しい値と現在のクラスター時間の最大差です。 クラスター時間は、操作の順序付けに使用される論理時間です。新しいクラスター時間が現在のクラスター時間と
maxAcceptableLogicalClockDriftSecs
を超えて異なる場合、クラスター時間を新しい値に進めることはできません。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。maxAcceptableLogicalClockDriftSecs
mongod
たとえば、15 インスタンスの を 分に設定するには、次の手順に従います。mongod --setParameter maxAcceptableLogicalClockDriftSecs=900
maxSessions
タイプ: 整数
デフォルト: 1000000
キャッシュできるセッションの最大数です。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。たとえば、 インスタンスの を に設定するには、次の手順に従います。
maxSessions
mongod
1000mongod --setParameter maxSessions=1000
oplogBatchDelayMillis
バージョン 6.0 で追加。
タイプ: 整数
デフォルト: 0
セカンダリ ノードで oplog 操作のバッチの適用を遅延させる時間(ミリ秒数)。デフォルトでは、
oplogBatchDelayMillis
は0
であり、oplog バッチが遅延なく適用されることを意味します。遅延がない場合、MongoDB は頻繁に小さな oplog バッチをセカンダリに適用することがあります。oplogBatchDelayMillis
を増やすと、MongoDB はセカンダリに oplog バッチを適用する頻度が低くなり、各バッチに含まれるデータの量が増えます。これにより、セカンダリの IOPS は低減しますが、書込み保証(write concern)"majority"
付きの書き込みのレイテンシは増加します。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。たとえば、
mongod
インスタンスのoplogBatchDelayMillis
を 20 ミリ秒に設定するには、次のコマンドを実行します。mongod --setParameter oplogBatchDelayMillis=20
periodicNoopIntervalSecs
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 10
各ノードでの noop の書込み (write) 間隔(秒単位)。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。注意
MongoDB Atlas クラスターのこの値を変更するには、Atlas サポートに問い合わせる必要があります。
次の例では、起動時に
periodicNoopIntervalSecs
を 1 秒に設定します。mongod --setParameter periodicNoopIntervalSecs=1
storeFindAndModifyImagesInSideCollection
バージョン 5.0 で追加
タイプ: ブール値
デフォルト: 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
でのみ利用可能です。タイプ: 整数
デフォルト: 30
レコードがクリーンアップの対象となるまでに
transactions
コレクションにトランザクションレコードが存在する最低限の期間です。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。TransactionRecordMinimumLifetimeMinutes
mongod
たとえば、20 インスタンスの を 分に設定するには、次の手順に従います。mongod --setParameter TransactionRecordMinimumLifetimeMinutes=20
enableFlowControl
タイプ: ブール値
デフォルト: true
セカンダリ ノードの
majority committed
ラグを構成可能上限以下に保つことを目的として、プライマリが書き込みを行うレートを制御するメカニズムを有効または無効にします。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
注意
フロー制御を有効にするには、レプリカセットおよびシャーディングされたクラスターは、
4.2
の FCV(featureCompatibilityVersion)を有し、かつ読み取り保証(read concern)がmajority enabled
である必要があります。つまり、FCV が4.2
でない場合や、読み取り保証(read concern)の過半数が無効になっている場合、フロー制御を有効にしても効果はありません。
flowControlTargetLagSeconds
タイプ: 整数
デフォルト: 10
フロー制御で実行する場合に指標となる最大
majority committed
ラグです。フロー制御が有効になっている場合、このメカニズムではmajority committed
ラグを指定された秒数未満に維持しようとします。フロー制御が無効になっている場合、このパラメーターによる影響はありません。0 より大きい値を指定しなければなりません。
一般的には、デフォルト設定のままで十分ですが、デフォルト値を変更する場合、値を増やすのではなく減らした方がより有用な場合があります。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
flowControlWarnThresholdSeconds
タイプ: 整数
デフォルト: 10
フロー制御メカニズムが過半数のコミット ポイントが移動していないことを検出してからログに警告を記録するまでの待ち時間。
指定する値は 0 以上である必要があり、0 の場合は警告が無効になります。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
initialSyncTransientErrorRetryPeriodSeconds
タイプ: 整数
デフォルト: 86400
一時的なネットワークエラーによって中断された場合に、最初の同期を実行するセカンダリがプロセスの再開を試みる時間(秒単位)。デフォルト値は 24 時間に相当します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
initialSyncSourceReadPreference
mongod
でのみ利用可能です。タイプ: string
最初の同期を実行するための推奨ソースです。次のいずれかの読み込み設定 (read preference) モードを指定します。
primaryPreferred
(レプリカセットのノードに投票するためのデフォルト値)nearest
(新しく追加されたレプリカセット ノードまたは投票権のないレプリカセット ノードのデフォルト)
レプリカセットで
chaining
が無効になっている場合、デフォルトのinitialSyncSourceReadPreference
読み込み設定(read preference)モードはprimary
です。タグセットまたは
maxStalenessSeconds
をinitialSyncSourceReadPreference
に指定することはできません。mongod
が指定された読み込み設定 (read preference) に基づいて同期ソースを見つけられない場合は、エラーをログに記録し、最初の同期プロセスを再開します。10
回試行した後に最初の同期プロセスを完了できない場合、mongod
はエラーで終了します。同期ソースの選択の詳細については、「最初の同期ソースの選択」を参照してください。最初の同期ソースを選択すると、
initialSyncSourceReadPreference
はレプリカセットのsettings.chainingAllowed
設定よりも優先されます。 レプリカセット メンバーが最初の同期を正常に完了した後、レプリケーション同期ソースを選択する際は、chainingAllowed
の値に従います。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
initialSyncMethod
バージョン 5.2 で追加。
mongod
でのみ利用可能です。タイプ: string
デフォルト:
logical
MongoDB Enterprise でのみ利用可能です。
最初の同期に使用される方法です。
論理的な最初の同期を使用するには、
logical
に設定します。ファイル コピー ベースの最初の同期を使用するには、fileCopyBased
に設定します。このパラメーターは、指定されたノードの同期方法にのみ影響します。このパラメーターを 1 つのレプリカセット ノードに設定しても、他のレプリカセット ノードの同期方法には影響しません。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
maxNumSyncSourceChangesPerHour
バージョン 5.0 で追加
タイプ: 整数
デフォルト: 3
同期ソースは、同期ソースが更新されるたび、およびノードが oplog エントリのバッチを取得するたびに評価されます。1 時間に
maxNumSyncSourceChangesPerHour
を超えるソース変更があった場合、ノードはその同期ソースの再評価を一時的に停止します。このパラメーターに大きい値を設定すると、ノードが不要なソース変更を行う可能性があります。このパラメーターは、ノードが同期ソースを持っていない場合、ノードが別のノードから同期を開始するのを防ぐものではありません。同期ソースが無効になると、ノードは再評価を行います。同様に、プライマリが変更されてチェーニングが無効になっている場合、ノードは新しいプライマリと同期するように更新されます。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
oplogFetcherUsesExhaust
mongod
でのみ利用可能です。タイプ: ブール値
デフォルト: true
ストリーミングレプリケーションを有効または無効にします。ストリーミングレプリケーションを有効にするには、値を
true
に設定します。ストリーミングレプリケーションを無効にするには、値を
false
に設定します。無効にすると、セカンダリはソースから同期のリクエストを発行して応答を待つことで、oplog エントリのバッチを取得します。これには、oplog エントリのバッチごとにネットワーク上の往復が必要です。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
oplogInitialFindMaxSeconds
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 60
データ同期中、レプリカセットのノードが
find
コマンドの完了まで待機する最長時間(秒)です。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
replWriterThreadCount
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 16
複製された操作を並列に適用するために使用するスレッドの最大数。値の範囲は 1 から 256 までです。ただし、使用されるスレッドの最大数は、使用可能なコア数の 2 倍に制限されます。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
replWriterMinThreadCount
バージョン 5.0 で追加
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 0
複製された操作を並列に適用するために使用するスレッドの最小数。値の範囲は 0 から 256 までです。
replWriterMinThreadCount
はスタートアップでのみ設定でき、setParameter
コマンドでこの設定を変更することはできません。レプリケーション操作の並列適用では最大
replWriterThreadCount
のスレッドが使用されます。replWriterMinThreadCount
がreplWriterThreadCount
未満の値で構成されている場合、スレッド プール内のスレッドの合計数がreplWriterMinThreadCount
になるまで、スレッド プールはアイドル スレッドをタイムアウトします。replWriterMinThreadCount
は、replWriterThreadCount
以下の値で構成する必要があります。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
rollbackTimeLimitSecs
mongod
でのみ利用可能です。型: 64 ビット整数
デフォルト: 86400(1 日)
ロールバックできるデータの最大経過時間。このパラメーターでは負の値は無効です。
ロールバック対象インスタンスの oplog が終了してから、共通点(ソース ノードとロールバック対象ノードが同じデータを持っていた最後のポイント)の後の最初の操作までの時間がこの値を超えると、ロールバックは失敗します。
実質的に無制限のロールバック期間を設定するには、値を
2147483647
に設定します。これは許容される最大値であり、約 68 年に相当します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
waitForSecondaryBeforeNoopWriteMS
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 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(16 MB)から 104857600(100 MB)までです。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、oplog アプリケーションのバッチ サイズを制限するために、
replBatchLimitBytes
を64 MB に設定しています。mongod --setParameter replBatchLimitBytes=67108864 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, replBatchLimitBytes: 64 * 1024 * 1024 } )
mirrorReads
mongod
でのみ利用可能です。型: ドキュメント
デフォルト:
{ samplingRate: 0.01, maxTimeMS: 1000 }
mongod
インスタンスのミラーリングされた読み取り の設定を指定します。設定が有効になるのは、そのノードがプライマリである場合のみです。パラメーター
mirrorReads
は、次のフィールドを含む JSON document を受け取ります。フィールド説明samplingRate
ミラーリングをサポートする操作のサブセットを、選択可能なセカンダリ(具体的には
priority greater than 0
)のサブセットへミラーリングするために使用するサンプリング レート。つまり、プライマリは、指定されたサンプリング レートで選択可能な各セカンダリに読み取りをミラーリングします。有効な値は次のとおりです。
0.0
ミラーリングをオフにします。
1.0
プライマリは、ミラーリングをサポートするすべての操作を、選挙可能な各セカンダリにミラーリングします。
0.0
から1.0
までの数字(両端を含まない)プライマリは、選択可能な各セカンダリを指定されたレートでランダムにサンプリングし、ミラーリングされた読み取りを送信します。
たとえば、プライマリと 2 つの選択可能なセカンダリがあり、サンプリングレートが
0.10
のレプリカセットでは、プライマリは選択可能な各セカンダリに対して 10% のサンプリングレートで読み取りをミラーリングします。これにより、ある読み取りは一方のセカンダリにミラーリングされ、もう一方のセカンダリにはミラーリングされない、または両方にミラーリングされる、もしくはどちらにもミラーされない場合があります。つまり、プライマリがミラーリング可能な100
の操作を受け取った場合、サンプリングレートが0.10
では、一方のセカンダリには8
個の読み取りが、もう一方のセカンダリには13
個の読み取りがミラーリングされたり、それぞれに10
個の読み取りがミラーリングされたりという結果になります。デフォルト値は
0.01
です。maxTimeMS
ミラーリングされた読み取りの最大時間(ミリ秒単位)。デフォルト値は
1000
です。ミラーリングされた読み取りの
maxTimeMS
は、ミラーリングされる元の読み取りのmaxTimeMS
とは異なります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
構成ファイルから、またはコマンドラインで を指定する場合は、
mirrorReads
ドキュメントを引用符で囲みます。たとえば、次の例では、コマンドラインからミラーリング読み取りのサンプリングレートを
0.10
に設定します。mongod --setParameter mirrorReads='{ samplingRate: 0.10 }' または、構成ファイルに次のように指定します。
setParameter: mirrorReads: '{samplingRate: 0.10}' または、実行中の
setParameter
mongosh
に接続されている セッションでmongod
コマンドを使用する場合は、ドキュメントを引用符で囲みませ ん 。db.adminCommand( { setParameter: 1, mirrorReads: { samplingRate: 0.10 } } )
allowMultipleArbiters
バージョン 5.3 で追加。
mongod
でのみ利用可能です。タイプ: ブール値
デフォルト: false
レプリカセットで複数のアービタの使用を許可するかどうかを指定します。
複数のアービタの使用は推奨されません。
アービタが複数あると、過半数の書込み保証(write concern)を信頼して使用することができません。MongoDB は、メンバーシップの過半数を計算する際にアービタをカウントしますが、アービタはデータを保存しません。複数のアービタを含めると、データを含む大多数のノードに書き込みが複製される前に、過半数の書込み保証(write concern)操作が成功を返すことが可能です。
複数のアービタにより、レプリカセットにデータ レプリケーション用の十分なセカンダリがない場合でも、レプリカセットは書き込みを受け入れることができます。
詳細については、「複数のアービタに関する懸念」を参照してください。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。mongod --setParameter allowMultipleArbiters=true
シャーディング パラメータ
analyzeShardKeyCharacteristicsDefaultSampleSize
バージョン 7.0 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 10000000
analyzeShardKey
を実行するときにsampleRate
とsampleSize
が設定されていない場合、シャードキー特性メトリクスを計算するときにサンプリングするドキュメントの数を指定します。0
より大きくする必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、スタートアップ時に
analyzeShardKeyCharacteristicsDefaultSampleSize
に10000
を設定します。mongod --setParameter analyzeShardKeyCharacteristicsDefaultSampleSize=10000 実行中に、
setParameter
コマンドを使用してパラメーターを設定または変更できます。db.adminCommand( { setParameter: 1, analyzeShardKeyCharacteristicsDefaultSampleSize: 10000 } )
analyzeShardKeyNumMostCommonValues
バージョン 7.0 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 5
返却する最も一般的なシャードキー値の数を指定します。コレクションに含まれる一意のシャードキーの数がこの値より少ない場合、
analyzeShardKeyNumMostCommonValues
はその最も一般的な値の数を返します。0
より大きく、1000
以下である必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、スタートアップ時に
analyzeShardKeyNumMostCommonValues
に3
を設定します。mongod --setParameter analyzeShardKeyNumMostCommonValues=3 実行中に、
setParameter
コマンドを使用してパラメーターを設定または変更できます。db.adminCommand( { setParameter: 1, analyzeShardKeyNumMostCommonValues: 3 } )
analyzeShardKeyNumRanges
バージョン 7.0 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 100
シャードキー範囲のホットネス(アクセス頻度)を計算するときに、シャードキースペースを分割する範囲の数を指定します。
0
より大きく、10000
以下である必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、スタートアップ時に
analyzeShardKeyNumRanges
に50
を設定します。mongod --setParameter analyzeShardKeyNumRanges=50 実行中に、
setParameter
コマンドを使用してパラメーターを設定または変更できます。db.adminCommand( { setParameter: 1, analyzeShardKeyNumRanges: 50 } )
analyzeShardKeyMonotonicityCorrelationCoefficientThreshold
バージョン 7.0 で追加。
mongod
でのみ利用可能です。型: double
デフォルト: 0.7
シャードキーが挿入順で単調に変化しているかを判断するために使用される
RecordId
相関係数のしきい値を指定します。0
より大きく、1
以下である必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、スタートアップ時に
analyzeShardKeyMonotonicityCorrelationCoefficientThreshold
に1
を設定します。mongod --setParameter analyzeShardKeyMonotonicityCorrelationCoefficientThreshold=1 実行中に、
setParameter
コマンドを使用してパラメーターを設定または変更できます。db.adminCommand( { setParameter: 1, analyzeShardKeyMonotonicityCorrelationCoefficientThreshold: 1 } )
autoMergerIntervalSecs
バージョン 7.0 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 3600
AutoMerger が有効な場合、自動マージのラウンド間隔(秒単位)を指定します。デフォルト値は 3600 秒(1 時間)です。
autoMergerIntervalSecs
は、コンフィギュレーションサーバーでのみ設定できます。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、起動時に
autoMergerIntervalSecs
を 7200 秒(2 時間)に設定します。mongod --setParameter autoMergerIntervalSecs=7200 実行中に、
setParameter
コマンドを使用してパラメーターを設定または変更できます。db.adminCommand( { setParameter: 1, autoMergerIntervalSecs: 7200 } )
autoMergerThrottlingMS
バージョン 7.0 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 15000
AutoMerger が有効な場合、同じコレクションで AutoMerger によって開始されるマージ間の最小時間(ミリ秒単位)を指定します。
autoMergerThrottlingMS
は、コンフィギュレーションサーバーでのみ設定できます。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、起動時に
autoMergerThrottlingMS
を 60000 ミリ秒(1 分)に設定します。mongod --setParameter autoMergerThrottlingMS=60000 実行中に、
setParameter
コマンドを使用してパラメーターを設定または変更できます。db.adminCommand( { setParameter: 1, autoMergerThrottlingMS: 60000 } )
balancerMigrationsThrottlingMs
バージョン 7.0 の新機能(6.3.1、6.0.6、5.0.18 以降でも利用可能)
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 1000
連続する 2 つのバランシング ラウンド間隔の最小時間を指定します。これにより、バランシング レートを調整できます。このパラメーターは、コンフィギュレーションサーバー ノードでのみ有効です。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、起動時に
balancerMigrationsThrottlingMs
を 2000 ミリ秒に設定しています。mongod --setParameter balancerMigrationsThrottlingMs=2000 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, balancerMigrationsThrottlingMs: 2000 } )
chunkDefragmentationThrottlingMS
バージョン 5.3 で追加。
タイプ: 整数
デフォルト: 0
シャーディングされたコレクション内のチャンクがデフラグされるときに、バランサーによって実行される連続した分裂コマンドとマージ コマンド間の最小時間間隔(ミリ秒単位)を指定します。
chunkDefragmentationThrottlingMS
で、分裂コマンドと結合コマンドのレートを制限します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
chunkDefragmentationThrottlingMS
を10
ミリ秒に設定します。mongod --setParameter chunkDefragmentationThrottlingMS=10 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, chunkDefragmentationThrottlingMS: 10 } )
chunkMigrationConcurrency
MongoDB 7.0、6.3、6.0.6(および 5.0.15)以降で利用できます。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 1
チャンク移行のソース シャードと受信シャードのスレッド数を設定する整数を指定します。チャンク移行では、ソース シャードと受信シャードの両方について、受信側のシャードに設定したスレッド数を使用します。
同時実行数を増やすと、チャンク移行のパフォーマンスは向上しますが、ソースシャードと受信シャードのワークロードとディスク 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 } ) コレクションバランシングを構成するには、「
configureCollectionBalancing
」を参照してください。シャーディングされたコレクションのデフラグについて詳しくは、「シャーディングされたコレクションのデフラグ」をご覧ください。
disableResumableRangeDeleter
mongod
でのみ利用可能です。タイプ: ブール値
デフォルト: false
シャードのプライマリに設定されている場合、シャードで範囲の削除を一時停止するかどうかを指定します。
true
を設定すると、 孤立したドキュメント を含む範囲のクリーンアップが一時停止されます。シャードは引き続きチャンクを他のシャードに提供できますが、このパラメーターにfalse
を設定するまで、提供されたドキュメントはこのシャードから削除されません。このシャードは、受信チャンクの範囲と重複するconfig.rangeDeletions
コレクションに保留中の範囲削除タスクがない限り、他のシャードからチャンクを引き続き受け取ることができます。disableResumableRangeDeleter
がtrue
の場合、孤立したドキュメントが受信チャンクと同じ範囲の受信シャードのプライマリ サーバーに存在する場合、チャンクの移行は失敗します。シャードのプライマリでない場合、このパラメーターは
mongod
には影響しません。重要
disableResumableRangeDeleter
パラメーターをtrue
に設定する場合は、シャードのレプリカセット内のすべてのノードに一貫して適用するようにしてください。フェイルオーバーが発生した場合、新しいプライマリでのこの設定値によって範囲削除の動作が決まります。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。mongod --setParameter disableResumableRangeDeleter=false
enableShardedIndexConsistencyCheck
mongod
でのみ利用可能です。タイプ: ブール値
デフォルト: true
コンフィギュレーションサーバーのプライマリに設定されている場合、シャーディングされたコレクションのインデックス整合性チェックを有効または無効にします。コンフィギュレーションサーバーのプライマリでない場合、このパラメーターは
mongod
には影響しません。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、コンフィギュレーションサーバーのプライマリで
enableShardedIndexConsistencyCheck
をfalse
に設定します。mongod --setParameter enableShardedIndexConsistencyCheck=false 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, enableShardedIndexConsistencyCheck: false } ) Tip
以下も参照してください。
shardedIndexConsistencyCheckIntervalMS
parametershardedIndexConsistency
コマンドによって返されたserverStatus
メトリクス。
opportunisticSecondaryTargeting
バージョン 6.1.0 の新機能。
mongos
でのみ利用可能です。タイプ: ブール値
デフォルト:
false
mongos
レプリカセットに対して便宜的読み取りを実行するかどうかを決定します。このパラメーターに
true
が設定されている場合、mongos
はアクティブな接続を持つセカンダリにセカンダリ読み取りを指示します。接続を受け入れた最初のセカンダリにリクエストを送ります。このパラメーターにfalse
が設定されている場合、mongos
は、特定のセカンダリへの接続を確立できるまでセカンダリ読み取りを保持します(ヘッジされた読み取りの場合を除く)。注意
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、起動時に
opportunisticSecondaryTargeting
を設定するには、次のようにします。mongos --setParameter opportunisticSecondaryTargeting=true
shardedIndexConsistencyCheckIntervalMS
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 600000
コンフィギュレーションサーバーのプライマリに設定されている場合、コンフィギュレーションサーバーのプライマリがシャーディングされたコレクションのインデックスの整合性をチェックする間隔(ミリ秒単位)です。コンフィギュレーションサーバーのプライマリでない場合、このパラメーターは
mongod
には影響しません。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。たとえば、次の例では、起動時に間隔を 300000 ミリ秒(5 分)に設定します。
mongod --setParameter shardedIndexConsistencyCheckIntervalMS=300000 Tip
以下も参照してください。
enableShardedIndexConsistencyCheck
parametershardedIndexConsistency
コマンドによって返されたserverStatus
メトリクス。
enableFinerGrainedCatalogCacheRefresh
注意
8.0 で非推奨
MongoDB 8.0 以降では、パラメータは非推奨となり、変更やエラーは発生しません。
タイプ: ブール値
デフォルト: true
このパラメータにより、シャードを更新する必要がある場合にのみカタログ キャッシュを更新可能になります。無効の場合、古いチャンクがあると、コレクションのチャンク配布全体が古いと見なされ、シャードにアクセスするすべてのルーターにシャード カタログ キャッシュの更新が強制されます。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。mongod --setParameter enableFinerGrainedCatalogCacheRefresh=true mongos --setParameter enableFinerGrainedCatalogCacheRefresh=true
maxTimeMSForHedgedReads
重要
MongoDB 8.0以降、ヘッジされた読み取りは非推奨です。 読み込み設定(read preference
nearest
を指定するクエリは、デフォルトでヘッジされた読み取りを使用しなくなりました。 ヘッジされた読み取りを明示的に指定すると、MongoDB はヘッジされた読み取りを実行し、警告をログに記録します。mongos
でのみ利用可能です。タイプ: 整数
デフォルト: 150
ヘッジされた読み取りの最大時間制限(ミリ秒単位)を指定します。 つまり、読み取り操作をヘッジするために送信される追加の読み取りでは、
maxTimeMSForHedgedReads
のmaxTimeMS
値が使用され、ヘッジされている読み取り操作では、操作に指定されたmaxTimeMS
値が使用されます。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、制限を 200 ミリ秒に設定するには、起動時に以下を発行します。
mongos --setParameter maxTimeMSForHedgedReads=200 または実行中の に接続されている
setParameter
mongosh
mongos
セッションで コマンドを使用する場合は以下のようになります。db.adminCommand( { setParameter: 1, maxTimeMSForHedgedReads: 200 } )
maxCatchUpPercentageBeforeBlockingWrites
バージョン 5.0 で追加
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 10
moveChunk
およびmoveRange
操作の場合、catchup
フェーズからcommit
フェーズに移行するために移行プロトコルによって許可される未転送データの最大パーセンテージ(合計チャンク サイズの割合で表す)を指定します。キャッチアップ率を高く設定すると、移行が完了するまでの時間は短縮されますが、
upsert
およびdelete
操作の同時実行時のレイテンシが高くなります。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。MongoDB 7.1(および 7.0.1)以降では、実行時にパラメータを設定できます。
たとえば、最大パーセンテージを 20 に設定するには、起動時に以下を発行します。
mongod --setParameter maxCatchUpPercentageBeforeBlockingWrites=20 MongoDB 7.1(および 7.0.1)以降では、次のように
setParameter
コマンドを使用して実行時にパラメーターを設定できます。db.adminCommand( { setParameter: 1, maxCatchUpPercentageBeforeBlockingWrites: 20} )
metadataRefreshInTransactionMaxWaitBehindCritSecMS
バージョン 5.2 の新機能(5.1.0、5.0.4 以降でも利用可能)
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 500
トランザクション内の重要なセクションに対するシャードの待ち時間を制限します。
クエリがシャードにアクセスしたときに、チャンク移行またはDDL 操作によってコレクションのクリティカル セクションがすでに専有されている可能性があります。クエリでクリティカルセクションが専有されていることが検出された場合、シャードはクリティカル セクションが解放されるまで待機します。シャードが制御を
mongos
に戻すと、mongos
はクエリを再試行します。ただし、マルチシャード トランザクションが、複数のシャードのクリティカル セクションを占有する操作とやりとりする場合、そのやりとりにより分散デッドロックが発生する可能性があります。metadataRefreshInTransactionMaxWaitBehindCritSecMS
は、クリティカル セクションが解放されるまで、シャードがトランザクション内で待機する最大時間を制限します。トランザクション内のクリティカル セクションの最大待機時間を短縮するには、
metadataRefreshInTransactionMaxWaitBehindCritSecMS
の値を低くします。警告
metadataRefreshInTransactionMaxWaitBehindCritSecMS
が低すぎる場合、mongos
は再試行をすべて使用してエラーを返す可能性があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、
metadataRefreshInTransactionMaxWaitBehindCritSecMS
を 400 ミリ秒に設定するには、次のようにします。db.adminCommand( { setParameter: 1, metadataRefreshInTransactionMaxWaitBehindCritSecMS: 400 } )
queryAnalysisSamplerConfigurationRefreshSecs
バージョン 7.0 で追加。
バージョン 7.0.1 で変更。
タイプ: 整数
デフォルト: 10
サンプラー(
mongos
またはmongod
)がクエリ アナライザのサンプリング レートをリフレッシュする間隔。configureQueryAnalyzer
コマンドで構成されたサンプリング レートは、通過するトラフィックに基づいて、シャーディングされたクラスターのmongos
インスタンス、またはレプリカセットのmongod
インスタンスに分割されます。mongos
またはmongod
のサンプリング レート割り当てを、通過するトラフィックに対してより応答性を高くするには、この値を小さくします。デフォルト値を使用することをお勧めします。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。MongoDB 7.0.1 以降では、実行時に
queryAnalysisSamplerConfigurationRefreshSecs
を設定できます。次の例では、
mongod
インスタンスの起動時にqueryAnalysisSamplerConfigurationRefreshSecs
を 60 秒に設定します。mongod --setParameter queryAnalysisSamplerConfigurationRefreshSecs=60 次の例では、
mongos
インスタンスの起動時にqueryAnalysisSamplerConfigurationRefreshSecs
を 60 秒に設定します。mongos --setParameter queryAnalysisSamplerConfigurationRefreshSecs=60 値を 30 秒に設定するには、次のコマンドを実行します。
db.adminCommand( { setParameter: 1, queryAnalysisSamplerConfigurationRefreshSecs: 30 } )
queryAnalysisWriterIntervalSecs
バージョン 7.0 で追加。
バージョン 7.0.1 で変更。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 90
サンプリングされたクエリがディスクに書き込まれる間隔(秒単位)。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。MongoDB 7.0.1 以降では、実行時に
queryAnalysisWriterIntervalSecs
を設定できます。次の例では、
mongod
インスタンスの起動時にqueryAnalysisWriterIntervalSecs
を 60 秒に設定します。mongod --setParameter queryAnalysisWriterIntervalSecs=60 To set the value to 60 seconds, run the following: db.adminCommand( { setParameter: 1, queryAnalysisWriterIntervalSecs: 60 } )
queryAnalysisWriterMaxMemoryUsageBytes
バージョン 7.0 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 100 * 1024 * 1024
クエリ サンプリング ライターが使用できるメモリの最大量(バイト単位)。制限に到達すると、バッファがフラッシュされるまで、新しいクエリと差分はすべてサンプリングから破棄されます。
0
より大きくする必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
mongod
スタートアップのインスタンスでqueryAnalysisWriterMaxMemoryUsageBytes
を10000000
に設定します。mongod --setParameter queryAnalysisWriterMaxMemoryUsageBytes=10000000
queryAnalysisWriterMaxBatchSize
バージョン 7.0 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 100000
一度にディスクに書き込むサンプリングされたクエリの最大数。
0
より大きく、100000
以下にする必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
mongod
スタートアップのインスタンスでqueryAnalysisWriterMaxBatchSize
を1000
に設定します。mongod --setParameter queryAnalysisWriterMaxBatchSize=1000 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, queryAnalysisWriterMaxBatchSize: 1000 } )
queryAnalysisSampleExpirationSecs
バージョン 7.0 で追加。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 7 * 24 * 3600
サンプリングされたクエリ ドキュメントが TTL モニターによって削除されるまで存在する時間(秒単位)。
0
より大きくする必要があります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
mongod
インスタンスの起動時にqueryAnalysisSampleExpirationSecs
を691200
(8 * 24 * 3600
)に設定します。mongod --setParameter queryAnalysisSampleExpirationSecs=691200 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, queryAnalysisSampleExpirationSecs: 691200 } )
readHedgingMode
mongos
でのみ利用可能です。型: string
デフォルト: オン
読み込み設定(read preference)でヘッジされた読み取りオプションが有効になっている読み取り操作に対して、
mongos
がヘッジされた読み取りをサポートするかどうかを指定します。使用可能な値は次のとおりです。
値説明on
mongos
インスタンスは、読み込み設定(read preference)でヘッジされた読み取りオプションが有効になっている読み取り操作に対してヘッジされた読み取りをサポートします。off
mongos
インスタンスはヘッジされた読み取りをサポートしていません。つまり、読み込み設定(read preference)でヘッジされた読み取りオプションが有効になっている読み取り操作であっても、ヘッジされた読み取りは使用できません。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、
mongos
インスタンスでヘッジされた読み取りサポートを無効にするには、起動時に以下を実行します。mongos --setParameter readHedgingMode=off または実行中の に接続されている
setParameter
mongosh
mongos
セッションで コマンドを使用する場合は以下のようになります。db.adminCommand( { setParameter: 1, readHedgingMode: "off" } )
routingTableCacheChunkBucketSize
バージョン 7.0.1 の新機能。
バージョン 7.2 で変更。
タイプ: 整数
デフォルト: 500
チャンク グループ最適化の実装に使用されるルーティング テーブル キャッシュのバケットのサイズを指定します。
0
より大きくする必要があります。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。たとえば、
mongod
のキャッシュ チャンク バケット サイズを250
に設定するには、起動時に次のコマンドを実行します。mongod --setParameter routingTableCacheChunkBucketSize=250
shutdownTimeoutMillisForSignaledShutdown
バージョン 5.0 で追加
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 15000
SIGTERM
シグナルに応答してmongod
のシャットダウンを開始する前に、進行中のデータベース操作が完了するまで待機する時間(ミリ秒単位)を指定します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、時間を 250 ミリ秒に設定するには、起動時に次のコマンドを発行します。
mongod --setParameter shutdownTimeoutMillisForSignaledShutdown=250 または実行中の に接続されている
setParameter
mongosh
mongod
セッションで コマンドを使用する場合は以下のようになります。db.adminCommand( { setParameter: 1, shutdownTimeoutMillisForSignaledShutdown: 250 } )
mongosShutdownTimeoutMillisForSignaledShutdown
バージョン 5.0 で追加
mongos
でのみ利用可能です。タイプ: 整数
デフォルト: 15000
SIGTERM
シグナルに応答してmongos
のシャットダウンを開始する前に、進行中のデータベース操作が完了するまで待機する時間(ミリ秒単位)を指定します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、時間を 250 ミリ秒に設定するには、起動時に次のコマンドを発行します。
mongos --setParameter mongosShutdownTimeoutMillisForSignaledShutdown=250 または実行中の に接続されている
setParameter
mongosh
mongos
セッションで コマンドを使用する場合は以下のようになります。db.adminCommand( { setParameter: 1, mongosShutdownTimeoutMillisForSignaledShutdown: 250 } )
ShardingTaskExecutorPoolHostTimeoutMS
型: 整数
デフォルト: 300000(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
各 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
各 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
ShardingTaskExecutorPoolMaxSize
各 TaskExecutor 接続プールが 構成サーバー に対して開始できるアウトバウンド接続の最大数を設定するための の任意の上書きです。設定値:
-1
で、ShardingTaskExecutorPoolMaxSize
が使用されます。これがデフォルトです。-1
より大きい整数値の場合、各 TaskExecutor 接続プールが構成サーバーに対し開始できるアウトバウンド接続の最大数を上書きします。
パラメータはシャーディングされた配置にのみ適用されます。
次の例では、スタートアップ時に
ShardingTaskExecutorPoolMaxSize
を2
に設定し、各 TaskExecutor 接続プールが構成サーバーに開くことができる送信接続の最大数を2
に設定します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
mongos --setParameter ShardingTaskExecutorPoolMaxSizeForConfigServers=2 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolMaxSizeForConfigServers: 2 } )
ShardingTaskExecutorPoolMinSize
型: 整数
デフォルト: 1
各 TaskExecutor 接続プールが任意の
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
ShardingTaskExecutorPoolMinSize
各 TaskExecutor 接続プールが 構成サーバー に対して開始できるアウトバウンド接続の最小数を設定するための の任意の上書きです。設定値:
-1
で、ShardingTaskExecutorPoolMinSize
が使用されます。これがデフォルトです。-1
より大きい整数値の場合、各 TaskExecutor 接続プールが構成サーバーに対し開始できるアウトバウンド接続の最小数を上書きします。
パラメータはシャーディングされた配置にのみ適用されます。
次の例では、起動時に
ShardingTaskExecutorPoolMinSize
を2
に設定します。これにより、各 TaskExecutor 接続プールが構成サーバーに対して開始できるアウトバウンド接続の最小数が2
に設定されます。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
mongos --setParameter ShardingTaskExecutorPoolMinSizeForConfigServers=2 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolMinSizeForConfigServers: 2 } )
ShardingTaskExecutorPoolRefreshRequirementMS
型: 整数
デフォルト: 60000(1 分)
プール内のアイドル接続をハートビートするまでに
mongos
が待機する最大時間。 プールが最小サイズを超えると、更新中にアイドル接続が破棄される可能性があります。設定されている場合、
ShardingTaskExecutorPoolRefreshRequirementMS
はShardingTaskExecutorPoolRefreshTimeoutMS
より大きくする必要があります。 それ以外の場合、mongos
はShardingTaskExecutorPoolRefreshTimeoutMS
の値をShardingTaskExecutorPoolRefreshRequirementMS
より小さくなるように調整します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、起動時に
ShardingTaskExecutorPoolRefreshRequirementMS
を90000
に設定します。mongos --setParameter ShardingTaskExecutorPoolRefreshRequirementMS=90000 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolRefreshRequirementMS: 90000 } )
ShardingTaskExecutorPoolRefreshTimeoutMS
型: 整数
デフォルト: 20000(20 秒)
mongos
でハートビートがタイムアウトするまでにハートビートを待つ最大時間。設定されている場合、
ShardingTaskExecutorPoolRefreshTimeoutMS
はShardingTaskExecutorPoolRefreshRequirementMS
より小さくなければなりません。 それ以外の場合、mongos
はShardingTaskExecutorPoolRefreshTimeoutMS
の値をShardingTaskExecutorPoolRefreshRequirementMS
より小さくなるように調整します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、起動時に
ShardingTaskExecutorPoolRefreshTimeoutMS
を30000
に設定します。mongos --setParameter ShardingTaskExecutorPoolRefreshTimeoutMS=30000 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolRefreshTimeoutMS: 30000 } )
ShardingTaskExecutorPoolReplicaSetMatching
バージョン 5.0 での変更。
タイプ: string
デフォルト: "自動"
mongos
インスタンスでは、このパラメーターは、レプリカセット内のノードへの接続プールの最小サイズ制限を決定するポリシーを設定します。mongod
インスタンスでは、このパラメーターは、他のレプリカセット内のノードへの接続プールの最小サイズ制限を決定するポリシーを設定します。このパラメーターは、ユーザー リクエストおよび CRUD 操作に直接関連する操作に対する接続のみを管理することに注意してください。
使用可能な値は次のとおりです。
マッチング ポリシー説明"automatic"
(デフォルト)5.0以降では、
"automatic"
が新しいデフォルト値です。mongos
に設定すると、インスタンスは"matchPrimaryNode"
オプションに指定された動作に従います。mongod
に設定すると、インスタンスは"disabled"
オプションに指定された動作に従います。警告: が に設定されている場合、 ではなく に、
ShardingTaskExecutorPoolReplicaSetMatching
"automatic"
replicaSetMatchingStrategy
"automatic"
ではなく、実際に使用されているポリシーが記述されます。ShardingTaskExecutorPoolReplicaSetMatching
getParameter
の値を見つけるには、サーバーパラメータの値を返す を使用します。"matchPrimaryNode"
mongos
に設定すると、シャーディングされたクラスター内のレプリカセットの各セカンダリ(具体的には、シャード レプリカセットとコンフィギュレーションサーバー)に対するインスタンスの接続プールの最小サイズ制限は、そのレプリカセットのプライマリへの接続プールのサイズと同じになります。mongod
に設定すると、シャーディングされたクラスター内の別のレプリカセットの各セカンダリ(具体的には、シャード レプリカセットとコンフィギュレーションサーバー)に対するインスタンスの接続プールの最小サイズ制限は、そのレプリカセットのプライマリへの接続プールのサイズと同じになります。警告:トポロジー内の複数のシャード サーバーでシャード間の操作が急増する可能性がある場合は、
mongod
インスタンスにこのオプションを設定しないでください。プライマリが降格する場合、
matchPrimaryNode
はプライマリになるすべてのセカンダリが現在のレベルのプライマリの読み取りと書き込みを処理できるようにします。"matchBusiestNode"
mongos
に設定すると、シャーディングされたクラスター内のレプリカセットの各ノード(具体的には、シャード レプリカセットとコンフィギュレーションサーバー)に対するインスタンスの接続プールの最小サイズ制限は、そのレプリカセットのプライマリと各セカンダリへのアクティブな接続数の最大値に等しくなります。mongod
に設定すると、シャーディングされたクラスター内の別のレプリカセットの各ノード(具体的には、シャード レプリカセットとコンフィギュレーションサーバー)に対するインスタンスの接続プールの最小サイズ制限は、そのレプリカセットのプライマリと各セカンダリへのアクティブな接続数の最大値に等しくなります。"matchBusiestNode"
を使用すると、mongos
は各セカンダリへの十分な接続を維持し、プライマリとセカンダリの現在のレベルの読み取りと書き込みを処理します。アクティブな接続の数が減少すると、プール内で維持する接続の数も減少します。"disabled"
mongos
に設定すると、シャーディングされた clusterv 内のレプリカセットの各ノード(具体的には、シャードレプリカセットとコンフィギュレーションサーバー)に対するインスタンスの接続プール内のインスタンスの最小接続数はShardingTaskExecutorPoolMinSize
と等しくなります。mongod
に設定すると、シャーディングされたシャーディングされたクラスターの別のレプリカセットの各ノード(具体的には、シャードレプリカセットとコンフィギュレーションサーバー)に対するインスタンスの接続プール内のインスタンスの最小接続数はShardingTaskExecutorPoolMinSize
と等しくなります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、起動時に
ShardingTaskExecutorPoolReplicaSetMatching
を"automatic"
に設定します。mongod --setParameter ShardingTaskExecutorPoolReplicaSetMatching="automatic" 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, ShardingTaskExecutorPoolReplicaSetMatching: "automatic" } )
taskExecutorPoolSize
mongos
でのみ利用可能です。型: 整数
デフォルト: 1
特定の
mongos
に使用する Task Executor 接続プールの数。パラメーター値が
0
以下の場合、Task Executor 接続プールの数はコアの数になります。ただし、次の例外があります。コア数が 4 未満の場合、Task Executor 接続プールの数は 4 です。
コアの数が 64 より大きい場合、Task Executor 接続プールの数は 64 です。
Linux で MongoDB 6.2以降を実行中の場合、
taskExecutorPoolSize
をデフォルト値の1
から変更することはできません。Windows または macOS で MongoDB を実行中の場合は、このパラメーターを変更できます。taskExecutorPoolSize
のデフォルト値は1
です。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
mongos --setParameter taskExecutorPoolSize=6
loadRoutingTableOnStartup
mongos
でのみ利用可能です。タイプ: ブール値
デフォルト: true
シャーディングされたクラスターのルーティングテーブルを起動時にプリロードするように
mongos
インスタンスを設定します。この設定を有効にすると、mongos
は、クライアント接続の受け入れを開始する前に、起動手順の一部として、各シャーディングされたコレクションのクラスター全体のルーティング テーブルをキャッシュします。この設定が有効になっていない場合、
mongos
は受信クライアント接続に必要なルーティング テーブルのみをロードし、与えられたリクエストの名前空間の特定のルーティング テーブルのみをロードします。mongos
loadRoutingTableOnStartup
パラメータが有効になっている インスタンスでは起動時間が長くなる可能性がありますが、起動後は初期クライアント接続のサービスが高速化されます。loadRoutingTableOnStartup
は、デフォルトで有効になっています。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
warmMinConnectionsInShardingTaskExecutorPoolOnStartup
mongos
でのみ利用可能です。タイプ: ブール値
デフォルト: true
起動時に接続プールを事前にウォームアップするように
mongos
インスタンスを構成します。 このパラメータを有効にすると、mongos
は、クライアント接続の受け入れを開始する前に、起動手順の一部として各シャード サーバーへのShardingTaskExecutorPoolMinSize
ネットワーク接続を確立しようとします。この動作のタイムアウトは
warmMinConnectionsInShardingTaskExecutorPoolOnStartupWaitMS
パラメーターで構成できます。 このタイムアウトに達すると、接続プールのサイズに関係なく、mongos
はクライアント接続の受け入れを開始します。このパラメーターが有効になっている
mongos
インスタンスでは起動時間が長くなる可能性がありますが、起動後は初期クライアント接続のサービスが高速化されます。warmMinConnectionsInShardingTaskExecutorPoolOnStartup
は、デフォルトで有効になっています。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
warmMinConnectionsInShardingTaskExecutorPoolOnStartupWaitMS
mongos
でのみ利用可能です。型: 整数
デフォルト: 2000(2 秒)
mongos
ShardingTaskExecutorPoolMinSize
パラメータを使用する場合、シャード ホストごとに 接続が確立されるまでwarmMinConnectionsInShardingTaskExecutorPoolOnStartup
が待機するためのタイムアウトしきい値をミリ秒単位で設定します。このタイムアウトに達すると、接続プールのサイズに関係なく、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
移行プロセスのクローン作成ステップで、1つのバッチに挿入するドキュメントの最大数。
デフォルト値
0
は、バッチあたりのドキュメントの最大数がないことを示します。ただし、実際には、最大 16 MB のドキュメントを含むバッチが生成されます。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
migrateCloneInsertionBatchSize
を100ドキュメントに設定します。mongod --setParameter migrateCloneInsertionBatchSize=100 このパラメーターは次のように
setParameter
コマンドを使用して設定することもできます。db.adminCommand( { setParameter: 1, migrateCloneInsertionBatchSize: 100 } )
orphanCleanupDelaySecs
mongod
でのみ利用可能です。デフォルト: 900(15 分)
移行されたチャンクがソース シャードから削除されるのを遅延させる最小時間です。
チャンクの移行中にチャンクを削除する前に、MongoDB は
orphanCleanupDelaySecs
または、チャンクに関連する進行中のクエリがシャードプライマリで完了するまで待機します。どちらか長い方で完了します。ただし、シャードプライマリはシャードセカンダリで実行されている進行中のクエリを認識していないため、チャンクを使用するがセカンダリで実行されるクエリでは、シャードプライマリクエリを完了するまでの時間よりも長い時間がかかると、ドキュメントが消えてしまう可能性があります。
orphanCleanupDelaySecs
。注意
この動作は、チャンク移行の前に開始される進行中のクエリにのみ影響します。チャンク移行が開始した後に開始されるクエリでは、移行チャンクは使用されません。
シャードにストレージの制約がある場合は、この値を一時的に下げることを検討してください。シャード セカンダリで 15 分を超えるクエリを実行中の場合は、この値を増やすことを検討してください。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
orphanCleanupDelaySecs
を 20 分に設定します。mongod --setParameter orphanCleanupDelaySecs=1200 これは以下のように
setParameter
コマンドを使用して設定することもできます。db.adminCommand( { setParameter: 1, orphanCleanupDelaySecs: 1200 } ) Tip
すべてのバージョンにおいて、
orphanCleanupDelaySecs
の新しい値は、値が変更された後に作成された範囲の削除にのみ適用されます。既存の範囲削除に新しい値を適用するには、強制的に降格します。
persistedChunkCacheUpdateMaxBatchSize
バージョン 7.2 の新機能(および 7.1.1、 7.0.4、 6.0.13、 5.0.25)
mongod
でのみ利用可能です。型: 整数
デフォルト: 1000
操作をルーティングして処理するには、シャードがコレクションに関連するルーティング情報と所有者情報を知っている必要があります。この情報は、内部キャッシュ コレクション
config.cache.collections
とconfig.cache.chunks.<collectionName>
のレプリケーションを通して、シャードのプライマリ ノードからセカンダリ ノードに伝わります。以前のバージョンでは、チャンク キャッシュ コレクションのアップデートは個別に実行されていました(つまり、エントリが削除され、新しいエントリが挿入されていた)。 MongoDB 7.2 以降では、これらのアップデートは削除のバッチとそれに続く挿入のバッチの実行として行われます。 アップデートされたロジックにより、多数のチャンクを含むコレクションのパフォーマンスが向上します。
persistedChunkCacheUpdateMaxBatchSize
パラメーターは、永続化したチャンク キャッシュの更新に使用される最大バッチ サイズを指定します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、起動時に
persistedChunkCacheUpdateMaxBatchSize
を 700 に設定します。mongod --setParameter persistedChunkCacheUpdateMaxBatchSize=700 実行時に
persistedChunkCacheUpdateMaxBatchSize
を設定することもできます。db.adminCommand( { setParameter: 1, persistedChunkCacheUpdateMaxBatchSize: 700 } )
rangeDeleterBatchDelayMS
mongod
でのみ利用可能です。タイプ: 非負整数
デフォルト: 20
範囲移行のクリーンアップ段階で、次の削除バッチまでに待機する時間(ミリ秒単位)。
_secondaryThrottle レプリケーションの遅延は、バッチの削除ごとに発生します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
rangeDeleterBatchDelayMS
を200ミリ秒に設定します。mongod --setParameter rangeDeleterBatchDelayMS=200 このパラメーターは次のように
setParameter
コマンドを使用して設定することもできます。db.adminCommand( { setParameter: 1, rangeDeleterBatchDelayMS: 200 } ) Tip
6.0.3より前のバージョンでは、
rangeDeleterBatchDelayMS
の新しい値は、値が変更された後に作成された範囲の削除にのみ適用されます。 既存の範囲削除に新しい値を適用するには、強制的に降格します 。6.0.3 以降、パラメーターの新しい値は、範囲削除がいつ作成されたかに関係なく、アップデート後に処理されたすべての範囲削除に適用されます。
rangeDeleterBatchSize
mongod
でのみ利用可能です。タイプ: 非負整数
デフォルト:2147483647 MongoDB5.1.2 と 以降の5.0.6
範囲移行のクリーンアップ段階で削除する各バッチの最大ドキュメント数。
値が
0
の場合、システムがデフォルト値を選択することを示します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
rangeDeleterBatchSize
を 32 ドキュメントに設定します。mongod --setParameter rangeDeleterBatchSize=32 このパラメーターは次のように
setParameter
コマンドを使用して設定することもできます。db.adminCommand( { setParameter: 1, rangeDeleterBatchSize: 32 } ) Tip
6.0.3より前のバージョンでは、
rangeDeleterBatchSize
の新しい値は、値が変更された後に作成された範囲の削除にのみ適用されます。 既存の範囲削除に新しい値を適用するには、強制的に降格します 。6.0.3 以降、パラメーターの新しい値は、範囲削除がいつ作成されたかに関係なく、アップデート後に処理されたすべての範囲削除に適用されます。
skipShardingConfigurationChecks
mongod
でのみ利用可能です。タイプ: ブール値
デフォルト: false
true
の場合、シャード ノードまたはコンフィギュレーションサーバー ノードをスタンドアロンとして起動してメンテナンス操作を行うことができます。このパラメーターは、--configsvr
または--shardsvr
オプションと相互に排他的です。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。mongod --setParameter skipShardingConfigurationChecks=true 重要
メンテナンスが完了したら、
mongod
を再起動するときにskipShardingConfigurationChecks
パラメーターを削除します。
findChunksOnConfigTimeoutMS
バージョン 5.0 で追加
タイプ: 非負整数
デフォルト: 900000
chunks
での検索操作のタイムアウト時間(ミリ秒)。クラスターに多数のチャンクがあり、チャンクのロードがエラー
ExceededTimeLimit
で失敗する場合は、次のようにパラメーターの値を増やしてください。mongod --setParameter findChunksOnConfigTimeoutMS=1000000 このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
ヘルスマネージャー パラメータ
activeFaultDurationSecs
mongos
でのみ利用可能です。型: ドキュメント
ヘルスマネージャーの概要に障害が発生してから、mongos がクラスターから排除されるまでの待機時間(秒単位)です。
障害が検出され、ヘルスマネージャーが
critical
に構成されている場合、サーバーは指定された間隔だけ待機してから、クラスターからmongos
を削除します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
たとえば、障害からクラッシュまでの期間を 5 分に設定するには、起動時に次のコマンドを発行します。
mongos --setParameter activeFaultDurationSecs=300 または実行中の に接続されている
setParameter
mongosh
mongos
セッションで コマンドを使用する場合は以下のようになります。db.adminCommand( { setParameter: 1, activeFaultDurationSecs: 300 } ) setParameter
で設定されたパラメーターは再起動後に永続することはありません。詳細については、「setParameter ページ」を参照してください。この設定を永続的にするには、次の例のように
setParameter
オプションを使用して mongos コンフィギュレーション ファイルのactiveFaultDurationSecs
を設定します。setParameter: activeFaultDurationSecs: 300
healthMonitoringIntensities
mongos
でのみ利用可能です。型: ドキュメントの配列
このパラメータを使用して、ヘルスマネージャーの強度レベルを設定します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
healthMonitoringIntensities
はドキュメントの配列values
を受け取ります。values
の各ドキュメントは 2 個のフィールドを取ります。type
、ヘルスマネージャーファセットintensity
、強度レベル
ヘルスマネージャー
Facetヘルス オブザーバーがチェックする内容configServer
コンフィギュレーションサーバーに対する接続に関連するクラスターの健全性の問題。
dns
DNS の可用性と機能に関連するクラスターの健全性の問題。
ldap
LDAP の可用性と機能に関するクラスターの健全性の問題。
強度レベル
強度レベル説明critical
このファセットのヘルスマネージャーは有効になっており、エラーが発生した場合に障害のあるmongosをクラスターから移動する機能があります。 ヘルスマネージャーは、
activeFaultDurationSecs
で指定された時間待機してから、 mongosを自動的に停止してクラスターから移動します。non-critical
このファセットのヘルスマネージャーは有効になっており、エラーをログに記録しますが、エラーが発生した場合、mongos はクラスター内に残ります。
off
このファセットのヘルスマネージャーは無効です。mongos は、このファセットでヘルスチェックを実行しません。これは、デフォルトの強度レベルです。
たとえば、
dns
ヘルスマネージャーファセットを強度レベルcritical
に設定するには、スタートアップ時に以下を実行します。mongos --setParameter 'healthMonitoringIntensities={ values:[ { type:"dns", intensity: "critical"} ] }' または実行中の に接続されている
setParameter
mongosh
mongos
セッションで コマンドを使用する場合は以下のようになります。db.adminCommand( { setParameter: 1, healthMonitoringIntensities: { values: [ { type: "dns", intensity: "critical" } ] } } ) } ) setParameter
で設定されたパラメーターは再起動後に永続することはありません。詳細については、「setParameter ページ」を参照してください。この設定を永続的にするには、次の例のように
setParameter
オプションを使用して mongos コンフィギュレーション ファイルのhealthMonitoringIntensities
を設定します。setParameter: healthMonitoringIntensities: "{ values:[ { type:\"dns\", intensity: \"critical\"} ] }"
healthMonitoringIntervals
mongos
でのみ利用可能です。型: ドキュメントの配列
このヘルスマネージャーの実行頻度(ミリ秒単位)です。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
healthMonitoringIntervals
はドキュメントの配列values
を受け取ります。values
の各ドキュメントは 2 個のフィールドを取ります。type
、ヘルスマネージャーファセットinterval
、実行の間隔(ミリ秒単位)
ヘルスマネージャー
Facetヘルス オブザーバーがチェックする内容configServer
コンフィギュレーションサーバーに対する接続に関連するクラスターの健全性の問題。
dns
DNS の可用性と機能に関連するクラスターの健全性の問題。
ldap
LDAP の可用性と機能に関するクラスターの健全性の問題。
たとえば、30 秒ごとにヘルスチェックを実行するように
ldap
ヘルスマネージャーファセットを設定するには、スタートアップ時に次のコマンドを発行します。mongos --setParameter 'healthMonitoringIntervals={ values:[ { type:"ldap", interval: "30000"} ] }' または実行中の に接続されている
setParameter
mongosh
mongos
セッションで コマンドを使用する場合は以下のようになります。db.adminCommand( { setParameter: 1, healthMonitoringIntervals: { values: [ { type: "ldap", interval: "30000" } ] } } ) } ) setParameter
で設定されたパラメーターは再起動後に永続することはありません。詳細については、「setParameter ページ」を参照してください。この設定を永続的にするには、次の例のように
setParameter
オプションを使用して mongos コンフィギュレーション ファイルのhealthMonitoringIntervals
を設定します。setParameter: healthMonitoringIntervals: "{ values: [{type: \"ldap\", interval: 200}] }"
progressMonitor
mongos
でのみ利用可能です。型: ドキュメント
プログレス モニターは、ヘルスマネージャーのチェックが停止したり、応答しなくなったりしないよう確認するためのテストを実行します。プログレス モニターは、
interval
で指定された間隔でこれらのテストを実行します。ヘルスチェックが開始されたが、deadline
で指定されたタイムアウト内に完了しない場合、プログレス モニターは mongos を停止し、クラスターから削除します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
progressMonitor
フィールドフィールド説明単位interval
ヘルスマネジャーが、停止したり、応答しなくなったりしないよう確認する頻度。
ミリ秒
deadline
ヘルスマネージャーのチェックが進行していない場合に、mongos を自動的に失敗させるまでの中断時間。
秒
interval
を 1000 ミリ秒に設定し、deadline
を 300 秒に設定するには、スタートアップ時に次のコマンドを発行します。mongos --setParameter 'progressMonitor={"interval": 1000, "deadline": 300}' または実行中の に接続されている
setParameter
mongosh
mongos
セッションで コマンドを使用する場合は以下のようになります。db.adminCommand( { setParameter: 1, progressMonitor: { interval: 1000, deadline: 300 } ) } ) setParameter
で設定されたパラメーターは再起動後に永続することはありません。詳細については、「setParameter ページ」を参照してください。この設定を永続的にするには、次の例のように
setParameter
オプションを使用して mongos コンフィギュレーション ファイルのprogressMonitor
を設定します。setParameter: progressMonitor: "{ interval: 1000, deadline: 300 }"
ストレージ パラメータ
honorSystemUmask
mongod
でのみ利用可能です。デフォルト:
false
honorSystemUmask
がtrue
に設定されている場合、MongoDB によって作成された新しいファイルには、ユーザーのumask
設定に従って権限が付与されます。processUmask
honorSystemUmask
が に設定されている場合、true
を設定することはできません。honorSystemUmask
がfalse
に設定されている場合、MongoDB によって作成される新しいファイルの権限は600
に設定され、読み取りと書込みの権限が所有者のみに付与されます。 新しいディレクトリの権限は700
に設定されています。processUmask
を使用して、MongoDB によって作成されたすべての新しいファイルに対するグループや他のユーザーのデフォルト権限を上書きできます。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。mongod --setParameter honorSystemUmask=true 注意
honorSystemUmask
は、Windows システムでは使用できません。
journalCommitInterval
mongod
でのみ利用可能です。ジャーナル コミット間のミリ秒数(ms)を表す
1
から500
までの整数を指定します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
journalCommitInterval
を200
ミリ秒に設定する次の例を考えてみます。db.adminCommand( { setParameter: 1, journalCommitInterval: 200 } )
minSnapshotHistoryWindowInSeconds
バージョン 5.0 で追加
mongod
でのみ利用可能です。デフォルト:
300
storage engine がスナップショット履歴を保持する最小時間枠を秒単位で指定します。
"snapshot"
の読み取り保証 (read concern) を使用してデータをクエリし、指定されたminSnapshotHistoryWindowInSeconds
よりも前の atClusterTime 値を指定すると、mongod
は、SnapshotTooOld
エラーを返します。警告
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
(
>=
)0 以上の整数を指定します。minSnapshotHistoryWindowInSeconds
を600
秒に設定する以下の例を考えてみます。db.adminCommand( { setParameter: 1, minSnapshotHistoryWindowInSeconds: 600 } ) 注意
minSnapshotHistoryWindowInSeconds
の値を増やすと、ディスク使用量が増加します。 詳細については、「スナップショット履歴の保持 」を参照してください。MongoDB Atlas クラスターのこの値を変更するには、Atlas サポートに問い合わせる必要があります。
processUmask
mongod
でのみ利用可能です。honorSystemUmask
がfalse
に設定されている場合、グループや他のユーザーに使用されるデフォルトの権限を上書きします。 デフォルトでは、honorSystemUmask
がfalse
に設定されている場合、MongoDB によって作成される新しいファイルの権限は600
に設定されます。 このデフォルトをカスタムumask
値で上書きするには、processUmask
パラメーターを使用します。 ファイル所有者は、システムumask
から権限を継承します。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。honorSystemUmask
がtrue
に設定されている場合、このパラメータを設定することはできません。グループと他のユーザーの権限を読み取り/書き込みのみに設定し、所有者のシステム
umask
設定を保持する次の例を考えてみます。mongod --setParameter processUmask=011 注意
processUmask
は、Windows システムでは使用できません。
storageEngineConcurrentReadTransactions
バージョン 7.0 で変更。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 128
MongoDB 7.0 以降では、このパラメーターはすべてのストレージ エンジンで使用できます。以前のバージョンでは、このパラメーターは WiredTiger storage engine でのみ使用できます。
storage engine に許可された同時読み取りトランザクション(読み取りチケット)の最大数を指定します。
デフォルト値を使用すると、MongoDB はチケット数を動的に調整して最大値 128 でパフォーマンスを最適化します。
MongoDB 7.0 以降では、
storageEngineConcurrentReadTransactions
をデフォルト以外の値に設定すると、同時 storage engine トランザクション数を動的に調整するアルゴリズムが無効になります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
db.adminCommand( { setParameter: 1, storageEngineConcurrentReadTransactions: <int> } ) バージョン 6.0 で変更。
wiredTigerConcurrentReadTransactions
パラメータの名前がstorageEngineConcurrentReadTransactions
に変更されました。
storageEngineConcurrentWriteTransactions
バージョン 7.0 で変更。
mongod
でのみ利用可能です。タイプ: 整数
MongoDB 7.0 以降では、このパラメーターはすべてのストレージ エンジンで使用できます。以前のバージョンでは、このパラメーターは WiredTiger storage engine でのみ使用できます。
WiredTiger storage engine に許可された同時書込みトランザクション (write transaction) の最大数を指定します。
デフォルトでは、MongoDB は
storageEngineConcurrentWriteTransactions
を次のどちらか大きい値に設定します。MongoDB を実行しているマシンのコア数
4
デフォルト値を使用すると、MongoDB はチケット数を動的に調整して最大値 128 でパフォーマンスを最適化します。
MongoDB 7.0 以降では、
storageEngineConcurrentWriteTransactions
をデフォルト以外の値に設定すると、同時 storage engine トランザクション数を動的に調整するアルゴリズムが無効になります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
db.adminCommand( { setParameter: 1, storageEngineConcurrentWriteTransactions: <int> } ) バージョン 6.0 で変更。
wiredTigerConcurrentWriteTransactions
パラメータの名前がstorageEngineConcurrentWriteTransactions
に変更されました。
syncdelay
mongod
でのみ利用可能です。mongod
が作業メモリをディスクにフラッシュする間隔を秒単位で指定します。デフォルトでは、mongod
は 60 秒ごとにメモリをディスクにフラッシュします。ほとんどの場合、この値を設定せず、デフォルト設定を使用してください。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
syncdelay
を60
秒に設定する以下の例を考えてみます。db.adminCommand( { setParameter: 1, syncdelay: 60 } ) 永続的なデータを提供するために、 WiredTigerはチェックポイントを使用します。 詳細については、「ジャーナリングと WiredTiger ストレージ エンジン 」を参照してください。
temporarilyUnavailableBackoffBaseMs
mongod
でのみ利用可能です。キャッシュの負荷によりロールバックされた書き込み操作を再試行するまでの初期遅延を指定します。
まれに、キャッシュの負荷により書込み (write) が失敗する場合があります。このような状況が発生すると、MongoDB では、
TemporarilyUnavailable
エラーを発行し、スロー クエリ ログとフルタイム診断データ取得(FTDC)の 2 か所でtemporarilyUnavailableErrors
カウンターの値を増加させます。マルチドキュメントトランザクション内の個々の操作では、
TemporarilyUnavailable
エラーは返されません。temporarilyUnavailableBackoffBaseMs
} パラメータとtemporarilyUnavailableMaxRetries
パラメータを変更して、書込み再試行プロパティを調整します。このパラメーターは以下を受け入れます。
値説明integer >= 0
デフォルトは 1 秒。再試行間の初期遅延。この値は、再試行のたびに最大 55 秒まで増加します。値を大きくすると、次回の再試行までにキャッシュ負荷が軽減される可能性が高くなります。
再試行回数を設定するには、
temporarilyUnavailableMaxRetries
を使用します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
新しい値を設定するには、
db.adminCommand()
を使用します。db.adminCommand( { setParameter: 1, temporarilyUnavailableBackoffBaseMs: 3 } ) バージョン 6.1.0 の新機能。
temporarilyUnavailableMaxRetries
mongod
でのみ利用可能です。キャッシュの負荷により書き込み操作がロールバックされた場合の最大再試行回数を指定します。
まれに、キャッシュの負荷により書込み (write) が失敗する場合があります。このような状況が発生すると、MongoDB では、
TemporarilyUnavailable
エラーを発行し、スロー クエリ ログとフルタイム診断データ取得(FTDC)の 2 か所でtemporarilyUnavailableErrors
カウンターの値を増加させます。マルチドキュメントトランザクション内の個々の操作では、
TemporarilyUnavailable
エラーは返されません。temporarilyUnavailableBackoffBaseMs
} パラメータとtemporarilyUnavailableMaxRetries
パラメータを変更して、書込み再試行プロパティを調整します。このパラメーターは以下を受け入れます。
値説明integer >= 0
デフォルトは 10。最大再試行回数。
再試行間の遅延が増加します。バックオフ時間を設定するには、
temporarilyUnavailableBackoffBaseMs
を使用します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
新しい値を設定するには、
db.adminCommand()
を使用します。db.adminCommand( { setParameter: 1, temporarilyUnavailableMaxRetries: 5 } ) バージョン 6.1.0 の新機能。
WiredTiger パラメータ
wiredTigerConcurrentReadTransactions
バージョン 7.0 で変更。
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 128
MongoDB 7.0 以降では、このパラメーターはすべてのストレージ エンジンで使用できます。以前のバージョンでは、このパラメーターは WiredTiger storage engine でのみ使用できます。
storage engine に許可された同時読み取りトランザクション(読み取りチケット)の最大数を指定します。
デフォルト値を使用すると、MongoDB はチケット数を動的に調整して最大値 128 でパフォーマンスを最適化します。
MongoDB 7.0 以降では、
wiredTigerConcurrentReadTransactions
をデフォルト以外の値に設定すると、同時 storage engine トランザクション数を動的に調整するアルゴリズムが無効になります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
db.adminCommand( { setParameter: 1, wiredTigerConcurrentReadTransactions: <int> } )
wiredTigerConcurrentWriteTransactions
バージョン 7.0 で変更。
mongod
でのみ利用可能です。タイプ: 整数
MongoDB 7.0 以降では、このパラメーターはすべてのストレージ エンジンで使用できます。以前のバージョンでは、このパラメーターは WiredTiger storage engine でのみ使用できます。
WiredTiger storage engine に許可された同時書込みトランザクション (write transaction) の最大数を指定します。
デフォルトでは、MongoDB は
wiredTigerConcurrentWriteTransactions
を次のどちらか大きい値に設定します。MongoDB を実行しているマシンのコア数
4
デフォルト値を使用すると、MongoDB はチケット数を動的に調整して最大値 128 でパフォーマンスを最適化します。
MongoDB 7.0 以降では、
wiredTigerConcurrentWriteTransactions
をデフォルト以外の値に設定すると、同時 storage engine トランザクション数を動的に調整するアルゴリズムが無効になります。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
db.adminCommand( { setParameter: 1, wiredTigerConcurrentWriteTransactions: <int> } )
wiredTigerEngineRuntimeConfig
mongod
でのみ利用可能です。実行中の
mongod
インスタンスのwiredTiger
ストレージ エンジン構成オプションを指定します。このパラメーターは実行時にのみ使用できます。 パラメーターを設定するには、
setParameter
コマンドを使用します。警告
この設定は WiredTiger と MongoDB の両方に大きな影響を与える可能性があるため、MongoDB エンジニアの指示がない限り、
wiredTigerEngineRuntimeConfig
の変更は避けてください。次の操作プロトタイプを考慮します。
db.adminCommand({ "setParameter": 1, "wiredTigerEngineRuntimeConfig": "<option>=<setting>,<option>=<setting>" })
wiredTigerFileHandleCloseIdleTime
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 600
wiredTiger
内のファイル ハンドルが閉じられる前のアイドル状態を維持できる時間を秒単位で指定します。wiredTigerFileHandleCloseIdleTime
を0
に設定すると、アイドル状態のハンドルは閉じられません。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。以下に例を挙げます。
mongod --setParameter wiredTigerFileHandleCloseIdleTime=100000
利用可能なすべての WiredTiger 構成オプションについては、WiredTiger のドキュメントを参照してください。
監査パラメータ
auditAuthorizationSuccess
タイプ: ブール値
デフォルト: false
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
authCheck アクションの承認成功の監査を有効にします。
auditAuthorizationSuccess
がfalse
の場合、監査システムはauthCheck
の承認の失敗のみを記録します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
承認成功の監査を有効にするには、次のコマンドを発行します。
db.adminCommand( { setParameter: 1, auditAuthorizationSuccess: true } ) auditAuthorizationSuccess
を有効にすると、承認の失敗のみをログに記録する場合よりもパフォーマンスが低下します。ランタイム監査構成が有効になっている場合、
auditAuthorizationSuccess
パラメーターはmongod
またはmongos
構成ファイルに表示されません。パラメーターが存在する場合、サーバーは起動に失敗します。
auditConfigPollingFrequencySecs
バージョン 5.0 で追加
タイプ: 整数
デフォルト: 300
シャーディングされたクラスターには、クラスターの監査構成設定を維持するサーバーが存在する場合があります。構成されていないサーバーが現在の監査生成についてコンフィギュレーションサーバーをポーリングする間隔を秒単位で設定します。返されたこの値が以前の既知の値と異なる場合、開始ノードは現在の構成をリクエストし、その内部状態をアップデートします。
注意
デフォルト値の 300 秒を使用すると、非 config ノードでは
auditConfig
クラスター パラメータを設定してから最大 5 分かかることがあります。このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。
auditEncryptionHeaderMetadataFile
バージョン 6.0 で追加。
型: string
注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
監査ログ暗号化用のログ メタデータ監査ヘッダーのパスとファイル名です。ヘッダーは各監査ログ ファイルの上部に配置され、監査ログを解読するためのメタデータが含まれています。ヘッダーも監査ログに保存されます。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。たとえば、次の例では
auditEncryptionHeaderMetadataFile
のパスとファイルを設定しています。mongod --setParameter auditEncryptionHeaderMetadataFile=/auditFiles/auditHeadersMetadataFile.log
auditEncryptKeyWithKMIPGet
バージョン 6.0 で追加。
タイプ: ブール値
デフォルト: false
注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
KMIP プロトコル バージョン 1.0 または 1.1 のみをサポートする KMIP(キー管理相互運用性プロトコル)サーバーの監査ログ暗号化を有効にします。
このパラメーターは、スタートアップ時にのみ使用できます。パラメーターを設定するには、
setParameter
設定を使用します。次の例では、
auditEncryptKeyWithKMIPGet
にtrue
を設定します。mongod --setParameter auditEncryptKeyWithKMIPGet=true
トランザクション パラメータ
coordinateCommitReturnImmediatelyAfterPersistingDecision
バージョン 5.0 で追加
バージョン 6.1 で更新
mongod
でのみ利用可能です。タイプ: ブール値
デフォルト: false
false
に設定すると、シャードトランザクションの調整役は、結果をクライアントに返す前に、参加しているすべてのシャードがマルチドキュメントトランザクションをコミットまたはキャンセルするかどうかの決定を確認するまで待機します。true
に設定すると、シャード トランザクションの調整役は、要求されたトランザクションの書込み保証( write concern )で 永続 的な決定が行われるとすぐに、 マルチドキュメントトランザクション をコミットする決定をクライアントに返します。クライアントが
"majority"
未満の書込み保証 (write concern) をリクエストした場合、決定がクライアントに返された後にコミットがロールバックされる可能性があります。トランザクションには「書込みの読み取り」整合性がない場合があります。 つまり、読み取り操作では、その前の書込み操作の結果が表示されない場合があります。 これは、次の場合に発生する可能性があります。
トランザクションは複数のシャードに書込み (write) しなければなりません。
読み取りと以前の書込み (write) は、異なるセッションで行われます。
因果整合性は、同じセッション内で発生する読み取りと書き込みの因果関係のみを保証します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
coordinateCommitReturnImmediatelyAfterPersistingDecision
にtrue
を設定します。mongod --setParameter coordinateCommitReturnImmediatelyAfterPersistingDecision=true 次のように、実行中に
setParameter
コマンドを使用してパラメーターを設定することもできます。db.adminCommand( { setParameter: 1, coordinateCommitReturnImmediatelyAfterPersistingDecision: true } )
internalSessionsReapThreshold
バージョン 6.0 で追加。
デフォルト: 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 秒ごとに 1 回実行されます。クリーンアップ プロセスは、ストレージ キャッシュの負荷軽減に役立ちます。
transactionLifetimeLimitSeconds の最小値は
1
秒です。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
transactionLifetimeLimitSeconds
を30
秒に設定します。db.adminCommand( { setParameter: 1, transactionLifetimeLimitSeconds: 30 } ) スタートアップ時にパラメータ
transactionLifetimeLimitSeconds
を設定することもできます。mongod --setParameter "transactionLifetimeLimitSeconds=30" シャーディングされたクラスターのパラメーターを設定するには、すべてのシャード レプリカセットのノード パラメーターを変更する必要があります。
MongoDB 5.0以降では、
transactionLifetimeLimitSeconds
パラメーターを変更する場合、すべてのコンフィギュレーションサーバー レプリカ セット ノードに対して、同じtransactionLifetimeLimitSeconds
値に変更する必要があります。この値の一貫性を保つには、次の点に注意してください。ルーティング テーブルの履歴が、少なくともシャード レプリカセット ノードのトランザクション ライフタイム制限と同じ期間保持されるよう確認します。
トランザクションの再試行頻度を減らし、パフォーマンスを向上させます。
transactionTooLargeForCacheThreshold
バージョン 6.2 の新機能。
mongod
でのみ利用可能です。タイプ: 10 進数
デフォルト: 0.75
キャッシュの負荷により失敗したトランザクションを再試行するためのしきい値。この値は、ダーティ キャッシュ サイズに対する割合。デフォルト値の
0.75
は、ダーティ キャッシュの 75% を意味します。ダーティ キャッシュは合計キャッシュ サイズの 20% に制限されます。
transactionTooLargeForCacheThreshold
を0.75
に設定すると、サーバは、storage engine キャッシュの合計の 15%(0.75 * 20%
)未満を使用するトランザクションのみを再試行します。この制限は再試行にのみ適用されます。大規模なトランザクションでは、ダーティ キャッシュの
transactionTooLargeForCacheThreshold
% 以上を使用することができます。ただし、キャッシュの負荷により大規模なトランザクションがロールバックされた場合、サーバーはTransactionTooLargeForCache
エラーを発行し、トランザクションを再試行しません。この動作を無効にするには、
transactionTooLargeForCacheThreshold
を1.0
に設定します。このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
WiredTiger ストレージの詳細については、「
storage.wiredTiger
オプション」を参照してください。
maxTransactionLockRequestTimeoutMillis
mongod
でのみ利用可能です。タイプ: 整数
デフォルト: 5
マルチドキュメントトランザクションがトランザクション内の操作に必要なロックを取得するために待機する最大時間(ミリ秒単位)。
トランザクションが
maxTransactionLockRequestTimeoutMillis
待機した後にロックを取得できない場合、トランザクションは中止されます。デフォルトでは、マルチドキュメントトランザクションは
5
ミリ秒待機します。 つまり、トランザクションが5
ミリ秒以内にロックを取得できない場合、トランザクションは中止されます。 操作によってロックリクエストのタイムアウトが長くなった場合、maxTransactionLockRequestTimeoutMillis
は操作固有のタイムアウトを上書きします。maxTransactionLockRequestTimeoutMillis
は次のように設定できます。0
この場合、トランザクションが必要なロックをすぐに取得できないと、トランザクションは中止されます。必要なロックを取得するために指定された時間待機するには、
0
より大きい数値を指定します。これにより、高速に実行されているメタデータ操作など、一時的な同時ロック取得でトランザクションが中断されるのを防ぐことができます。ただし、これにより、デッドロックしたトランザクション操作の中止が遅れる可能性があります。-1
、操作固有のタイムアウトを使用します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次の例では、
maxTransactionLockRequestTimeoutMillis
を20
ミリ秒に設定します。db.adminCommand( { setParameter: 1, maxTransactionLockRequestTimeoutMillis: 20 } ) このパラメータは、起動時に設定することもできます。
mongod --setParameter maxTransactionLockRequestTimeoutMillis=20
スロットベースの実行パラメーター
planCacheSize
バージョン 6.3 で追加。
mongod
でのみ利用可能です。型: string
デフォルト: 5%
注意
planCacheSize
パラメーターは MongoDB の以前のバージョンにも存在していましたが、バージョン 6.3 まではプラン キャッシュには影響がありませんでした。プラン キャッシュのサイズをスロットベースのクエリ実行エンジンのみに設定します。
planCacheSize
値は次のいずれかに設定できます。プラン キャッシュに割り当てるシステムの合計物理メモリの割合。たとえば、
"8.5%"
。MB
またはGB
のいずれかのプラン キャッシュに割り当てる正確なデータ量。たとえば、"100MB"
や"1GB"
など。
プラン キャッシュ サイズを増やすと、 クエリ プランナー にキャッシュされた プラン キャッシュ クエリシェイプ が増えます。これによりクエリのパフォーマンスは向上しますが、メモリ使用量が増加します。
このパラメーターは、実行時とスタートアップ時に両方で使用できます。
実行時にパラメータを設定するには、
setParameter
コマンドを使用しますスタートアップ時にパラメータを設定するには、
setParameter
設定を使用します
次のスタートアップ コマンドでは、
planCacheSize
を80メガバイトに設定します。mongod --setParameter planCacheSize="80MB" MongoDB Shell 内で、
setParameter
コマンドを使用することもできます。db.adminCommand( { setParameter: 1, planCacheSize: "80MB" } )