使用ycsb测试mysql_使用 YCSB 压力测试 HBase

YCSB(Yahoo! Cloud Serving Benchmark)是雅虎开源的用于测试新式数据库(主要为 NoSQL)性能的框架,使用 Java 实现,可以测试 HBase、Cassandra、Infinispan、MongoDB 等等。

YCSB 包括两个部分:

YCSB 客户端,一个可以扩展的 workload 生成器

Core workloads,预先配置好的 workloads

安装 YCSB

curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.12.0/ycsb-0.12.0.tar.gz

tar xfvz ycsb-0.12.0.tar.gz

cd ycsb-0.12.0

其中 workloads 文件夹中为预置的 Core workload,*-binding 文件夹中为预置的数据库接口层。

运行一个压力测试

运行一个压力测试需要 6 步:

配置需要测试的数据库

选择合适的数据库接口层

选择合适的 workload

选择合适的运行时参数

装载数据(loading phase)

运行测试(transaction phase)

这些步骤适合于在单个客户端上运行(小型和中型集群,10 个左右的服务节点),更大的集群需要多个客户端同时运行测试。

第一步:配置需要测试的数据库

YCSB 不负责表的创建,需要在数据库中手动创建用于测试的表。例如在 HBase 中,需要手动创建一个表和一个列族。

为了让测试数据均匀分布在不同节点中,创建 HBase 表时需要设置预先分片策略(参考 HBASE-4163)。

hbase(main):001:0> n_splits = 20 # HBase recommends (10 * number of regionservers)

hbase(main):002:0> create 'usertable', 'cf', {SPLITS => (1..n_splits).map {|i| "user#{1000+i*(9999-1000)/n_splits}"}}

这里 n_splits 推荐设置为 RegionServer 数量 * 10。

第二步:选择合适的数据库接口层

YCSB 预置了一些常用数据库的接口层,对于 HBase 测试,需要选择 com.yahoo.ycsb.db.HBaseClient 作为接口。

另外 YCSB 需要知道如何连接到 HBase 的 Zookeeper 服务,最简单的方法是将目标测试服务器上的 HBase 配置文件 $HBASE_HOME/conf/hbase-site.xml 复制到 $YCSB/hbase12/conf 中(低版本 HBase 需要复制到对应的 hbase10 等文件夹中)。

YCSB 也提供了一个 com.yahoo.ycsb.BasicDB 数据库接口层,这个接口层仅仅打印收到的数据库操作请求,可以用来调试。

可以用 bin/yscb shell 来测试数据库接口层配置是否正确,例如使用 BasicDB 层:

$ ./bin/ycsb shell basic

> help

Commands:

read key [field1 field2 ...] - Read a record

scan key recordcount [field1 field2 ...] - Scan starting at key

insert key name1=value1 [name2=value2 ...] - Insert a new record

update key name1=value1 [name2=value2 ...] - Update a record

delete key - Delete a record

table [tablename] - Get or [set] the name of the table

quit - Quit

第三步:选择合适的 workload

Workload 定义了如何向数据库中加载测试数据,包括两个部分:<

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值