应该如何进行POC测试?—【DBA从入门到实践】第三期

在数据库选型过程中,为确保能够灵活应对数据规模的不断扩大和处理需求的日益复杂化,企业和技术人员会借助POC测试来评估不同数据库系统的性能。在测试过程中,性能、并发处理能力、存储成本以及高可用性等核心要素通常会成为大家关注的焦点,以确保所选产品能够满足特定的业务需求和性能标准。

那么,针对OceanBase数据库,我们该如何进行测试,才能更好的感知分布式数据库的特性呢?

敬请关注4月17日(周三)晚7点半的《DBA从入门到实践》第三期,我们将了解到:

  1. 结合OceanBase数据库的特性,了解POC测试中常见的测试点
  2. 介绍影响 OceanBase 性能的因素,常见的Benchmark如何跑出较优的性能
  3. 常用Benchmark工具的测试模型、测试方法,性能问题排查的基本思路
  4. 如何对OceanBase进行并行导入、数据压缩、高可用测试

点击下方链接报名学习~

【DBA从入门到实践】第三期

内容抢 “鲜” 知

(一)OceanBase测试概述

  • 性能测试

数据库性能测试是业务选型和PoC测试中的重点关注指标,涉及多种评估标准和测试工具。OceanBase作为一款实时HTAP数据库,同时支持在线实时交易及实时分析两种场景。一方面,为了评估数据库OLTP(联机事务处理)的性能,我们常用标准化测试工具如Sysbench和TPC-C来衡量数据库在处理高并发事务、维持数据完整性及快速响应查询请求方面的能力。另一方面,为了评估数据库OLAP(联机分析处理)的性能,我们通常会通过TPC-H这样的工具来模拟多维数据集的复杂查询和分析操作,检验系统对于大数据量的处理和响应能力。本期教程将介绍这些常用Benchmark工具的测试模型、测试方法。

  • 并行导入测试

在OLAP场景下,大量数据的并行导入,即数据批处理能力也是PoC测试中不可或缺的一环,数据批量写入操作的速度和稳定性,对于需要处理大量数据迁移或同步任务的用户来说至关重要。OceanBase 数据库的并行执行框架能够将 DML 语句也通过并发的方式进行执行,对于多节点的数据库,能够实现多机并发写入,并且保证大事务的一致性。本期教程将为大家介绍OceanBase常用的并行导数方式和测试方法。

  • 数据压缩测试

在完成业务数据导入后,数据压缩也是用户经常关注的测试点。随着存储成本的持续上升和对高效数据访问的不断追求,低成本存储及高效处理海量数据信息已成为提升数据库产品竞争力的重要因素,数据库压缩技术也成为优化数据库性能和降低总成本的关键手段。进行数据压缩测试旨在量化数据压缩前后对存储空间的节省,评估压缩数据对查询和事务处理性能的具体影响,以及验证数据的完整性和恢复过程的可靠性。本期教程将举例介测试绍OceanBase数据压缩比的测试方式。

  • 高可用测试

数据库系统在应用架构中承担了数据存储和查询的重要角色,企业数据的高可用对保障业务连续性至关重要。高可用也是数据库测试中重点考察的因素。OceanBase 数据库基于 Paxos 协议实现了多副本容灾方案,对用户提供少数派故障时 RPO = 0 (Recovery Point Objective,数据恢复点目标) ,RTO < 8s (Recovery Time Objective,恢复时间目标) 的高可用能力。本期教程将为大家带来容灾场景下高可用测试的基本方案。

(二)影响 OceanBase 性能的因素

数据库的性能往往受到多个方面因素的影响,包括数据库软件、操作系统参数、资源分配、数据库参数调优,以及合并与统计信息收集等。从数据库软件层面来看,代码的优化、算法的选择,以及系统架构的设计,都直接影响着数据库的性能。OceanBase作为一款高性能的HTAP数据库,在版本的迭代过程中,也一直持续致力于提升数据库性能并降低资源消耗。

在本期教程中,将为大家介绍以下几个对OceanBase数据库性能的影响因素:

  • 操作系统参数。
  • 资源分配,包括磁盘划分、Primary Zone、分区表、表组、局部索引与分区索引。
  • OLTP和OLAP场景下,数据库的参数调优。
  • 合并与统计信息收集。

(三)Benchmark性能问题排查的基本思路

在我们性能测试的过程中,有时候会遇到性能不符合预期的场景,OceanBase数据库是原生分布式数据库系统,根因分析通常是比较繁琐的,因为涉及的因素较多,比如机器环境、配置参数、运行负载等。我们整理了OLTP和OLAP场景下性能不符合预期时,基本的排查思路。

首先,我们推荐使用obdiag工具对给OceanBase做个体检,检查集群整体的健康状态。

OLTP场景:

  • 排查问题时,通常可以先设置primary为单zone,运行sysbench中oltp_point_select的case,观察observer的cpu是否可以跑满,简化基本的问题场景。
  • 检查client -> proxy -> observer链路上硬件资源的瓶颈,包括各个链路组件的cpu、内存、网络带宽、磁盘、网络延迟等。
  • 检查测试步骤是否与官网标准步骤一致,比如运行oltp_read_write和oltp_write_only场景下时,如果用户不设置-rand-type=uniform,或者table-size和tables的范围比较小,会导致性能测试中id或表名的取值过于集中,容易触发死锁。
  • 通过top –H –p pid观察cpu使用情况,小规格场景下,可以关注MINI_MERGE、MINOR_EXE(转储合并线程)的开销。

OLAP场景:

  • 检查租户资源配置,评估相对测试的数据量,租户cpu、内存配置是否充足。
  • 观察并行执行下机器的cpu水位、磁盘I/O负载。
  • 检查测试步骤是否与官网标准步骤一致, AP场景下关键的Observer参数配置,ob_sql_work_area_percentage、 parallel_servers_target等。
  • 通过查询视图CDB_OB_MAJOR_COMPACTION中, STATUS字段是否为IDLE,判断合并任务是否正常结束。
  • 通过查看视图DBA_OB_TASK_OPT_STAT_GATHER_HISTORY, STATUS字段是否为SUCCESS,判断统计信息收集是否正常进行。
  • 检查执行计划是否正常,关注执行计划中dop的值,观察sql查询是否正常。

更多精彩内容请锁定4月17日《DBA从入门到实践》第三期~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/806603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分析染色体级别的基因组装配揭示了六倍体栽培菊花的起源和进化-文献精读-7

Analyses of a chromosome-scale genome assembly reveal the origin and evolution of cultivated chrysanthemum 分析染色体级别的基因组装配揭示了栽培菊花的起源和进化 六倍体植物基因组的文献&#xff0c;各位同仁还有什么有特色的基因组评论区留言~ 摘要 菊花&#xf…

如何将PHP的Webman框架打包成二进制文件运行

看了看webman的官方文档&#xff0c;发现居然还能打包为二进制&#xff0c;这样太厉害了吧&#xff01; 先执行这个 composer require webman/console ^1.2.24 安装这个console的包&#xff0c;然后 执行 php webman build:bin 8.1 结果谁想到它报错提示&#xff1a; 好…

Lesson1--数据结构前言

1. 什么是数据结构&#xff1f; 2. 什么是算法&#xff1f; 3. 数据结构和算法的重要性 4. 如何学好数据结构和算法 5. 数据结构和算法书籍及资料推荐 1. 什么是数据结构&#xff1f; 数据结构(Data Structure) 是计算机存储、组织数据的方式&#xff0c;指相互之间存在一…

机器学习和深度学习-- 李宏毅(笔记与个人理解)Day8

Day 8 classification &#xff1a;Probabilistic Generative Model 今天上了一整天的课&#xff0c; 本来实在是更新不动了&#xff0c;但是看到《剑来》更新了&#xff0c;想一想这本书里面一直强调的成功的feature – 心性&#xff0c;嗯心性坚毅就好&#xff01;主人公陈平…

Unity 遮罩

编辑器版本 2017.2.3f1 学习Unity的三张遮罩方式 1. Mask 遮罩方式 首先&#xff0c;在界面上创建2个Image&#xff0c;一个命名Img_Mask,大小设置 400* 400&#xff0c; 一个命名Img_Show,大小设置500*500。 然后&#xff0c;给 Img_Mask添加Mask,选择Img_Mask,点击Add Com…

docker 创建容器过程

结合下图&#xff0c;本文讨论docker 创建容器过程&#xff1a; START└── [用户通过Docker Client发出指令]└── (1) docker run 或 docker create 命令├── (2) Docker Client与Docker Daemon建立通信连接└── (3) Docker Daemon接收到创建容器请求├── (4) 检查…

Python --- Python + Vs code的安装与使用(windows平台)

Python Vs code的安装与使用 今天是我第一次开始尝试用Python&#xff0c;然后我想借此机会记录一下整个安装过程和上手过程。之前一直都是用的matlab&#xff0c;这个东西不仅大而且收费&#xff0c;但不可否认的是。matlab的很多东西都做的比较好&#xff0c;但我一直用的都…

【Linux的进程篇章 - 进程终止和进程等待的理解】

Linux学习笔记---008 Linux之fork函数、进程终止和等待的理解1、fork函数1.1、什么是fork?1.2、fork的功能介绍1.3、fork函数返回值的理解1.4、fork函数的总结 2、进程的终止2.1、终止是在做什么&#xff1f;2.2、进程终止的3种情况 3、进程的终止3.1、进程终止的三种情况3.2、…

1.8.4 卷积神经网络近年来在结构设计上的主要发展和变迁——Inception-v2 和Inception-v3

1.8.4 卷积神经网络近年来在结构设计上的主要发展和变迁——Inception-v2 和Inception-v3 前情回顾&#xff1a; 1.8.1 卷积神经网络近年来在结构设计上的主要发展和变迁——AlexNet 1.8.2 卷积神经网络近年来在结构设计上的主要发展和变迁——VGGNet 1.8.3 卷积神经网络近年来…

阿里Canal使用

Canal 是阿里巴巴开源的一款基于 MySQL 数据库增量日志解析&#xff0c;提供实时的数据订阅和消费服务的工具。它可以用来读取 MySQL 的 binlog 日志并转换成 JSON 格式的事件消息&#xff0c;然后将这些消息发布到下游的消息中间件&#xff0c;比如 RabbitMQ&#xff0c;以实现…

MySQL innoDB存储引擎多事务场景下的事务执行情况

一、背景 在日常开发中&#xff0c;对不同事务之间的隔离情况等理解如果不够清晰&#xff0c;很容易导致代码的效果和预期不符。因而在这对一些存在疑问的场景进行模拟。 下面的例子全部基于innoDB存储引擎。 二、场景&#xff1a; 2.1、两个事务修改同一行记录 正常来说&…

自动化测试框架-senlenium(2)

目录 1.前言 2.鼠标点击 2.1click点击对象 2.2senk_keys在对象上模拟键盘输入 2.3清除对象输入的文本内容 2.4submit提交 2.5 text用于获取文本信息 ​编辑3.获取信息 3.1获取title 3.2获取url 1.前言 前面我们讲了如何定位元素,那么我们把元素定位到了以后,又如何…

【力扣】104. 二叉树的最大深度、111. 二叉树的最小深度

104. 二叉树的最大深度 题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 示例 2&#xff1a; 输…

ENSP防火墙配置策略路由及ip-link探测

拓扑 配置目标 1.A区域走ISP1&#xff0c;B区域走ISP2 2. isp线路故障时及时切换到另一条线路 配置接口及安全区域 配置安全策略 配置nat 配置默认路由 配置ip-link 配置策略路由 cl-1 cl-2 验证配置成功 策略路由 A走ISP1 B走ISP2 验证线路故障 isp1 in g0/0/0 shoutdow…

Qt——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。QCustomPlot可以导出…

HWOD:走方格的方案数

一、自己的解题思路 1、(0,m)和(n,0) (0,m)表示处在棋盘的左边线&#xff0c;此刻能回到原点的路线只有一个&#xff0c;就是一路向上 (n,0)表示处在棋盘的上边线&#xff0c;此刻能回到原点的路线只有一个&#xff0c;就是一路向左 2、(1,1) (1,1)表示只有一个方格&#…

02 Git 之IDEA 集成使用 GitHub(Git同时管理本地仓库和远程仓库)

2 .IDEA 集成使用 GitHub&#xff08;Git同时管理本地仓库和远程仓库&#xff09; 首先在 IDEA 的设置中绑定 GitHub 的账号 先创建一个 test1.txt 文件&#xff0c;内容为 aaa. 最上一栏 VCS&#xff0c; SHARE ON GitHub&#xff0c;然后选择要发送到远程仓库的文件即可。…

Vue实现防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。

1、演示 2、水印的目的 版权保护&#xff1a;水印可以在图片、文档或视频中嵌入作者、品牌或版权所有者的信息&#xff0c;以防止未经授权的复制、传播或使用。当其他人使用带有水印的内容时&#xff0c;可以追溯到原始作者或版权所有者&#xff0c;从而加强版权保护。 身份识…

跟TED演讲学英文:A new way to build AI, openly by Percy Liang

A new way to build AI, openly Link: https://www.ted.com/talks/percy_liang_a_new_way_to_build_ai_openly? Speaker: Percy Liang Date: October 2023 文章目录 A new way to build AI, openlyIntroductionVocabularyTranscriptSummary后记 Introduction Today’s AI …

vitepress/vite vue3 怎么实现vue模版字符串实时编译

如果是vue模版字符串的话&#xff0c;先解析成模版对象 另一篇文章里有vue模版字符串解析成vue模版对象-CSDN博客 //vue3写法&#xff08;vue2可以用new Vue.extend(vue模版对象)来实现&#xff09;import { createApp, defineComponent } from vue;// 定义一个简单的Vue组件c…