子社区
云上运维
云原生
数据库
大数据
AIoT云端一体
云效DevOps
平头哥
钉钉开放平台
个人中心
2022-03-28 65
📣读完这篇文章里你能收获到
@TOC
举例:所需存储总量8TB单服务器可挂载容量 2TB工作集大小 400GB单服务器内存容量 256GB并发量总数 30000单服务器并发量 9000
除了单服务器并发量需要实际压测外,其余均可预估A = 8TB / 2TB = 4B = 400GB / (256G * 0.6) = 3C = 30000 / (9000*0.7) = 6分片数量 = max(A, B, C) = 6
15、16、17、18四个 chunk 的数据量、访问压力远大于其他 chunk
60%
echo "192.168.1.1 demo1 member1.example.com member2.example.com" >> /etc/hosts echo "192.168.1.2 demo2 member3.example.com member4.example.com" >> /etc/hosts echo "192.168.1.3 demo3 member5.example.com member6.example.com" >> /etc/hosts
/data
在member1 / member3 / member5 上执行以下命令: mkdir -p /data/shard1/ mkdir -p /data/config/ 在member2 / member4 / member6 上执行以下命令: mkdir -p /data/shard2/ mkdir -p /data/mongos/
在 member1 / member3 / member5 上执行以下命令:
mongod --bind_ip 0.0.0.0 --replSet shard1 --dbpath /data/shard1 --logpath /data/shard1/mongod.log --port 27010 --fork --shardsvr --wiredTigerCacheSizeGB 1
mongo --host member1.example.com:27010 rs.initiate({ _id: "shard1", "members": [ { "_id": 0, "host": "member1.example.com:27010" }, { "_id": 1, "host": "member3.example.com:27010" }, { "_id": 2, "host": "member5.example.com:27010" } ] });
mongod --bind_ip 0.0.0.0 --replSet config --dbpath /data/config --logpath /data/config/mongod.log --port 27019 --fork --configsvr --wiredTigerCacheSizeGB 1
# mongo --host member1.example.com:27019 rs.initiate({ _id: "config", "members": [ { "_id": 0, "host": "member1.example.com:27019" }, { "_id": 1, "host": "member3.example.com:27019" }, { "_id": 2, "host": "member5.example.com:27019" } ] });
# mongos --bind_ip 0.0.0.0 --logpath /data/mongos/mongos.log --port 27017 --fork --configdb config/member1.example.com:27019,member3.example.com:27019,member5.example.com:27019 # 连接到mongos, 添加分片 # mongo --host member1.example.com:27017 mongos > sh.addShard("shard1/member1.example.com:27010,member3.example.com:27010,member5 .example.com:27010");
# 连接到mongos, 创建分片集合 # mongo --host member1.example.com:27017 mongos > sh.status() mongos > sh.enableSharding("foo"); mongos > sh.shardCollection("foo.bar", {_id: 'hashed'}); mongos > sh.status(); # 插入测试数据 use foo for (var i = 0; i < 10000; i++) { db.bar.insert({i: i}); }
mongod --bind_ip 0.0.0.0 --replSet shard2 --dbpath /data/shard2 --logpath /data/shard2/mongod.log --port 27011 --fork --shardsvr --wiredTigerCacheSizeGB 1
# mongo --host member2.example.com:27011 mongo --host member1.example.com:27010 rs.initiate({ _id: "shard2", "members": [ { "_id": 0, "host": "member2.example.com:27011" }, { "_id": 1, "host": "member4.example.com:27011" }, { "_id": 2, "host": "member6.example.com:27011" } ] });
# 连接到mongos, 添加分片 # mongo --host member1.example.com:27017 mongos > sh.addShard("shard2/member2.example.com:27011,member4.example.com:27011, member6.example.com:27011"); mongos > sh.status()
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
评论
评论