有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
云数据库 MongoDB 支持对数据库部分参数进行调整,使得数据库特性能更好地适应业务需求。

背景信息

在日常运维过程中,快速调整数据库的部分参数可以针对性地优化数据库的查询、管理性能,适应时常变化的业务场景。同时,支持随时查看参数的修改历史记录,保证定位异常有据可依。

版本说明

当前 MongoDB 3.2及以上版本均支持对数据库参数进行修改。但每个版本可修改的参数存在差异,以控制台上展示的参数为准。

使用须知

当前参数修改功能仅支持修改后无需重启即可生效的参数,修改后需要重启生效的参数待后期版本更新。您也可通过 MongoDB 终端自行设置,重启会造成连接中断,请提前做好业务安排,谨慎操作。
更新集群架构或配置,例如,调整配置规格、调整节点、调整分片、节点升级、节点迁移等操作,不需要重复进行参数配置,系统将自动同步参数配置的数据。

前提条件

实例状态运行正常。

操作步骤

查询参数配置

1. 登录 MongoDB 控制台
2. 在左侧导航栏,选择副本集实例或者分片实例,二者操作过程类似。
3. 在右侧实例列表中,找到目标实例。
4. 单击目标实例 ID,进入实例详情页面。
5. 选择参数配置页签,查看数据库参数配置情况。

修改参数配置

1. 可修改参数页签,单击修改运行值
2. 当前运行参数值列的输入框,重新设置需修改的参数值。如下图所示。
说明:
您可以同时修改多个参数。
修改参数时,请务必根据参考值设置。
修改后需重启列,关注是否会重启实例,重启会造成连接中断,请提前做好业务安排,谨慎操作。

参数生效范围因实例版本与架构有关,当前版本支持修改的参数如下表所示。
参数名
修改后是否重启
默认值
参考值
支持版本
支持实例类型
适用范围
参数解释
operation.profiling.slowOpThresholdMs
100
[0-65536]
4.0、4.2、4.4
副本集、分片实例
mongod、mongos
设置慢查询时间判定时间,单位:毫秒。
operationProfiling.mode
off
[off | slowOp | all]
4.0、4.2、4.4
副本集、分片实例
mongod
该参数用于设置数据库的操作性能分析模式。通过设置不同的模式,可以记录数据库操作的性能数据,以便进行性能优化和故障排查。该参数有以下几种可选值:
off:关闭操作性能分析。
slowOp:记录慢操作,即执行时间超过阈值的操作,默认阈值为 100 毫秒。
all:记录所有操作的性能数据。
setParameter.cursorTimeoutMillis
600000
[1-2147483647]
3.2、3.6、4.0、4.2、4.4
副本集、分片实例
3.2与3.6:mongod4.0、4.2、4.4:mongod、mongos
该参数用于设置游标的最大空闲时间,即游标在一定时间内没有被使用时会被自动关闭,释放相关资源。默认情况下,该参数的值为 10 分钟。如果需要延长或缩短游标的超时时间,可以通过修改该参数的值来实现。需要注意的是,如果将该参数设置为 0,则表示禁用游标超时机制,游标将一直保持打开状态,直到客户端主动关闭为止。
setParameter.intenalQueryExecMaxBlockingSortBytes
33554432
[33554432-268435456]
4.0、4.2、4.4
副本集、分片实例
mongod、mongos
该参数控制了 MongoDB 在执行排序操作时所能使用的最大内存量。当 MongoDB 执行一个需要排序的查询时,它可能需要在内存中对结果集进行排序。如果结果集的大小超过了所设置的值,MongoDB 就会使用磁盘来进行排序操作,这可能会导致性能下降。单位:Byte。
setParameter.maxTransactionLockRequestTimeoutMillis
5
[0-60]
4.0、4.2、4.4
副本集、分片实例
mongod
该参数控制了 MongoDB 事务在等待获取锁时的最大超时时间。当一个事务需要获取一个锁时,如果该锁已被其他事务持有,那么该事务就会等待一段时间,尝试获取该锁。如果等待时间超过了该参数设置的值,该事务就会抛出一个超时异常。单位:毫秒。
setParameter.transactionLifetimeLimitSeconds
60
[5-300]
4.0、4.2、4.4
副本集、分片实例
mongod
设置单个事务的最长生命周期,单位:秒。当一个事务开始执行时,MongoDB 会为该事务分配一个唯一的事务 ID,并记录该事务的开始时间。如果该事务在所设置的时间内没有完成,MongoDB 就会自动回滚该事务并释放相关资源。
setParameter.failIndexKeyTooLong
true
[true | false]
3.2、3.6、4.0
副本集、分片实例
mongod
设置是否限制索引键的长度。
如果该参数被设置为 true,当MongoDB 创建一个索引时,如果该索引键的长度超出了 MongoDB所支持的最大限制,MongoDB 就会抛出一个错误并拒绝创建该索引
balance.window
NULL
[00:00 | 23:00]
4.0、4.2、4.4
分片实例
mongos
MongoDB 集群均衡操作用于将集群中的数据尽可能均匀地分布到各个节点上,以提高集群的性能和可用性。该参数指定 MongoDB 在多长时间内对集群进行一次均衡操作,以确保数据在节点之间的均匀分布。
openBalance.window
false
[true | false]
4.0、4.2、4.4
分片实例
mongos
启用或禁止 balance 窗口。
3. 单击确定,完成修改。

查询参数配置修改记录

1. 参数配置页签,单击修改历史
2. 查看参数修改的历史记录,您可以查看参数修改前后的值、修改状态以及修改时间。