Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >YCSB:雅虎推出的云数据库基准测试套件

YCSB:雅虎推出的云数据库基准测试套件

原创
作者头像
EarlGrey
修改于 2017-06-19 11:12:45
修改于 2017-06-19 11:12:45
4.2K0
举报
文章被收录于专栏:EarlGrey的专栏EarlGrey的专栏

大数据云计算时代,出现了许多新型的数据库类型,包括 RedisMongoDBHBaseCouchbase等,各个数据库的特性各有千秋,而且如今各家云厂商提供数据库时,都会进行一些调优,比较起来比较困难。

这时就需要一套标准化的测试工具,为此雅虎在 2010 年推出了 YCSB(Yahoo Cloud Serving Benchmark,雅虎云服务基准测试),提供了一个标准的框架和工作负载集,可以便捷地比较不同「键-值」存储数据库和云数据库的性能。YCSB 于 2010 年开源,目前的版本为 0.13.0 。

1. YCSB 简介

YCSB 项目包括两大块:

  1. YCSB 客户端:可扩展的工作负载生成器。
  2. 核心负载:一组工作负载场景,由负载生成器执行。

我们可以利用 YCSB 对多个数据库运行基准测试,然后进行对比。一般来说,可以在相同硬件配置下安装多个数据库,每个数据库执行相同的工作负载。之后就可对测试结果进行数据可视化,判断哪个的性能更好。

2. YCSB 安装

安装过程比较简单,官方已经提供了编译好的二进制包。

代码语言:txt
AI代码解释
复制
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

执行方式如下:

代码语言:txt
AI代码解释
复制
./bin/ycsb

3. 运行工作负载

运行工作负载,主要包括六个步骤:

  1. 设置好测试数据库系统
  2. 选择合适的数据库接口层
  3. 选择合适的工作负载
  4. 选择合适的运行时参数(客户端线程数、目标吞吐量等)
  5. 加载数据
  6. 执行工作负载

接下来,简要介绍一下每步操作中可能要注意的一些问题。

3.1 设置好测试数据库系统

数据库系统可以配置在单机或集群上,根据希望测试的场景选择。在 YCSB 客户端运行之前,必须先创建数据表,因为客户端不会主动请求创建。

3.2 选择合适的数据库接口层

数据库接口层是一个 Java 类,负责执行 YCSB 客户端生成的读取、插入、更新、删除等操作,并转换成对应数据库的 API 情况。运行 YCSB 客户端时,需要在客户端指定类的名称,而且命令行中设置的参数会传入到数据库实例中。

3.3 选择合适的工作负载

工作负载定义了加载阶段(loading phase)中要加载到数据库中的数据,以及事务阶段(transaction phase)阶段将要对数据集执行的操作。

通常,工作负载由以下组件构成:

  • Workload 类(com.yahoo.ycsb.Workload的子类)
  • 参数文件

3.4 选择合适的运行时参数

选择好工作负载类型后,可能还需要指定一些具体的参数,这些参数可以通过命令行提供,包括:

  • threads:客户端线程数。客户单默认执行单一工作者进程。
  • target:每秒操作的目标数量。客户端默认会执行尽可能多的操作。
  • status:对于运行时间较长的负载,客户端定期报告状态很有必要,可以显示测试是否崩溃。

3.5 加载数据

工作负载有两个执行阶段:加载阶段(定义插入哪些数据),以及事务阶段(定义对数据集执行哪些操作)。如需加载数据,要运行 YCSB 客户端,让其执行加载阶段。

例如,加载标准的测试数据集:

代码语言:txt
AI代码解释
复制
$ ./bin/ycsb load basic -P workloads/workloada

3.6 执行工作负载

加载好数据之后,即可执行工作负载。具体来说,就是让客户端运行工作负载的事务部分,示例命令如下:

代码语言:txt
AI代码解释
复制
$ ./bin/ycsb run basic -P workloads/workloada -P large.dat -s > transactions.dat

这里,我们通过 run 参数,让客户端运行事务部分,而不是数据加载部分。

以上是使用 YCSB 对数据库系统进行基准测试的大致流程。针对具体的数据库系统,具体的测试步骤如何进行,我们在后续的文章中再来介绍。

参考资料

https://github.com/brianfrankcooper/YCSB

https://github.com/brianfrankcooper/YCSB/wiki/Running-a-Workload

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NoSQL性能测试工具YCSB-Running a Workload
目前,在系统设计中引入了越来越多的NoSQL产品,例如Redis/ MongoDB/ HBase等,其中性能指标往往会成为权衡不同NoSQL产品的关键因素。对这些产品在性能表现和产品选择上的争论,Ivan碰到不止一次。虽然通过对系统架构原理方面的分析可以大致判断出其在不同读写场景下的表现,但一是对受众有较高的要求,也来的不那么直接。这时候,没有什么比一次性能测试更有说服力。有什么好的性能测试工具呢?这就是今天的主角YCSB。YCSB是Yahoo开源的一套分布式性能测试工具,方便易用,拓展性强。Ivan最近研究HBase二级索引时用它来做性能测试,感觉还是非常顺手的。虽然网上已经有很多YCSB的介绍文章,但用来指导实际操作还是有些不便。Ivan会用两三篇文章来介绍一下YCSB的实际使用。本文是官方文章的译文,选择这篇文章是因为其与具体操作的关系比较紧密,感兴趣的同学可以了解一下。
星哥玩云
2022/08/16
6400
探究Go-YCSB做数据库基准测试
最近我们在做数据库的技术选型,要做选型的话难免需要对数据库进行一个基准测试,以便可以横向对比不同数据库性能。
luozhiyun
2021/12/13
1.3K0
探究Go-YCSB做数据库基准测试
使用 go-ycsb 对 etcd 进行基准 (benchmark) 性能测试
YCSB,全称为“Yahoo!Cloud Serving Benchmark”,是雅虎开发的用来对云服务进行基准 (benchmark) 性能测试的工具。可以用来对多种 NoSQL 数据库,如 MongoDB、Redis 等进行性能测试。官方内置了丰富的性能测试场景 (称之为: workload),压测场景可以通过文件进行配置,便于压测场景的复现重用。
Cloud-Cloudys
2024/03/01
5400
使用 go-ycsb 对 etcd 进行基准 (benchmark) 性能测试
EMR之HBASE集群参数调优与压测
HBase 是Hadoop生态里重要一员。对HBase的调优,对节约成本,提升用户体验有重要意义。
fastio
2018/05/28
1.9K3
EMR之HBASE集群参数调优与压测
漫谈“数据库基准测试”
近期因工作原因,对多种数据库进行了数据库基准测试。工作之余,特意关于了一下数据库基准测试内容,特分享出来。
用户5548425
2020/03/06
2.5K0
漫谈“数据库基准测试”
基准测试:要做就做到最好
在不知道如何运行某个数据库的情况下,请不要在该数据库上运行基准测试。本篇案例很好的解释了原因。
MongoDB中文社区
2019/08/26
1.2K0
基准测试:要做就做到最好
在Apache Kudu上对时间序列工作负载进行基准测试
自2015年开放源代码发布Apache Kudu以来,它自称是用于对快速数据进行快速分析的存储。其常规任务包含许多不同的工作负载,但是增长最快的用例之一是时间序列分析。时间序列有几个关键要求:
大数据杂货铺
2020/04/07
1.8K0
YCSB测试HBase远程完全分布式集群
本文只讲一个很简单的问题,YCSB对HBase集群的测试。虽然网上有很多介绍YCSB测试HBase的文章,但都是针对本地HBase伪分布式集群的。大家都知道,稍微正式一些的压测都会要求测试客户端与目标集群分离部署,而且伪分布式集群通常不会在生产环境下使用,本身也没有太大的压测意义。本文会着重介绍一下压测远程HBase完全分布式集群的不同之处。
星哥玩云
2022/08/16
8130
高可用mongodb集群(分片+副本):性能测试
Yahoo! Cloud Serving Benchmark (YCSB) 是一个Java语言实现的用于云端或者服务器端的数据库性能测试工具,其内部涵盖了常见的NoSQL数据库产品,如Cassandra、MongoDB、HBase、Redis等等。
雪人
2022/10/13
1.5K0
云测评-RedisGraph 1.0的基准测试
导读:这篇文章来自RedisGraph团队,RedisGraph是一个Redis内嵌高性能内存图数据库。翻译由云测评君公众号完成。本文介绍了RedisGraph v1.0正式版本的一些实现特性、以及使用基准测试工具TigerGraph对RedisGraph进行测试的过程和结果。
磊哥测评
2019/03/15
2.1K0
云测评-RedisGraph 1.0的基准测试
云测评 | RedisGraph 1.0的基准测试
导读:本文来自RedisGraph团队,RedisGraph是一个Redis内嵌高性能内存图数据库。本文介绍了RedisGraph v1.0正式版本的一些实现特性,以及使用基准测试工具TigerGraph对RedisGraph进行测试的过程和结果。
腾讯云数据库 TencentDB
2019/03/26
1.8K0
云测评 | RedisGraph 1.0的基准测试
云测评 | RedisGraph 1.0的基准测试
导读:本文来自RedisGraph团队,RedisGraph是一个Redis内嵌高性能内存图数据库。本文介绍了RedisGraph v1.0正式版本的一些实现特性,以及使用基准测试工具TigerGraph对RedisGraph进行测试的过程和结果。 全文约2800字,阅读需20分钟。 原文地址:https://redislabs.com/blog/new-redisgraph-1-0-achieves-600x-faster-performance-graph-databases/ ---- 今天我们很高
腾讯云数据库 TencentDB
2019/05/16
1.3K0
云测评 | RedisGraph 1.0的基准测试
关于MySQL的基准测试
当我们对数据库进行优化后,只有进行测量系统性能才能知道优化是否有效,这种测量的方式就是基准测试。基准测试的定义如下:
端碗吹水
2020/09/23
7690
聊聊性能测试中的基准测试
在性能测试中有一种测试类型叫做基准测试。这篇文章,就聊聊关于基准测试的一些事儿。。。
老_张
2019/12/02
1.9K0
解析大数据基准测试—TPC-H or TPC-DS?
随着开源Hapdoop、Map/Reduce、Spark、HDFS、HBASE等技术的商用化,大数据管理技术得到了突飞猛进的发展。一般来说,大数据具有3V特性,即Volume(海量)、Velocity(高速)和Variety(多样)。TPC联合主席、Cisco高级工程师Raghunath Nambiar进一步认为大数据还面临Value(价值)和Veracity(精确)的挑战。如何客观地比较不同数据管理系统,即大数据测试基准的选择,成为一个重要的研究课题。 事务性能管理委员会(TPC)是目前最知名的数据管理系
企鹅号小编
2018/01/22
3.9K0
解析大数据基准测试—TPC-H or TPC-DS?
使用YCSB进行HBase性能测试
在集群上运行任何性能基准测试工具时,关键的决定始终是应该使用什么数据集大小进行性能测试,并且在这里我们演示了为什么在运行HBase性能时选择“合适的”数据集大小非常重要在您的集群上进行测试。
大数据杂货铺
2021/01/08
3.2K0
使用YCSB进行HBase性能测试
数据库评测报告第二期:MongoDB-3.2
一、什么是MongoDB? MongoDB是一个开源的,基于分布式的,面向文档存储的非关系型数据库,使用JSON风格来存储数据。其也是非关系型数据库当中功能最丰富、最像关系数据库的。MongoDB由C
迪B哥
2017/07/13
2.8K0
数据库评测报告第二期:MongoDB-3.2
使用 HammerDB 对 Citus 和 Postgres 进行 Benchmark,每分钟200万新订单处理测试(官方博客)
https://www.citusdata.com/blog/2022/03/12/how-to-benchmark-performance-of-citus-and-postgres-with-hammerdb/
为少
2022/12/07
1.9K0
使用 HammerDB 对 Citus 和 Postgres 进行 Benchmark,每分钟200万新订单处理测试(官方博客)
MySQL数据库层优化基本概念
使系统快速运行的最重要因素是其基本设计。您还必须知道系统正在执行哪种处理以及其瓶颈是什么。在大多数情况下,系统瓶颈来自以下来源:
陈哈哈
2020/07/06
1.5K0
【TPC-C】TPC-C标准化基准测试设计RDBMS的相关表结构
TPC 是事务处理性能委员会组织,该委员会致力于制定和维护一系列标准化的基准测试,以评估商业计算系统的性能。其中最著名的是一系列用于评估计算机系统性能的基准测试。
SarPro
2024/05/24
8120
【TPC-C】TPC-C标准化基准测试设计RDBMS的相关表结构
推荐阅读
相关推荐
NoSQL性能测试工具YCSB-Running a Workload
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档