更新时间:2024-03-13 GMT+08:00

参数调优

数据库参数是数据库系统运行的关键配置信息,设置不合适的参数值可能会影响业务。本文列举了一些重要参数说明。更多参数的详细说明请参见MongoDB官网

如需通过控制台界面修改参数值,请参见修改DDS实例参数

  • enableMajorityReadConcern

    该参数表示读取数据时,是否需要从大多数节点获取一致的数据后才返回结果。

    默认值为“false”表示读取数据时,不需要从大多数节点获取一致数据后返回结果,即从单个节点上读取数据就可以返回结果。

    该参数设为true的时候,表示读取数据时,需要从大多数节点获取一致数据后才返回结果。该操作会导致LAS文件过大,进而造成CPU过高和磁盘占用大。

    在DDS中,不支持设置majority级别的readConcern。对于需要majorityReadConcern的场景,可以将WriteConcern设置为majority,表示数据写入到大多数节点了,这样也就保证了大多数节点的数据一致了。然后通过读取单个节点的数据,就能保证用户读到的数据已经写入到大多数节点,而这样的数据不会发生回滚,避免了脏读的问题。

    MongoDB可以通过writeConcern来定制写策略,通过readConcern来定制读策略。

    当指定readConcern级别为majority时,能保证用户读到的数据已经写入到大多数节点,而这样的数据不会发生回滚,避免了脏读的问题。

  • failIndexKeyTooLong

    默认值为“true”

    该参数不支持修改,避免过长索引Key。

  • net.maxIncomingConnections

    该参数表示dds mongos或mongod可接受的最大同时连接数量。该参数依赖于实例的规格,实例规格不同对应其默认值也不同。因此,此参数在用户未设置前显示为“default”,表示该参数随内存规格变化。

  • security.javascriptEnabled

    默认值为“false”

    该参数表示是否允许mongod上执行JavaScript脚本。为了安全考虑,默认值为“false”,表示不允许mongod上执行JavaScript脚本,mapreduce、group等命令也将无法使用。

  • disableJavaScriptJIT

    默认值为“true”

    该参数表示是否禁用JavaScriptJIT编译技术。JavaScriptJIT编译技术实现了即时 (JIT) 编译以提高运行脚本时的性能。

    “disableJavaScriptJIT”默认值为“true”,表示禁用JavaScriptJIT编译技术。如果需要启用JavaScriptJIT编译技术,可以将“disableJavaScriptJIT”的值设置为“false”

  • operationProfiling.mode

    默认值为“slowOp”

    该参数表示数据库分析器的级别。

    该参数支持如下取值:

    • 默认值为“slowOp”,表示对于耗时超过慢查询阈值的操作,采集器采集数据。
    • 取值为“off”,表示分析器关闭,不收集任何数据。
    • 取值为“all”,表示采集器采集所有操作的数据。
  • operationProfiling.slowOpThresholdMs

    默认值为“500”,单位为ms。

    该参数表示慢查询的时间阈值,单位为毫秒,超过该阈值的操作将被认为是慢操作。

    如无特殊需求,建议使用默认值500ms。

  • maxTransactionLockRequestTimeoutMillis

    默认值“5”,取值范围为5~100,单位为ms。

    该参数表示事务等待获取锁的时间,超过该时间则事务回滚。