• MongoDB 分片管理(四)数据均衡


    通常来说,MongoDB会自动处理数据均衡。

    1.1 集群分片的块的均衡

    注意,均衡器只使用块的数量,而非数据大小,来作为衡量分片间是否均衡的指标。

    1.2 均衡器

    1、执行所有数据库管理操作前,都应关闭均衡器

    >sh.setBalancerState(flase) --不可用

    >sh.stopBalancer()  停止Balancer
    >sh.startBalancer() 开启Balancer

    均衡器关闭后,系统则不会在进入均衡状态。

    到那时给命令不能立即终止正在进行中的均衡过程:迁移过程通常无法立即停止。

    2、查看config.locks集合,一查看均衡器过程是否仍在进行中

    >db.locks.find({"_id":"balancer"})["state"]

    0表示关闭

    3、均衡器会增加系统负载

    目标分片必须查询源分片中的所有文档,将文档插入目标分片的块中,源分片最后必须删除这些文档。

    在以下两种情况下,迁移会导致性能问题

    (1)使用热点片键可保证定期迁移(因为所有的新块都是创建在热点上的)。系统必须有能力

    处理源源不断写入到热点分片上的数据。

    (2)向集群中添加新分片时,均衡器会试图为该分片写入数据,从而触发一些列的迁移过程。

    4、可以在config.settings集合中为数据均衡指定一个时间窗口

    如指定了均衡时间窗口,则应该对其进行严密监控,以确保mongos确实只在指定的时间内做均衡。

    执行下列更新语句,均衡则只会在下午1点到4点间发生

    >db.settings.update({"_id":"balancer"},

    {"$set":{"activeWindow":{"start":"13:00","stop":"16:00"}}},

    true

  • 相关阅读:
    后勤数据抽取流程图 Logistic Data Extraction
    WINDOWS两条线路上网的解决办法
    Zabbix Agent for Linux部署
    Java项目的自动更新并构建脚本
    使用Goole搜索引擎
    golang程序性能优化方法----不断更新
    golang性能分析策略
    问题分析:引入新elastic api导致的TIME_WAIT堆积
    数据权限限定办法
    MariaDB集群搭建
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11271683.html
Copyright © 2020-2023  润新知