ycsb使用指南
YCSB(Yahoo! Cloud Serving Benchmark)是雅虎开源的一款通用的性能测试工具。
通过这个工具我们可以对各类NoSQL产品进行相关的性能测试,包括:PNUTS、BigTable 、HBase、Hypertable、Azure、Cassandra、CouchDB、Voldemort、MongoDb、Dynomite。
YCSB与HBase自带的性能测试工具(PerformanceEvaluation)相比,好处在于:
- 扩展:进行性能测试的客户端不仅仅只是HBase一款产品,而且可以是HBase不同的版本。
- 灵活:进行性能测试的时候,可以选择进行测试的方式:read+write,read+scan等,还可以选择不同操作的频度与选取Key的方式。
- 监控:进行性能测试的时候,可以实时显示测试进行的进度:
下载
下载ycsb 0.6压缩包,解压即可
https://github.com/brianfrankcooper/YCSB/releases/download/0.6.0/ycsb-0.6.0.tar.gz
注:执行ycsb时,如果报python argparse模块异常,因为python版本低,需要安装python argparse模块 ,解压进入执行:
1 | python setup.py install |
创建Hbase表
1 | n_splits = 200 |
参数配置
Ycsb的执行配置在workload文件下,可以参考workloada和workload_template配置文件
Load配置
Workload文件夹下新建workload_load文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23#记录数
recordcount=10000000
#操作记录数
operationcount=10000000
# 测试类
workload=com.yahoo.ycsb.workloads.CoreWorkload
readallfields=true
# read比例
readproportion=0
# update比例
updateproportion=0
# scan比例
scanproportion=0
# Load比例
insertproportion=1
requestdistribution=zipfian
# The number of fields in a record
fieldcount=10
# The size of each field (in bytes)
fieldlength=100
# hbase表
table=usertable
columnfamily=familyScan配置
Workload文件夹下新建workload_scan文件1
2
3
4
5
6
7
8
9
10
11
12
13recordcount=10000000
operationcount=10000000
workload=com.yahoo.ycsb.workloads.CoreWorkload
readallfields=true
readproportion=0
updateproportion=0
scanproportion=1
insertproportion=0
requestdistribution=zipfian
table=usertable
columnfamily=family
#必填
hbase.usepagefilter=falseRead配置
Workload文件夹下新建workload_read文件1
2
3
4
5
6
7
8
9
10
11recordcount=10000000
operationcount=10000000
workload=com.yahoo.ycsb.workloads.CoreWorkload
readallfields=true
readproportion=1
updateproportion=0
scanproportion=0
insertproportion=0
requestdistribution=zipfian
table=usertable
columnfamily=family
测试
- Load
1
bin/ycsb load hbase098 -P workloads/workload_load -cp hbase098-binding/conf –threads 100
- Scan
1
bin/ycsb load hbase098 -P workloads/workload_scan -cp hbase098-binding/conf –threads 100
- Read
1
bin/ycsb load hbase098 -P workloads/workload_read -cp hbase098-binding/conf –threads 100
测试的时候可以在集群的节点上启多个客户端执行ycsb测试,如:Load测试,集群5个节点,各启动10个客户端,每个客户端启动100个线程,总共是5000个线程执行Load