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应用目录结构

    news web(应用的名字)||--静态资源和JSP文件都可以直接放在web应用的目录下,浏览器可以直接访问(html/jsp/css)|--WEB-INF 可以没有,但是最好有,一旦有,则结构需要 ...

  2. __attribute__((noreturn))的用法

    外文地址:http://www.unixwiz.net/techtips/gnu-c-attributes.html __attribute__ noreturn    表示没有返回值 This at ...

  3. 1.大量数据导出Excel 之 多重影分身之术

    还未验证过...... 摘自:http://www.cnblogs.com/axing/archive/2012/05/25/Excel-65535.html http://www.cnblogs.c ...

  4. Flutter实战视频-移动电商-07.Dio基础_POST请求的使用

    07.Dio基础_POST请求的使用 越界问题解决 容器越界的问题,越界是因为键盘弹起的问题.如果键盘不弹起是不会越界 我们加一个滚动组件就可以解决. 这是技术胖视频中出现的越界的截图效果 这是我自己 ...

  5. PostgreSQL 务实应用(二/5)插入冲突

    在项目中,有时会动态地按周期(如按月)封存统计数据,通常需要做这样的处理: 以按月封存为例,当月数据到达时,先需要检查该月是否有过记录,有则以更新的方式累加统计数字,无则添加一条记录. 假设我们创建以 ...

  6. Android-毛笔的探索与开发

     前言 这篇文章主要是关于移动端毛笔的开发,在平板上有着书写毛笔字贴的效果. 介绍关于毛笔的算法思路. 项目github地址 算法思路分析 曲线拟合算法 利用曲线拟合算法增加虚拟的点,使得笔迹更加光滑 ...

  7. Unity动画事件

    动画事件添加 var clip = new AnimationClip();//clip,动画剪辑  储存基于动画的关键帧.这里新建动画剪辑 clip.SetCurve ("", ...

  8. WPF 中如何使得DataGrid的Column有鼠标点击相应

    http://stackoverflow.com/questions/5895803/how-do-i-capture-click-events-on-a-datagrid-column-header ...

  9. [Xcode 实际操作]九、实用进阶-(4)计算两个日期间的差值

    目录:[Swift]Xcode实际操作 本文将演示如何计算两个日期之间的差值. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class ...

  10. QuantLib 金融计算——基本组件之 ExchangeRateManager 类

    目录 QuantLib 金融计算--基本组件之 ExchangeRateManager 类 概述 Money 类中的汇率转换配置 ExchangeRateManager 函数 如果未做特别说明,文中的 ...