YCSB是一款开源的分布式性能测试工具常用于测试NoSQL产品的读写性能。
YCSB支持常见的NoSQL数据库和数据网格产品如Cassandra、MongoDB、HBase、Redis、Infinispan等主流产品。YCSB不仅安装使用简单还能自由扩展测试数據类型和支持的数据库产品
这里我们会使用YCSB,YCSB对比PE有点明显
- 可任意设置压测的读写比例、线程数量最后的测试报告也比较详细
- 通过YCSB的测試数据报告比较具有说服力,完整
运行一个压力测试需要 6 步:
- 选择合适的数据库接口层
登入YCSB github网,找到下载地址这里我们选择最新版0.15,並往下拉找到hbase12的版本不用下载一整个,太大了
选择合适的数据库接口层
对应地去hbase表查看
Workload 定义了如何向数据库中加载测试数据,包括两個部分:
YCSB 的 CoreWorkload 预置了一些标准测试数据可以直接使用,包括 6 个不同的类型:
读最近更新:这个 workload 会插入新纪录越新的纪录读取概率越大,唎如:user status updates
读取-修改-写入:这个 workload 会读取一个纪录然后修改这个纪录,最后写回例如:user database
可以根据测试需求选择合适的 workload,也可以新建一个新的 workload
除了在 workload 中配置参数外,YCSB 还支持这些运行时参数:
- threads:客户端线程数默认为 1
- target:每秒的目标操作数,默认为无限制(尽可能快地完成操作)例如一个操作需要 100 ms,那么一个线程 1s 内可以完成 10 个操作通过 -target 参数可以将操作放缓,控制在 10 个以下
- s:每 10s 打印一次客户端状态用于调试
当裝载完测试数据后,就可以运行 workload 测试了对于 HBase 测试命令为,这样整个测试过程就结束了