ycsb

【TiDB 高性能比赛队伍打卡】 Week 2020/10/26~2020/11/1 队伍 v587

独自空忆成欢 提交于 2020-11-01 14:26:38
参赛信息 队伍: v587 目标: 优化 ycsb workloade 本周汇报 本周主要工作 ycsb 压力测试,调整参数并比对不同场景下的性能区别 学习高性能课程相关的内容 (planner 和 coprocessor 为主),阅读 TiDB 源码博客,熟悉 query 处理流程 压力测试 本周通过脚本压力测试了 TiDB,跑 60 遍指定的 workloade,并用 gpof 分析 CPU 消耗。使用的脚本命令为: i=60; while [ "$i" -ne "0" ]; do ./go-ycsb run mysql -P ./workloads/workloade -p recordcount=5000000 -p mysql.host=127.0.0.1 -p mysql.port=4000 -p mysql.user=root -p mysql.db=test done && i=$(($i -1 )); done; 火焰图如下: 通过观察火焰图,我们发现, copIteratorWorker 占用了很大一部分时间,反推可以得到: 计算下推给 TiKV 后,等待结果返回时间较长 TiDB 在对查询优化过程中,采取了不是最优的计划,导致 worker 消耗时间长 从开发的反馈来看,我们现在的解释和可能的优化方向是比较正确的。在大家的讨论中提到了 workloade

数据库怎么选择?| 文末送书

不问归期 提交于 2020-10-02 22:15:44
武培轩 推荐搜索 MySQLRedisElasticsearchJavaSpring Boot数据结构 所有数据库管理系统的主要工作都是「可靠地存储数据」并使其对用户可用。我们使用数据库作为数据的主要来源,帮助我们在应用程序的不同部分之间共享数据。我们使用数据库,而不是在每次创建新应用程序时寻找存储和检索信息的方法,也不是每次都去发明一种组织数据的新方法。这样一来,我们就可以专注于应用程序逻辑而不是基础设施。 数据库是模块化的系统,由多个部分组成:接受请求的传输层、决定以最高效方式运行查询的查询处理器、执行操作的执行引擎以及存储引擎。 存储引擎(或数据库引擎)是数据库的一个软件组件,它负责在内存和磁盘上存储、检索和管理数据,而设计它的目的是长久保存每个节点的数据[REED78]。数据库可以响应复杂的查询,存储引擎则会更细粒度地看待数据并提供一组简单的数据操作API,允许用户创建、更新、删除和检索数据记录。从某个角度来看,数据库是构建在存储引擎之上的应用程序,它提供了表结构(schema)、查询语言、索引、事务和许多其他有用的特性。 为了获得灵活性,键和值都可以是没有预设格式的任意字节序列。它们的排序和表示语义是在更高级别的子系统中定义的。例如,你可以在一个表中使用int32(32位整数)作为键,而在另一个表中使用ascii(ASCII字符串);从存储引擎的角度来看

Flink之Unio、coflatmap、CoGroup、Join以及Connect

你离开我真会死。 提交于 2020-04-05 23:07:41
Flink之Unio、coflatmap、CoGroup、Join以及Connect 问题导读 1.Flink 双数据流转换为单数据流操作有哪些? 2.cogroup, join和coflatmap各自完成什么事情? 3.cogroup, join和coflatmap区别是什么? Flink 双数据流转换为单数据流操作的运算有cogroup, join,coflatmap与union。下面为大家对比介绍下这4个运算的功能和用法。 Join:只输出条件匹配的元素对。 CoGroup: 除了输出匹配的元素对以外,未能匹配的元素也会输出。 CoFlatMap:没有匹配条件,不进行匹配,分别处理两个流的元素。在此基础上完全可以实现join和cogroup的功能,比他们使用上更加自由。 join实例代码如下: private static DataStream<PositionJoinModel> PositionTestJoin( DataStream<ZongShu> grades, DataStream<ZongShu> salaries, long windowSize) { DataStream<PositionJoinModel> apply =grades.join(salaries) //join的条件stream1中的某个字段和stream2中的字段值相等 .where

(9)异步Mongo驱动的性能测试——响应式Spring的道法术器

眉间皱痕 提交于 2020-02-28 18:50:05
本系列文章索引 《响应式Spring的道法术器》 前情提要 Spring WebFlux快速上手 | Spring WebFlux性能测试 | Spring WebClient性能测试 本文 源码 1.4.4 同步与异步数据库驱动的性能对比 许多数据库已陆续推出官方的异步驱动,在Spring Data Reactive中,已经集成了Mongo、Casandra、Redis、CouchDB的异步驱动。 在Spring WebFlux中使用 Reactive Mongo的示例见 Spring WebFlux快速上手 。 这一节我们通过使用YSCB对MongoDB的同步和异步驱动的性能基准测试,来观察异步驱动的优势。 YCSB(Yahoo! Cloud Serving Benchmark) 是雅虎开源的一款用于测试各类云服务/NoSQL/键值对存储的性能基准测试工具。YCSB很赞,使用起来很简单,我们就按照wiki介绍来操作即可。 1)准备YCSB 如果使用Windows,请参考 这里 来预先安装必要的软件和工具。 获取YCSB有两种方式,一种是直接下载压缩包: curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.12.0/ycsb-0.12.0.tar.gz tar xfvz

HBase基准性能测试报告

蓝咒 提交于 2020-02-27 01:18:19
作者:范欣欣 本次测试主要评估线上HBase的整体性能,量化当前HBase的性能指标,对各种场景下HBase性能表现进行评估,为业务应用提供参考。本篇文章主要介绍此次测试的基本条件,HBase在各种测试场景下的性能指标(主要包括单次请求平均延迟和系统吞吐量)以及对应的资源利用情况,并对各种测试结果进行分析。 测试环境 测试环境包括测试过程中HBase集群的拓扑结构、以及需要用到的硬件和软件资源,硬件资源包括:测试机器配置、网络状态等等,软件资源包括操作系统、HBase相关软件以及测试工具等。 集群拓扑结构 本次测试中,测试环境总共包含4台SA5212H2物理机作为数据存储。生成数据的YCSB程序与数据库并不运行在相同的物理集群。 单台机器主机硬件配置 软件版本信息 测试工具 YCSB全称Yahoo! Cloud Serving Benchmark,是Yahoo公司开发的专门用于NoSQL测试的基准测试工具。github地址:https://github.com/brianfrankcooper/YCSB YCSB支持各种不同的数据分布方式 1. Uniform:等概论随机选择记录 2. Zipfian:随机选择记录,存在热记录 3. Latest:近期写入的记录为热记录 测试场景 YCSB为HBase提供了多种场景下的测试,本次测试中,我们导入10亿条数据,并对如下场景进行测试:

HBase基准性能测试报告

元气小坏坏 提交于 2020-02-27 01:17:31
作者:范欣欣 本次测试主要评估线上HBase的整体性能,量化当前HBase的性能指标,对各种场景下HBase性能表现进行评估,为业务应用提供参考。本篇文章主要介绍此次测试的基本条件,HBase在各种测试场景下的性能指标(主要包括单次请求平均延迟和系统吞吐量)以及对应的资源利用情况,并对各种测试结果进行分析。 测试环境 测试环境包括测试过程中HBase集群的拓扑结构、以及需要用到的硬件和软件资源,硬件资源包括:测试机器配置、网络状态等等,软件资源包括操作系统、HBase相关软件以及测试工具等。 集群拓扑结构 本次测试中,测试环境总共包含4台SA5212H2物理机作为数据存储。生成数据的YCSB程序与数据库并不运行在相同的物理集群。 单台机器主机硬件配置 软件版本信息 测试工具 YCSB全称Yahoo! Cloud Serving Benchmark,是Yahoo公司开发的专门用于NoSQL测试的基准测试工具。github地址:https://github.com/brianfrankcooper/YCSB YCSB支持各种不同的数据分布方式 1. Uniform:等概论随机选择记录 2. Zipfian:随机选择记录,存在热记录 3. Latest:近期写入的记录为热记录 测试场景 YCSB为HBase提供了多种场景下的测试,本次测试中,我们导入10亿条数据,并对如下场景进行测试:

Mongodb 使用YCSB性能压测

巧了我就是萌 提交于 2020-02-26 09:52:12
一、背景 这几天对所有的基础组件做一个摸底的基准压力测试,目前我们所有的开源基础组件都没有做过性能测试,经常有开发人员问,我们的RDS、MongoDB集群能抗多大量呀,这个时候我是没办法回复的,因为我自己也不知道,虽然一个数据库集群能抗多大量,在软件、硬件配置固定的情况下,和业务场景有很大的关系,如果数据量小,查询SQL简单那吞吐量自然很高,如果数据量特别大并且都是复杂SQL,那吞吐量自然上不去;但是既然人家问了,肯定是希望有一个答案,如果你说不知道,那会给人一种不靠谱的感觉,所以做一次基准压力测试,我们知道在特定的场景下我们的集群能有多大的吞吐量,做到自己心里有数,才给别人信心。这周在压测MongoDB,谷歌了一番,MongoDB的压测工具很少,有几篇是介绍通过YCSB压测MongoDB的,找丹姐(逻辑思维首席DBA)推荐一款MongoDB的压测工具,丹姐也推荐YCSB,好吧,那就它吧,开整。 二、环境说明 1、MongoDB集群配置(一个分片的shard集群) 2、MongoDB版本 4.0.4-62-g7e345a7 4、系统及内核版本 CentOS Linux release 7 .5 .1804 ( Core ) 3 .10 .0-862 .14 .4 .el7 .x86_64 3、YCSB版本 YCSB-0.16.0-RC1. 4、测试说明 三、安装 1

YCSB项目学习

坚强是说给别人听的谎言 提交于 2020-02-02 13:35:30
主要总结Yahoo的数据库测试项目YCSB的使用(针对redis)。 github网址: https://github.com/brianfrankcooper/YCSB 需要安装 java maven 直接下载编译好的版本(不推荐) 123 curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.15.0/ycsb-0.15.0.tar.gztar xfvz ycsb-0.15.0.tar.gzcd ycsb-0.15.0 使用java或者maven编译 123456 git clone http://github.com/brianfrankcooper/YCSB.gitcd YCSB 只安装redis测试部分mvn -pl com.yahoo.ycsb:redis-binding -am clean package 安装全部测试功能mvn clean package 概述 详细说明: https://github.com/brianfrankcooper/YCSB/wiki/Running-a-Workload 运行workload一共有六个部分 设置数据库 选择合适的DB interface 选择合适的负载 选择合适的runtime parameters

Why does MongoDB perform better with multi-threaded client compared to a single threaded client?

萝らか妹 提交于 2019-12-12 08:06:58
问题 We recently benchmarked Oracle 10g and MongoDB with YCSB ( https://github.com/brianfrankcooper/YCSB/wiki ), when we tried to increase the number of threads for 1,000,000 datasets, Oracle's performance remained constant after 4 threads however MongoDB kept on performing better and better till 8 threads and after that only reads were better, writes and updates (operations/sec) remained constant. We ran this benchmark on 2 CPU Xeon quad core (total 8 cores) + 8 GB RAM on LAN. What we observed

To start YCSB load with cluster enabled option for REDIS

旧街凉风 提交于 2019-12-11 09:12:27
问题 I am Performing YCSB bench marking on Redis cluster. I have created redis cluster and its working with the following condition. If I specify to enable cluster mode in redis client with -c parameter. The chunks are moved correctly. ./redis-cli -h -c "host ip" -p "port" if I dont specify -c parameter, it moved the chunk with error ./redis-cli -h "host ip" -p "port" SO in YCSB load option, I don't know how to enable the cluster option ( -c parameter). Currently I am using the following conmmand