• ycsb安装和使用介绍


    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

  • 相关阅读:
    vim 常用操作
    Zookeeper 一种简单的原子操作机制:
    用习惯的vimrc配置,在这里记录一下,以后可以继续完善使用
    static_cast, dynamic_cast, const_cast探讨【转】
    常用CSS标签使用
    Java基础
    Hibernate的第一个程序
    Hibernate的优缺点
    python基础语法
    ansible-role安装nginx,keepalived,tomcat
  • 原文地址:https://www.cnblogs.com/NiceTime/p/8567662.html
Copyright © 2020-2023  润新知