OPTIONS
翻译或纠错本页面

修改集群中数据块的大小

在第一个 mongos 连接到一组 配置服务器 时, 会以默认的64M大小的数据块初始化集群,在大多数情况下,默认的大小工作得很好.然而,如果你发现在默认的数据块大小下,自动迁移锁花费的I/O超过了系统可承受的极限,可以将数据块大小调小.对于自动分裂和迁移,较小的数据块可以使得迁移速度较快且较频繁.合法的数据块大小在1M到1024M之间,包含1M和1024M.

使用以下过程修改数据块的大小:

  1. 使用 mongo 终端连接任意一个 mongos .

  2. 使用以下命令切换到 Config Database:

    use config
    
  3. 使用 save() 保存全局的数据块大小:

    db.settings.save( { _id:"chunksize", value: <sizeInMB> } )
    

注解

配置 chunkSize 和选项 --chunkSize 作为启动参数启动 mongos ,在初始化集群之后 不要 影响数据块大小.

为避免引起混乱,只使用 save() 修改数据块大小,而不使用在启动 mongos 时传递参数修改.

修改数据块大小有一些限制:

  • 自动分裂只发生在写入与更新时.

  • 如果减小了数据块大小,集群需要一段时间才能将所有的数据块分裂到新的值.

  • 分裂不能被回滚

  • 如果增大了数据块的大小,已存在的数据块只能通过写入和更新逐渐达到新的值.

  • 合法的数据块大小范围为1M到1024M,包含1M和1024M.