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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」