YCSB进行mongodb性能测试

  所用工具:YCSB(https://github.com/brianfrankcooper/YCSB)
  墙裂建议用这个YCSB压测工具,个人使用发现十分简单高效,比之前用过的jmeter做接口压测还要简单,YCSB需要依赖maven和jdk,所以要先按照这两个,安装步骤直接贴官方文档:

Install Java and Maven
Go to http://www.oracle.com/technetwork/java/javase/downloads/index.html

and get the url to download the rpm into your server. For example:

    wget http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-linux-x64.rpm?AuthParam=11232426132 -o jdk-7u40-linux-x64.rpm
    rpm -Uvh jdk-7u40-linux-x64.rpm
    
Or install via yum/apt-get

    sudo yum install java-devel

Download MVN from http://maven.apache.org/download.cgi

    wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
    sudo tar xzf apache-maven-*-bin.tar.gz -C /usr/local
    cd /usr/local
    sudo ln -s apache-maven-* maven
    sudo vi /etc/profile.d/maven.sh

Add the following to `maven.sh`

    export M2_HOME=/usr/local/maven
    export PATH=${M2_HOME}/bin:${PATH}
	
	Reload bash and test mvn

    bash
    mvn -version

  而对于YCSB的安装官方文档也介绍了十分简单,下载下来解压就可以直接使用!

Download the YCSB zip file and compile:

    curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.5.0/ycsb-0.5.0.tar.gz
    tar xfvz ycsb-0.5.0.tar.gz
    cd ycsb-0.5.0

### 4. Run YCSB

Now you are ready to run! First, use the asynchronous driver to load the data:

    ./bin/ycsb load mongodb-async -s -P workloads/workloada > outputLoad.txt

Then, run the workload:

    ./bin/ycsb run mongodb-async -s -P workloads/workloada > outputRun.txt

  不过这里启动YCSB只是用的最简单的设置,我们可以针对自己的需求加一些参数进行调整,具体参数如下:https://blog.csdn.net/qq_32523587/article/details/60875097

mongodb.url:指定mongodb地址,当然这个也可以直接在workloads/下对应的配置文件中设置。
mongodb.batchsize;设置批量提交,默认值是1即一条一条进行提交
mongodb.upsert:对于插入操作,如果记录已经存在,则进行更新否则插入
mongodb.writeConcern:这个设置已经过期了,可以直接在mongodb.url后面直接附带上
mongodb.maxconnections:过期参数,设置最大连接数,也可以和mongodb.url附带一起

  例如这里本人的测试命令如下:

./bin/ycsb load mongodb -threads 100 -s -P workloads/workloada -p mongodb.url=mongodb://xxx.xxx.xxx.xxx:20000/ycsb?w=0 > result/Loada—shard6.txt
./bin/ycsb run  mongodb -threads 100 -s -P workloads/workloada -p mongodb.url=mongodb://xxx.xxx.xxx.xxx:20000/ycsb?w=0 > result/Runa-shard6.txt

  以上测试用例中设置了启动线程100个用于测试,并且在mongodb.url参数后面通过?的形式附带一些其它参数的设置。运行完毕后,查看对应result/Loada—shard6.txtresult/Runa-shard6.txt中的数据即可。
  这里的YCSB除了能用来做mongodb的性能测试,还可以支持许多其它的主流nosql数据库,解压完毕后,进入YCSB的文件夹中,查看最新支持的内容如下:

$ ls
accumulo1.6-binding  asynchbase-binding         cloudspanner-binding    elasticsearch-binding    hbase098-binding  hypertable-binding  lib                 mongodb-binding   redis-binding    s3-binding
accumulo1.7-binding  azuredocumentdb-binding    couchbase2-binding      foundationdb-binding     hbase10-binding   ignite-binding      LICENSE.txt         nosqldb-binding   rest-binding     solr6-binding
accumulo1.8-binding  azuretablestorage-binding  couchbase-binding       geode-binding            hbase12-binding   infinispan-binding  maprdb-binding      NOTICE.txt        result           solr-binding
aerospike-binding    bin                        dynamodb-binding        googlebigtable-binding   hbase14-binding   jdbc-binding        maprjsondb-binding  orientdb-binding  riak-binding     tarantool-binding
arangodb-binding     cassandra-binding          elasticsearch5-binding  googledatastore-binding  hbase20-binding   kudu-binding        memcached-binding   rados-binding     rocksdb-binding  workloads
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值