zoukankan      html  css  js  c++  java
  • YCSB测试MongoDB分片

     下面测试一下分片(我这里的分片参见我前面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

    你只管努力,其他的交给天意~
  • 相关阅读:
    Qt QChart 中 QValueAxis 和 QCategoryAxis 区别
    Qt QChart 绘制面积图 QAreaSeries
    Qt QChart 设置线条样式 虚线
    Qt 读取csv文件并且绘制折线图
    Qt comboBox控件的三种基本用法
    Qt QStringList 的学习笔记
    OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题
    如何避免 Go 命令行执行产生“孤儿”进程?
    阿里巴巴代码平台架构的演进之路
    云原生演进趋势下传统数据库升级实践
  • 原文地址:https://www.cnblogs.com/genghenggao/p/10732234.html
Copyright © 2011-2022 走看看