开启Balancer容易导致间断性操作数为0,因为在movechunk。
采用范围分布,关闭Balancer容易导致负载不均衡,可以采用手动分片,随机片键。随机片键,不容易找到分割点。
shard相关操作
// 添加shard
sh.addShard("192.168.10.82:25510");
sh.addShard("192.168.10.41:25510");
// 允许分片
sh.enableSharding("test");
//设置片键
sh.shardCollection("test.call_info_tab",{"sidReporter":1,_id:1});
//关闭Balancer
sh.stopBalancer();
//获取Balancer状态
sh.getBalanerState();
//修改chunksize大小,另外一种方式在启动配置文件中指定
db.setting.save({_id:"chunksize","value":1024});
//获取shard当前状态
sh.status();
//手动分片,指定片键分割点
sh.splitAt("test.call_info_tab",{_id:0});
//移动分片,参数依次为:collection,移动chunk所包含的片键范围,目标shard
sh.moveChunk("test.call_info_tab",{_id:{$lt:0}},"shard0000");
ps. 多台服务器性能反而不如单机性能,原因未知。
采用范围分布,关闭Balancer容易导致负载不均衡,可以采用手动分片,随机片键。随机片键,不容易找到分割点。
shard相关操作
// 添加shard
sh.addShard("192.168.10.82:25510");
sh.addShard("192.168.10.41:25510");
// 允许分片
sh.enableSharding("test");
//设置片键
sh.shardCollection("test.call_info_tab",{"sidReporter":1,_id:1});
//关闭Balancer
sh.stopBalancer();
//获取Balancer状态
sh.getBalanerState();
//修改chunksize大小,另外一种方式在启动配置文件中指定
db.setting.save({_id:"chunksize","value":1024});
//获取shard当前状态
sh.status();
//手动分片,指定片键分割点
sh.splitAt("test.call_info_tab",{_id:0});
//移动分片,参数依次为:collection,移动chunk所包含的片键范围,目标shard
sh.moveChunk("test.call_info_tab",{_id:{$lt:0}},"shard0000");
ps. 多台服务器性能反而不如单机性能,原因未知。