nosql性能测试工具ycsb0.1的使用

使用文档参考地址:https://www.cnblogs.com/SailorXiao/p/5808828.html

ycsb地址:https://github.com/brianfrankcooper/YCSB

1、通过tar.gz包方式安装
#安装mongodb jdk maven ycsb,因环境中有安装了 mongodb jdk ,因此只需安装 maven ycsb。
安装参考:https://github.com/brianfrankcooper/YCSB/tree/master/mongodb

#安装maven
#下载maven
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
sudo tar xzf apache-maven-*-bin.tar.gz -C /usr/local

#配置maven
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

#验证maven
bash

mvn -version

#下载ycsb tar.gz 包:
https://github.com/brianfrankcooper/YCSB/releases/

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

tar xfvz ycsb-0.12.0.tar.gz

cd ycsb-0.12.0

ycsb分为加载和执行阶段
#运行负载时的参考文档
https://github.com/brianfrankcooper/YCSB/wiki/Running-a-Workload

#设置负载时的参数文档
https://github.com/brianfrankcooper/YCSB/wiki/Core-Properties
#加载阶段 用于构造数据
bin/ycsb.sh load mongodb-async -s -threads 10 -target 100 -P workloads/workload> /usr/local/src/ycsb-001.txt

#执行阶段用于压测
#压测mongodb时的参考
https://github.com/brianfrankcooper/YCSB/tree/master/mongodb

bin/ycsb.sh run mongodb-async -s -threads 10 -target 100 -P workloads/workload> /usr/local/src/ycsb-001.txt

同步方式,即加载和执行同时进行:mongodb
异步方式,即加载和执行分开进行:mongodb-async

#slf4j log4j MongoDB jar文件需要在classpath中ycsb.jar

#新建测试mongodb库 stressdb 账号:tpstest 密码:tpstest

#linux上启动ycsb
bin/ycsb.sh run basic -P workloads/workloada

#常用参数说明 命令行的配置优先级高于文件中同样参数的配置
./bin/ycsb load basic -P workloads/workloada -P large.dat
large.dat中内容
recordcount=100000000
则第2个P 中large.dat会覆盖workloada中所有参数

-P file Specify workload file #加载workload设置的参数
-cp path Additional Java classpath entries
-jvm-args args Additional arguments to the JVM
-p key=value Override workload property
-s Print status to stderr #把运行状态写到err中
-target n Target ops/sec (default: unthrottled) #每秒操作的次数
-threads n Number of client threads (default: 1) #并发线程数

#根据设置的时间(毫秒)间隔显示响应的时间,2个参数都要配置上
-p measurementtype=timeseries
-p timeseries.granularity=2000

workload文件中mongodb配置如下项:
#mongodb配置
mongodb.url=mongodb://127.0.0.1:27010/ #对应的mongodb uri参数等
mongodb.database=ycsb #对应的mongo数据库名称
#mongodb.batchsize=1 #操作数量 批量提交和插入的数量
#mongodb.upsert=false #操作类型 true 使用更新操作 false 使用插入操作
mongodb.writeConcern=acknowledged #写安全设置 默认 acknowledged ,errors_ignored、unacknowledged、acknowledged、journaled、replica_acknowledged、majority 在url中使用 w 和journal已经过时
#mongodb.readPreference=primary # 默认 primary,primary、primary_preferred、secondary、secondary_preferred、nearest 在url中使用 mongodb.readPreference 已经过时
#mongodb.maxconnections=100 #线程数最大数值,默认 100, maxPoolSize 在url中使用maxPoolSize已经过时
#mongodb.threadsAllowedToBlockForConnectionMultiplier=5 #默认值5 最大等待队列长度 在url中使用waitQueueMultiple 已经过时

#其他配置 文档大小 fieldlength*fieldcount=6KB
#threadcount=10 #并发线程数
#target=100 #每秒操作的次数

maxexecutiontime=300s #压测时间
recordcount=100000 #测试文档的数量
operationcount=1000 #操作的次数
workload=com.yahoo.ycsb.workloads.CoreWorkload #实现的workload类

readallfields=true #读取时,是否需要读取所有字段 true 需要 false 不需要

readproportion=0.95 #读操作百分比
updateproportion=0.25 #更新操作百分比
insertproportion=0.25 #插入操作百分比
scanproportion=1 #扫描操作百分比

requestdistribution=zipfian 小部分数据得到大部分请求 #请求的分布方式

maxscanlength=100 #扫描时最大长度
scanlengthdistribution=uniform #扫描方式

fieldlength=11 #字段大小 t_prilive表 单个字段最大长度11字节
fieldcount=30 #字段数量 t_live表 共有26个字段

#根据设置的时间(毫秒)间隔显示响应的时间,2个参数都要配置上
measurementtype=histogram
timeseries.granularity=2000

2、通过源码方式安装
需要安装jdk1.8及maven3,安装包:jdk-8u144-linux-x64.tar.gz apache-maven-3.5.2-bin.tar.gz

#jdk下载地址
http://www.oracle.com/technetwork/java/javase/downloads/index.html

#maven下载地址
http://maven.apache.org/download.cgi

#安装包连接地址
http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
cd /usr/local/src

#下载程序安装包
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz

1)安装jdk1.8
cd /usr/local/src
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt

cd /opt
#更改jdk文件名称
mv jdk1.8.0_144 jdk1.8

#更改所属的用户和组
chown -R root:root jdk1.8

#配置java环境变量
vim /etc/profile或修改.bash_profile文件

#新增以下配置想到/etc/profile文件中
export JAVA_HOME=/opt/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib

#优化tomcat8需要配置该项
#export LD_LIBRARY_PATH=/opt/apr1.5/lib

#让配置文件生效 source /etc/profile
修改java.security文件
#启动tomcat出现下列问题的解决办法
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [24,790] milliseconds.
打开$JRE_HOME/lib/security/java.security这个文件,找到下面的内容:
securerandom.source=file:/dev/random
替换成
securerandom.source=file:/dev/./random
#通过javac -version java -version 命令检查jdk安装是否成功

2)安装maven3.5

#进入程序包路径
cd /usr/local/src

#解压缩maven
tar -zxvf apache-maven-3.5.2-bin.tar.gz -C /opt

#更改maven文件夹名称
cd /opt
mv apache-maven-3.5.2 maven3.5

#配置maven环境变量
vim /etc/profile
#新增以下配置想到/etc/profile文件中
export MAVEN_HOME=/opt/maven3.5
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

#让配置文件生效 source /ect/profile

#验证mavne是否安装和配置成功
mvn -v

3)安装所有支持压测的库
mvn clean package

4)只安装支持压测mongodb的库
mvn -pl com.yahoo.ycsb:mongodb-binding -am clean package

ycsb安装和使用介绍的更多相关文章

  1. 树莓派2系统DietPi简单安装配置使用介绍

    DietPi在Raspberrypi.org上的原帖:http://dwz.cn/HSrmY 版本发布很频繁,给原作者们点个赞.功能会越来越多,而且作者的定制观点很明确,适合树莓派的使用. 之前关于D ...

  2. [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍

    前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...

  3. Windows Server 2016 + SCO 2016 安装及配置介绍

    Windows Server 2016 + SCO 2016 安装及配置介绍 高文龙关注1人评论6332人阅读2017-02-26 23:23:02 Windows Server 2016 + SCO ...

  4. Centos 7.3下 Linux For SQL Server安装及配置介绍

    Centos 7.3下 Linux For SQL Server安装及配置介绍 高文龙关注13人评论2828人阅读2017-03-05 21:46:21 Centos 7.3下Linux For SQ ...

  5. Browser-Solidity的本地安装及使用介绍

    Browser-Solidity的本地安装及使用介绍 正所谓工欲善其事必先利其器,巧妇也难为无米之炊,所以在学习智能合约之前,必须要先把工具准备好.Browser-Solidity 是 Ethereu ...

  6. laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)

    laravel基础课程---1.laravel安装及基础介绍(laravel如何安装) 一.总结 一句话总结: [修改composer镜像地址].[明确laravel的安装要求].[安装指定版本的la ...

  7. CocoaPods 的安装和使用介绍

    CocoaPods 的安装和使用介绍 安装 安装方式异常简单 , Mac 下都自带 ruby,使用 ruby 的 gem 命令即可下载安装: 1 2 $ sudo gem install cocoap ...

  8. JavaWeb——tomcat安装及目录介绍

    一.web web可以说,就是一套 请求->处理->响应 的流程.客户端使用浏览器(IE.FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Reque ...

  9. supervisor的安装与简单介绍

    1,介绍 Supervisor是一个进程管理工具,官方的说法 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要 ...

随机推荐

  1. web集群时代

    随着业务的不断增加,我们的单台服务器承受不住需求,那么我们就需要对此进行伸缩,有两种维度,一种是纵向的也就是增大该台服务器的硬件,再者就是加新服务器与之前的机器组成集群对外提供服务,我们都知道前者是有 ...

  2. Robot FrameWork基础学习(三)

    一.关键字(Keyword)根据架构的区分可分为以下三层结构: 底层关键字.公共层关键字.特性关键字. 底层关键字一般与最底层的代码在关系,为上层公共关键字和特性关键字提供接口. 公共层关键字:一般是 ...

  3. 1.17 shell action

    一.shell action 1. ##job.properties nameNode=hdfs://hadoop-senior.ibeifeng.com:8020 jobTracker=hadoop ...

  4. sql之外键变种

    多对一 : 只需设个外键 外键变种之一对一:普通外键关联的表是一对多关系,如果外键上再加上唯一索引,表就会变成一对一关系. 外键变种之多对多:

  5. CCF 201604-1 折点计数 (水题,暴力)

    问题描述 给定n个整数表示一个商店连续n天的销售量.如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点.其他的天都不是折点.如 ...

  6. csvreader 来操作csv文件

    http://www.cnitblog.com/rd416/archive/2010/07/08/47248.html

  7. Windows下启动停止Oracle11g服务-为解决系统变慢而生

    我们拿Oracle 11g作为例子. 首先在“开始=〉运行”中输入“services.msc”,按回车,进入“服务”控制台, 将 Oracle ORCL VSS Writer Service.Orac ...

  8. 移动端UI资源

    1.Flat UI Free http://designmodo.github.io/Flat-UI/ 2.POP 原型工具 http://mobilehub.io/products/pop 3.ei ...

  9. 服务器无法在发送 HTTP 标头之后修改 cookie

    隔三差五就碰到VS报错: System.Web.HttpException:“服务器无法在发送 HTTP 标头之后修改 cookie.” 解决后过几天又忘记了. 原因是: 程序为每个页面在config ...

  10. Codeforces 61B【怪在读题】

    搞不懂为什么DFS的写法崩了,然后乱暴力,因为题意不是很懂... 主要还是读题吧(很烦 #include <bits/stdc++.h> using namespace std; type ...