MongoDB 4.2 需关闭FlowControl流控机制
  FDpwo5yIejAq 2023年11月02日 41 0

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  xaeiTka4h8LY   2024年05月31日   39   0   0 数据库mongodb
FDpwo5yIejAq