18.MongoDB之balancer

本文介绍了MongoDB的balancer(均衡器)功能,包括其原理、影响数据库性能的因素以及如何管理balancer。通过设置迁移窗口和禁用autosplit,可以减少balancer对业务的影响。实验表明,关闭autosplit可以显著降低CPU占用,但可能会影响chunk的分裂。MongoDB的后续版本已解决jumbo chunk导致的性能问题。
摘要由CSDN通过智能技术生成

可以参考分片集群的介绍  这里

可以参见chunk预分片的介绍  这里

关于均衡及官网介绍 这里 这里

前言:使用MongoDB当你对Chunk、Split、Balancer(甚至于jumbochunk、autosplit)有一定了解后,MongoDB就不应该是一个整体了。分分合合、动态平衡的画面应该在你的脑海中呈现。

一、balancer(均衡器)简介

1、简介

①Balancer是一个监视各个shard上的chunk数的后台进程;

②他运行在Config Server副本集的primary节点上。

③当给定分片上的chunk数达到特定的 migration thresholds(迁移阈值) 时,均衡器会尝试在分片之间自动进行chunk迁移,以使得每个分片上的chunk数“相同”(注:也并非完全的一个不差)。

④分片集群的balance过程对用户和应用程序层都是完全透明的,只不过在执行该过程时可能会对数据库性能产生一些影响。默认情况下balanced进程是一直开启的。

2、chunk迁移会对数据库性能有负面影响

        chunk迁移会在带宽和工作负载方面会带来一定的开销,这两方面都会影响数据库性能。均衡器通过以下方式将影响降至最低:1)限制分片在任何给定时间最多只有一个迁移;也就是说一个shard不能同时参与多个块迁移。举个例子:为了从一个shard迁移多个块,均衡器会一次迁移一个块进行多次迁移,而不是多个块同时迁移。2)仅当分片集合中块数最多的分片与该集合中块数最少的分片之间的块数差异达到迁移阈值时,才触发平衡操作。

注:从MongoDB 3.4开始,MongoDB可以执行并行chunk迁移。观察到一个shard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焱齿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值