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. Outlook 开发

    转自:http://www.cnblogs.com/madebychina/archive/2011/09/20/madebychina_2.html C#使用如下代码调用Outlook2003发送邮 ...

  2. c++ primer 5th学习时间轴[ 100% ]

    学习参考: 1.Mooophy/Cpp-Primer. GitHub上star最多的一个答案,英文版,但是编程用到的单词也不多,查查就懂了.但是到第IV部分,很多题目的没有答案,或者不完整. 2.hu ...

  3. 爬虫库之BeautifulSoup学习(三)

    遍历文档树: 1.查找子节点 .contents tag的.content属性可以将tag的子节点以列表的方式输出. print soup.body.contents print type(soup. ...

  4. CF-798A

    A. Mike and palindrome time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  5. 1.6 Hive配置metastore

    一.配置 1.配置文件 #创建配置文件 [root@hadoop-senior ~]# cd /opt/modules/hive-0.13.1/conf/ [root@hadoop-senior co ...

  6. Content Security Policy的学习理解

    以下内容转载自 http://www.cnblogs.com/alisecurity/p/5924023.html 跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编 ...

  7. 非侵入式JavaScript(Unobtrusive javaScript)理解

    转载自 https://my.oschina.net/leegq/blog/279750 在Web的早期阶段,也就是在jQuery出现以前,在同一个文件中混杂JavaScript代码和HTML标记是非 ...

  8. 简易DIV垂直居中阴影层笼罩JS实现

    $(document).ready(init); function init() { var h = $(window).height(); var w = $(window).width(); /* ...

  9. node-sass安装失败

    1. 直接安装报错(版本根据自己需求来) npm i node-sass@ -D 报错不能下载 win32-x64-64_binding.node Downloading binary from ht ...

  10. 535. Encode and Decode TinyURL(rand and srand)

    Note: This is a companion problem to the System Design problem: Design TinyURL. TinyURL is a URL sho ...