0
点赞
收藏
分享

微信扫一扫

MongoDB 4.2 需关闭FlowControl流控机制

MongoDB 4.2 版本引入了流量控制特性,用于保持副本集多数提交延迟不超过指定的最大值,从而确保数据的一致性和可靠性。如果复制延迟达到"flowControlTargetLagSeconds" : 10(秒),流量控制机制就会开始限制主节点上的写入操作

db.adminCommand( { getParameter : 1, "flowControlTargetLagSeconds" : 1 } )

这个原理跟MySQL MGR的流控相似。

默认情况下,MongoDB 启动后会自动开启流量控制,生产环境应将其关闭,以防止高并发期间自动触发限流,造成主库不可写,引起生产事故。

1)动态关闭:

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

2)写死在mongod.cnf配置文件里:

INI格式:

setParameter    =   enableFlowControl = false

YAML格式:

setParameter:

 enableFlowControl: false

3) 查看:

db.adminCommand( { getParameter : 1, "enableFlowControl" : 1 } )

m5_rs1:PRIMARY> db.adminCommand( { getParameter : 1, "enableFlowControl" : 1 } )

{

"enableFlowControl" : false,

"ok" : 1,

"$clusterTime" : {

 "clusterTime" : Timestamp(1697178044, 1),

 "signature" : {

  "hash" : BinData(0,"xfDl3MZO+Xh+dX/NoLa7Z1XYFps="),

  "keyId" : NumberLong("7259236166149341189")

 }

},

"operationTime" : Timestamp(1697178044, 1)

}

m5_rs1:PRIMARY>

或执行:

db.serverStatus().flowControl

m5_rs1:PRIMARY> db.serverStatus().flowControl

{

"enabled" : false,

"targetRateLimit" : 1000000000,

"timeAcquiringMicros" : NumberLong(186),

"locksPerKiloOp" : 0,

"sustainerRate" : 0,

"isLagged" : false,

"isLaggedCount" : 0,

"isLaggedTimeMicros" : NumberLong(0)

}

参考:https://mydbops.wordpress.com/2023/05/29/understanding-flow-control-in-mongodb-manage-replication-lag-and-enhance-performance/

https://www.mongodb.com/docs/v4.2/reference/parameters/#param.enableFlowControl

举报

相关推荐

0 条评论