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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM