zoukankan      html  css  js  c++  java
  • YCSB benchmark测试cassandra性能——和web服务器测试性能结果类似

    转自:http://www.itdadao.com/articles/c15a531189p0.html http://www.cnblogs.com/bettersky/p/6158172.html

    参考 https://github.com/cloudius-systems/osv/wiki/Benchmarking-Cassandra-and-other-NoSQL-databases-with-YCSB

    https://github.com/brianfrankcooper/YCSB/tree/master/cassandra  创建 表头

    https://gist.github.com/pbailis/3978273  设置field参数 长度和个数

    在运行测试之前,必须先运行cassrandra客户端手动创建供ycsb使用的数据库和表。

    数据库名叫ycsb,表名叫usertable,按照上面的参考进行。

    create keyspace ycsb  WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3 };
    USE ycsb;
    create table usertable (
        y_id varchar primary key,
        field0 varchar,
        field1 varchar,
        field2 varchar,
        field3 varchar,
        field4 varchar,
        field5 varchar,
        field6 varchar,
        field7 varchar,
        field8 varchar,
        field9 varchar);

    执行load测试后,可以在客户端使用 select * from usertable 查看插入的数据

    示例:bin/ycsb load cassandra-cql  -P workloads/workloada -p "hosts=127.0.0.1"  -p operationcount=90 -p recordcount=1000000 -p fieldlength=100 -p fieldcount=1  -threads 10

    其中  -threads 10 表示使用10个线程,注意压力测试必须使用多个线程使服务端浸满,这样才可以类比leveldb的db_bench。

    fieldlength含义:

    fieldlength=250
    fieldcount=8

    每个文档大小大约2KB(fieldlength x fieldcount)。

    如果只用一个线程,那么客服交互将非常耗时。

    在cassandra中创建相应的column family(table),其中keyspace可以自定义,但是table不可以(或者说我还没发现怎么更改,请指教)。cql命令如下:

    create keyspace testmr  WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3 };
    
    USE testmr;
    create table usertable (
     
        y_id varchar primary key,
     
        field0 varchar,
     
        field1 varchar,
     
        field2 varchar,
     
        field3 varchar,
     
        field4 varchar,
     
        field5 varchar,
     
        field6 varchar,
     
        field7 varchar,
     
        field8 varchar,
     
        field9 varchar
    );


    3. 根据官方的workloada,创建如下workload文件:

    hosts=172.31.1.158
    cassandra.keyspace=testmr
    
    cassandra.username=cloud
    cassandra.password=cloud
     
    recordcount=100000
    operationcount=100000
    workload=com.yahoo.ycsb.workloads.CoreWorkload
    
    readallfields=true
    
    readproportion=0.5
    updateproportion=0.5
    scanproportion=0
    insertproportion=0
    
    requestdistribution=zipfian


    4. 执行ycsb
      首先准备数据,执行

     python27 ./bin/ycsb load cassandra2-cql -P workloada -s

       其次进行测试:

    python27 ./bin/ycsb run cassandra2-cql -P workloada -s

    最后我运行的测试命令:

    ycsb-0.12.0 # ./bin/ycsb load cassandra-cql  -P workloads2/workloada -p "hosts=128.18.104.11"  -threads 20 -s >outLoad.txt

  • 相关阅读:
    Ubuntu上搭建Watir-Webdriver与Cucumber环境
    使--no-ri --no-rdoc成为gem安装的默认选项
    Ruby require 路径问题
    【原创】LoadRunner Java Vuser脚本的配置和调试指南
    【原创】LoadRunner Java Vuser开发环境配置指南
    【原创】使用Nmon_Analyzer处理较大nmon文件的方法
    2014年,马上要上班啦,希望一切顺利
    关于.jar的文件在cmd中无法连接数据库的问题
    ios 的通知机制
    ios开发小技巧-用宏化简代码
  • 原文地址:https://www.cnblogs.com/bonelee/p/6283592.html
Copyright © 2011-2022 走看看