一,YCSB介绍
Yahoo! Cloud Serving Benchmark (YCSB) 是一个Java语言实现的主要用于云端或者服务器端的数据库性能测试工具,其内部涵盖了常见的NoSQL数据库产品,如Cassandra、MongoDB、HBase、Redis等等。
下载地址:https://github.com/brianfrankcooper/YCSB/wiki
官方地址:https://github.com/brianfrankcooper/YCSB
这个框架具有很好的可扩展性,可以通过配置文件来指定需要进行什么样的workload的测试,比如读写比例多少,每条记录多大,每个字段多大,并发数多大,进行随机选择使用的分布(比如读一条数据的时候)等。
二.YCSB测试脚本
#!/bin/bash
ycsb load hbase20 -P /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/workloads/workloadb -p recordcount=200000000 -p operationcount=200000000 -cp /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/conf -p table=ycsb_hbase_ns:usertable21 -p columnfamily=family -threads 200 -s
ycsb load hbase20 -P /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/workloads/workloadb -p recordcount=200000000 -p operationcount=200000000 -cp /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/conf -p table=ycsb_hbase_ns:usertable22 -p columnfamily=family -threads 200 -s
ycsb load hbase20 -P /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/workloads/workloadb -p recordcount=200000000 -p operationcount=200000000 -cp /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/conf -p table=ycsb_hbase_ns:usertable23 -p columnfamily=family -threads 200 -s
ycsb load hbase20 -P /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/workloads/workloadb -p recordcount=200000000 -p operationcount=200000000 -cp /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/conf -p table=ycsb_hbase_ns:usertable24 -p columnfamily=family -threads 200 -s
ycsb load hbase20 -P /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/workloads/workloadb -p recordcount=200000000 -p operationcount=200000000 -cp /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/conf -p table=ycsb_hbase_ns:usertable25 -p columnfamily=family -threads 200 -s
ycsb load hbase20 -P /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/workloads/workloadb -p recordcount=200000000 -p operationcount=200000000 -cp /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/conf -p table=ycsb_hbase_ns:usertable26 -p columnfamily=family -threads 200 -s
ycsb load hbase20 -P /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/workloads/workloadb -p recordcount=200000000 -p operationcount=200000000 -cp /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/conf -p table=ycsb_hbase_ns:usertable27 -p columnfamily=family -threads 200 -s
ycsb load hbase20 -P /home/jason/ycsb/ycsb-hbase20-binding-0.17.0/workloads/workloadb -p recordcount=200000000 -p operationcount=200000000 -cp /home/jason/ycsb/ycsb
hbase shell <<EOF
scan 'ycsb_hbase_ns:usertable_$1_$2'
EOF
优点
- 配置方便,源码开源。可以设置任意读写比,线程数
- 它包括几乎所有数据库的驱动程序,并且有较强的可扩展性
- 这是行业标准。(相当稳定且有据可查)
缺点
- 不能自动生成测试文档
- 没有UI操作界面,需要一定门槛
参考文献
Benchmarking Cloud Serving Systems with YCSB