首页 > 数据库 >MongoDB 4.4 数据库参数详细说明(二) - 一般参数

MongoDB 4.4 数据库参数详细说明(二) - 一般参数

时间:2022-09-29 12:01:26浏览次数:48  
标签:4.4 mongod 设置 MongoDB TFO 默认 参数 mongos 版本


1.connPoolMaxShardedConnsPerHost

**作用:**设置用于与分片通信的legacy连接池的最大大小。 池的大小不会阻止创建其他连接,但是会阻止连接池保留超出此限制的连接。

**默认:**200

**可用对象:**mongod和mongos

配置文件中配置,或mongod命令行中配置

2.connPoolMaxShardedInUseConnsPerHost

3.6.3版本开始引入该参数

**作用:**分片群集连接池的最大使用中连接数。

**默认:**未设置

**可用对象:**mongod和mongos

配置文件中配置,或mongod命令行中配置

3.shardedConnPoolIdleTimeoutMinutes

3.6.3版本开始引入该参数

**作用:**群集连接池中的连接在关闭之前可以保持空闲的时间限制。

**默认:**未设置

**可用对象:**mongod和mongos

配置文件中配置,或mongod命令行中配置

4.connPoolMaxConnsPerHost

**作用:**设置用于与全局连接池中其他mongod实例的传出连接的连接池的最大大小。 连接池的大小不会阻止创建其他连接,但是会阻止连接池保留超出​​connPoolMaxConnsPerHost​​值的连接。

**默认:**200

**可用对象:**mongod和mongos

配置文件中配置,或mongod命令行中配置

5.connPoolMaxInUseConnsPerHost

3.6.3版本开始引入该参数

**作用:**设置在任何给定时间用于到旧全局连接池中其他mongod实例的发出连接的最大使用中连接数。

**默认:**未设置

**可用对象:**mongod和mongos

配置文件中配置,或mongod命令行中配置

6.globalConnPoolIdleTimeoutMinutes

3.6.3版本开始引入该参数

**作用:**设置全局连接池中的连接在关闭之前可以保持空闲的时间限制。

**默认:**未设置

**可用对象:**mongod和mongos

配置文件中配置,或mongod命令行中配置

7.cursorTimeoutMillis

**作用:**在MongoDB删除闲置游标之前,以毫秒为单位设置到期阈值; 即MongoDB会删除对于指定的cursorTimeoutMillis处于空闲状态的游标。

**默认:**600000(10分钟)

**可用对象:**mongod和mongos

mongod命令行中配置,或db.adminCommand( { setParameter: 1, cursorTimeoutMillis: 300000 } )

将​​cursorTimeoutMillis​​​设置为小于或等于0会导致所有游标立即超时。 通常,超时时间应大于查询返回结果的平均时间。 使用类似​​cursor.explain()​​游标修饰符之类的工具来分析平均查询时间并选择适当的超时时间。

8.failIndexKeyTooLong

从4.4版本开启移除该参数

重要:

  • MongoDB 4.4删除了不建议使用的​​failIndexKeyTooLong​​参数。 尝试在MongoDB 4.4上使用此参数将导致错误。
  • MongoDB 4.2弃用了​​failIndexKeyTooLong​​参数,并删除了FeatureCompatibilityVersion(fCV))设置为“ 4.2”或更大的索引键长度限制。

**作用:**对于将featureCompatibilityVersion(fCV)设置为“ 4.0”或更早版本的MongoDB 2.6至MongoDB版本,将应用索引key长度限制。 如果尝试插入或更新其索引字段超出“索引关键字长度限制”的文档,则该操作将失败并将错误返回给客户端。

为避免此问题,请考虑使用散列索引或为计算值建立索引。 如果您已有数据集并希望禁用此行为,以便可以升级然后逐步解决这些索引问题,则可以使用​​failIndexKeyTooLong​​禁用此行为。

将​​failIndexKeyTooLong​​​设置为false是一个临时解决方法,而不是永久解决索引键过大的问题。 将​​failIndexKeyTooLong​​设置为false时,如果查询使用的索引跳过了索引字段超过“索引关键字长度限制”的文档,则可能返回不完整的结果。

**默认:**true

**可用对象:**mongod

mongod命令行中配置,或db.adminCommand( { setParameter: 1, failIndexKeyTooLong: false } )

9.notablescan

**作用:**是否允许执行全表扫描的查询,如果设置1或true,则不会不执行全表扫描的查询并返回错误信息。包括所有查询。

只可在测试环境启用该参数,生产环境千万不要启用。

**默认:**false

**可用对象:**mongod

10.ttlMonitorEnabled

**作用:**为了支持TTL索引,mongod实例具有一个后台线程,该线程负责从具有TTL索引的集合中删除文档。

**默认:**true

**可用对象:**mongod

mongod命令行中配置,或db.adminCommand( { setParameter: 1, ttlMonitorEnabled: false } )

11.tcpFastOpenServer

4.4版本引入该参数

**作用:**启用对从客户端接受到mongod / mongos的入站TCP快速打开(TFO)连接的支持。 TFO需要客户端和mongod / mongos主机支持,并启用TFO:

Windows

以下Windows操作系统支持TFO:

  • Microsoft Windows Server 2016及更高版本。
  • Microsoft Windows 10更新1607及更高版本。

macOS

macOS 10.11 (El Capitan)及之后版本支持TFO.

Linux

​ ​​内核3.7​​及以上版本支持入站TFO

​ 设置 ​​/proc/sys/net/ipv4/tcp_fastopen​​值来启用TFO:

1.设置2,启用入站TFO连接

2.设置3,启用入站和出战TFO连接

**默认:**true

**可用对象:**mongod和mongos

mongod命令行中配置,或配置文件中配置

12.tcpFastOpenClient

4.4版本引入该参数,只对Linux可用

**作用:**启用对从客户端接受到mongod / mongos的入站TCP快速打开(TFO)连接的支持。 TFO需要客户端和mongod / mongos主机支持,并启用TFO:

​内核4.11​​及以上版本支持出站TFO

设置 ​​/proc/sys/net/ipv4/tcp_fastopen​​值来启用TFO:

  • 设置1,启用出站TFO连接
  • 设置3,启用入站和出战TFO连接

**默认:**true

**可用对象:**mongod和mongos

13.tcpFastOpenQueueSize

4.4版本引入该参数

**作用:**作为建立TCP快速开放(TFO)连接的一部分,客户端在完成标准的TCP三向握手之前,向mongod / mongos提交有效的TFO cookie。 mongod / mongos将所有此类未决的TFO连接保留在队列中。

tcpFastOpenQueueSize参数设置未决TFO连接的队列大小。 当队列已满时,mongod / mongos会退回常规的三向握手(针对传入的客户端请求),并忽略TFO cookie的存在。 一旦队列大小回到限制以下,mongod / mongos将开始接受新的TFO cookie。

  • 增加默认队列大小可能会改善TFO对网络性能的影响。 但是,由于过多的传入TFO请求,大队列大小也增加了服务器资源耗尽的风险。
  • 减小默认队列大小可能会减少由于过多的传入TFO请求而导致资源服务器资源耗尽的风险。 但是,较小的队列大小也可能会降低TFO对网络性能的影响。
    最小队列大小为0。队列0可以有效禁用TFO。

**默认:**1024

**可用对象:**mongod和mongos

14.disableJavaScriptJIT

从4.0版本开始,该参数默认值改为false(禁用JavaScript),之前为true

**作用:**MongoDB JavaScript引擎使用SpiderMonkey,它实现了即时(JIT)编译,以提高运行脚本时的性能。

**默认:**false(4.0及以后版本),true(4.0之前版本)

**可用对象:**mongod

db.adminCommand( { setParameter: 1, disableJavaScriptJIT: false } )

mongod --setParameter disableJavaScriptJIT=false

15.maxIndexBuildMemoryUsageMegabytes

3.4开始引入该参数

**作用:**限制创建索引时所用的内存大小,单位:MB

默认:

  • 200(对于4.2.3及更高版本)
  • 500(对于4.2.2和更早版本)

**可用对象:**mongod

4.2版本变化:

  • 如果FCV(​​setFeatureCompatibilityVersion​​)设置为4.2,那么是作用于所有索引
  • 如果FCV设置为4.0,那么只作用于前台创建的索引

16.reportOpWriteConcernCountersInServerStatus

4.0.6版本引入该参数

**作用:**是否在​​db.serverStatus()​​​命令中返回​​opWriteConcernCounters​​信息。

**默认:**false

**可用对象:**mongod

mongod命令行中配置,或配置文件中配置

17.watchdogPeriodSeconds

**作用:**指定检测数据库相关文件系统状态的频率,单位:秒

  • ​--dbpath​​指定的目录
  • ​--dbpath​​指定目录中的journal目录,如果启用了journal
  • ​--logpath​​日志文件
  • ​--auditpath​​审计文件

参数有效值:

  • -1
  • 大于等于60的整数

注意:

  • 如果检测到文件或目录无响应,那么会等待差不多两倍的​​watchdogPeriodSeconds​​设置时间来终止mongodb进程。
  • 如果检测目录是连接到其他目录来的,那么不会检测连接的目标端目录。

默认:-1 (disable),也就是不检测

**可用对象:**mongod

启用监控只能在数据库启动时通过​​--setParameter​​配置

mongod --setParameter watchdogPeriodSeconds=60

但是可以在数据库允许期间暂停监控或修改监控频率

  • 暂停
    db.adminCommand( { setParameter: 1, watchdogPeriodSeconds: -1 } )
  • 修改频率
    db.adminCommand( { setParameter: 1, watchdogPeriodSeconds: 120 } )

18.tcmallocReleaseRate

是版本4.2.3中的新功能,但在3.6.17+和4.0.14+中也可用

**作用:**指定TCMalloc 释放速度,在支持内存的系统上,我们通过madvise(MADV_DONTNEED)将未使用的内存释放给系统的速率。 零表示我们永远不会将内存释放回系统。 增加此标志以更快地返回内存; 减少它以更慢地返回内存。 合理的比率在[0,10]范围内。

**默认:**1

**可用对象:**mongod

运行期间或启动数据库可修改

db.adminCommand( { setParameter: 1, tcmallocReleaseRate: 5.0 } )

mongod --setParameter “tcmallocReleaseRate=5.0”


标签:4.4,mongod,设置,MongoDB,TFO,默认,参数,mongos,版本
From: https://blog.51cto.com/u_12946336/5722445

相关文章

  • MongoDB4.4新特性-不再一起发布相关工具
    从4.4版本开始,mongoexport等相关工具不再随着数据库安装包一起发布了,将单独作为一个安装包发布​​MongoDBDatabaseToolsproject:​​(https://docs.mongodb.com/databas......
  • 可变参数
    可变参数JDK1.5开始,Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号(...)。一个方法中只能指定一个可变参数,它必须是方法的最后一......
  • 如何将有参数装饰器的括号去掉,当成无参数装饰器使用
    importtimedefdelayed_start(func=None,*,duration=1):#这一层主要是装饰器参数defdecorator(_func):#这一层主要是将被装饰器装饰的函数传递进来......
  • Flask 学习-81.Flask-RESTX使用reqparse 解析器校验枚举类型choices 参数
    前言reqparse.RequestParser()解析器可以校验枚举类型,在add_argument中使用choices参数choices设置参数可选值比如性别设置可选项:男、女defpost(self):......
  • nginx 配置参数优化
    nginx作为高性能web服务器,即使不特意调整配置参数也可以处理大量的并发请求。以下的配置参数是借鉴网上的一些调优参数,仅作为参考,不见得适于你的线上业务。worker进程worker......
  • [Spring MVC] Controller接受参数问题,针对@RequestParam
    用实体类接收测试实体类publicclassTestEntity{privateStringname;privateIntegerage;//gettersettertoString}Controller代码@PostMapp......
  • python-函数的参数与返回值
    Python函数4.1、函数初识在编写程序的过程中,有某一功能代码块出现多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数就......
  • 使用Openfeign远程调用时参数为MultipartFile的使用注意事项
    摘要我们在使用openfeign进行远程调用时如果使用到参数为MultipartFile的情况时会有一些些许的差别注意事项//1.@RequestPart替换@RequestParam//2.consumes=MediaTy......
  • 高精度PTP时钟服务器(PTP网络时钟同步)技术参数书
    高精度PTP时钟服务器(PTP网络时钟同步)技术参数书高精度PTP时钟服务器(PTP网络时钟同步)技术参数书京准电子科技官微——ahjzsz一、PTP网络时钟服务器产品概述HR-901GB型PT......
  • Q4.4.6.1. 区间最长不上升子串
    Q4.4.6.1.区间最长不上升子串BZOJ4491.我也不知道题目名字是什么差分,转化为连续区间上最长>=0或<=0的区间每个节点维护区间前缀最大值,后缀最大值,区间答案......