YCSB测试MongoDB分片

本文详细介绍了MongoDB分片的配置过程,包括启动配置服务器、分片服务器和mongos,以及如何在程序中设置分片配置使分片机制生效。通过YCSB进行分片压力测试,展示了分片在高负载下的表现。

 下面测试一下分片(我这里的分片参见我前面MongoDB分片搭建

启动

MongoDB中的启动顺序是,先启动配置服务器,在启动分片,最后启动mongos。(三台机器)

mongod -f /usr/local/mongodb/conf/config.conf
mongod -f /usr/local/mongodb/conf/shard1.conf
mongod -f /usr/local/mongodb/conf/shard2.conf
mongod -f /usr/local/mongodb/conf/shard3.conf
mongos -f /usr/local/mongodb/conf/mongos.conf

串联路由服务器

搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。

登陆任意一台mongos

mongo --port 20000

使用admin数据库

use  admin

串联路由服务器与分配副本集

sh.addShard("shard1/192.168.0.100:27001,192.168.0.101:27001,192.168.0.102:27001");
sh.addShard("shard2/192.168.0.100:27002,192.168.0.101:27002,192.168.0.102:27002");
sh.addShard("shard3/192.168.0.100:27003,192.168.0.101:27003,192.168.0.102:27003");

查看集群状态

sh.status()

登陆任意一台mongos

mongo --port 20000

使用管理数据库

use  admin

指定TESTDB(数据库)分片生效

db.runCommand( { enablesharding :"testdb"});

指定数据库里需要分片的集合和片键,哈希id分片

db.runCommand( { shardcollection : "testdb.table1",key : {"_id": "hashed"} } );

我们设置testdb的table1表需要分片,根据i_d自动分片到shard1,shard2,shard3上面去。要这样设置是因为不是所有mongodb的数据库和表都需要分片!

测试分片配置结果

连接MongoDB路由服务

mongo  127.0.0.1:20000

YCSB进行MongoDB分片压力测试

./bin/ycsb load mongodb -threads 100 -s -P workloads/mongotest_in_only -p mongodb.url=mongodb://127.0.0.1:20000/ycsb?w=0 > outputLoad_shard.txt

使用Mongostat辅助测试(我这里ycsb数据库没有指定用户及密码)

mongostat --host 127.0.0.1:20000 --authenticationDatabase ycsb

 

转载于:https://www.cnblogs.com/genghenggao/p/10732234.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值