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. 用HTML 5打造斯诺克桌球俱乐部(1) – 51CTO.COM

    本文介绍了如何利用HTML5技术来打造一款非常酷的斯诺克桌球游戏,文章中详细地列… 查阅全文 ›

  2. Android开发---开发文档翻译

    2014.11.24 1:ClipData类:用于表示剪切的数据,此剪切的数据可以是复杂类型,包括一个或多个条目实例 (1)基础知识 >公共类:public class >嵌套类:Clip ...

  3. 利用python数据分析panda学习笔记之基本功能

    1 重新生成索引 如果某个索引值不存在就引入缺失值 from pandas import Series,DataFrame import pandas as pd import numpy as np ...

  4. 怎样让自定义Cell的图片和文本自适应高度

    Let's do it! 首先创建一个Model类 包括一个图片名称属性 还有文字内容属性 #import <Foundation/Foundation.h> @interface Mod ...

  5. lightoj1145 【DP优化求方案】

    题意: 有一个k面的骰子,然后问你n个骰子朝上的面数字之和=s的方案: 思路: dp[i][j] 代表 前 i 个骰子组成 j 有多少种方案: 显然 dp[i][j] = dp[i - 1][j - ...

  6. Codevs 3112 二叉树计数

    3112 二叉树计数 题目描述 Description 一个有n个结点的二叉树总共有多少种形态 输入描述 Input Description 读入一个正整数n 输出描述 Output Descript ...

  7. [Xcode 实际操作]一、博主领进门-(2)第一个工程项目:将导入的图片显示到屏幕上

    目录:[Swift]Xcode实际操作 本文将演示创建第一个工程项目. 在项目导航区,鼠标右键[Assets.xcassets]资源文件夹. 隔壁右侧区域左下角点击[+],打开资源文件管理菜单-> ...

  8. [題解]TYVJ_2032(搜索/最短路)

    搜索:https://www.cnblogs.com/SiriusRen/p/6532506.html?tdsourcetag=s_pctim_aiomsg 來自 SiriusRen 數據範圍小,考慮 ...

  9. C#基础之析构函数

  10. python 基础(三) 程序基本流程

    流程控制 流程结构分为3种 顺序结构 分支结构 循环结构 一  分支结构 (1) 单一条件分支 主体结构: if 条件表达式:   #为真得代码块   (2) 双向条件分支 主体结构: if 条件表达 ...