特点:
1 可以任意设置读写比例、线程数量,打印结果比较详细
2 它是hbase等nosql官方jira上面的测试标准,与人交流时ycsb的测试数据最能说明问题
缺点:
1 每次测试时数据需要重新写入,否则读取时选取不了正确的key值,导致内存命中率低
2 key值分布不均匀,节点多数据少时,会导致倾斜
3 线程多时有bug
安装
ubuntu9.10
mongo2.0.2
首先编译java文件
进入ycsb根目录
ant
我们使用的是mongo
ant dbcompile-mongodb
编译mongo环境
如果没有successfully build编译成功
运行命令
java -cp build/ycsb.jar:db/mongodb/lib/* com.yahoo.ycsb.CommandLine -p hosts=localhost -db com.yahoo.ycsb.db.MongoDbClient
如果显示如下说明连接成功
YCSB Command Line client
Type "help" for command line help
Start with "-help" for usage info
new database url = localhost:10000/mydb
mongo connection created with localhost:10000/mydb
Connected.
插入数据
java -cp build/ycsb.jar:db/mongodb/lib/* com.yahoo.ycsb.Client -load -db com.yahoo.ycsb.db.MongoDbClient -P workloads/workloada -p columnfamily=f1 -p recordcount=1000000 -p timeseries.granularity=2000 > transactions.dat
transcations.dat可以查看结果
查看mongodbclient参数
java -cp build/ycsb.jar:db/mongodb/lib/* com.yahoo.ycsb.Client -p -hosts=locahost -load -db com.yahoo.ycsb.db.MongoDbClient -help
执行结果
java -
cp
build
/ycsb
.jar:db
/mongodb/lib/
* com.yahoo.ycsb.Client -t
-db com.yahoo.ycsb.db.MongoDbClient -P workloads
/workloada
-p columnfamily=family -p operationcount=1000000 -s
-threads 10 -target 100 -p measurementtype=timeseries
-p timeseries.granularity=2000 > transactions.dat