应该如何进行POC测试?—【DBA从入门到实践】第三期
在数据库选型过程中,为确保能够灵活应对数据规模的不断扩大和处理需求的日益复杂化,企业和技术人员会借助POC测试来评估不同数据库系统的性能。在测试过程中,性能、并发处理能力、存储成本以及高可用性等核心要素通常会成为大家关注的焦点,以确保所选产品能够满足特定的业务需求和性能标准。
那么,针对OceanBase数据库,我们该如何进行测试,才能更好的感知分布式数据库的特性呢?
敬请关注4月17日(周三)晚7点半的《DBA从入门到实践》第三期,我们将了解到:
- 结合OceanBase数据库的特性,了解POC测试中常见的测试点
- 介绍影响 OceanBase 性能的因素,常见的Benchmark如何跑出较优的性能
- 常用Benchmark工具的测试模型、测试方法,性能问题排查的基本思路
- 如何对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从入门到实践》第三期~
相关文章:
应该如何进行POC测试?—【DBA从入门到实践】第三期
在数据库选型过程中,为确保能够灵活应对数据规模的不断扩大和处理需求的日益复杂化,企业和技术人员会借助POC测试来评估不同数据库系统的性能。在测试过程中,性能、并发处理能力、存储成本以及高可用性等核心要素通常会成为大家关注的焦点&am…...
通过Clojure中的集合与序列谈谈抽象的重要
与君共勉:生命不息,学习不止,切忌浮躁,静下心来,每天进步一点点。 Clojure简介 Clojure是一门运行在JVM上面的Lisp方言,其它的Lisp方言还有Scheme、Common Lisp等。Lisp相关的著名书籍有《计算机程序的构…...
Rust---模式(Pattern)匹配
目录 模式是什么它用来做什么模式匹配和赋值为什么会有模式匹配模式匹配用在什么地方match 表达式if let表达式while let表达式for 循环let 语句函数参数不可驳模式匹配和可驳模式匹配模式是什么 在Rust中,模式(Pattern)是一种用于匹配和解构数据的语法结构。模式匹配中常用…...
MATLAB 计算点投影到平面上的坐标(59)
MATLAB 计算点投影到平面上的坐标(59) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 点投影到平面,计算投影点的坐标,下面提供MATLAB版本的计算程序,直接运行即可,内有验证数据,具体看代码即可。 二、算法实现 1.代码 代码如下(示例): % 平面上的三个点分…...
2024年MathorCup数学建模B题甲骨文智能识别中原始拓片单字自动分割与识别研究解题文档与程序
2024年第十四届MathorCup高校数学建模挑战赛 B题 甲骨文智能识别中原始拓片单字自动分割与识别研究 原题再现: 甲骨文是我国目前已知的最早成熟的文字系统,它是一种刻在龟甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值,不仅对中国文…...
嵌入式与移动物联网开发教程和案例
一、嵌入式与移动物联网概述 嵌入式系统是指嵌入到设备中的专用计算机系统,用于控制、监视或辅助设备操作。而移动物联网则是指通过物联网技术将各种智能设备与互联网连接起来,实现设备之间的互联互通和智能化管理。嵌入式与移动物联网技术的结合&#…...
AttachVoExample
目录 1、 AttachVoExample 1.1、 GeneratedCriteria 1.2、 addCriterion 1.3、 andFnameGreaterThanOrEqualTo 1.4、 GeneratedCriteria Atta...
图像处理特征提取
图像处理中的特征提取是指从图像数据中提取出具有区分性和代表性的特征,以用于图像分类、目标检测、图像匹配等任务。下面介绍几种常见的图像处理特征提取方法: 颜色特征:颜色是图像中最直观且重要的特征之一。常见的颜色特征提取方法包括颜色…...
前端大屏适配几种方案
一、方案一:remfont-size 动态设置HTML根字体大小和body字体大小,会使用到lib-flexible.js插件lib-flexible.js (function flexible(window, document) {var docEl document.documentElementvar dpr window.devicePixelRatio || 1// adjust body font…...
2011年认证杯SPSSPRO杯数学建模B题(第一阶段)生物多样性的评估全过程文档及程序
2011年认证杯SPSSPRO杯数学建模 B题 生物多样性的评估 原题再现: 2010 年是联合国大会确定的国际生物多样性年。保护地球上的生物多样性已经越来越被人类社会所关注,相关的大规模科研和考察计划也层出不穷。为了更好地建立国际交流与专家间的合作&…...
AcWing 793. 高精度乘法——算法基础课题解
AcWing 793. 高精度乘法 题目描述 给定两个非负整数(不含前导 00) A 和 B,请你计算 AB 的值。 输入格式 共两行,第一行包含整数 A,第二行包含整数 B。 输出格式 共一行,包含 AB 的值。 数据范围 1≤…...
【一刷《剑指Offer》】面试题 3:二维数组中的查找
力扣对应题目链接:240. 搜索二维矩阵 II - 力扣(LeetCode) 核心考点:数组相关,特性观察,时间复杂度把握。 一、《剑指Offer》对应内容 二、分析题目 正常查找的过程本质就是排除的过程,谁排除…...
Linux下静态库与动态库使用总结
区别 使用静态库占用的磁盘空间相对比动态库要大。 如果多个可执行程序使用库中同一个函数,那么链接静态库时同一个函数的代码会被复制多份,而链接动态库只复制一份。动态库可共享且版本更新方便 静态链接库在程序编译的时候就被加载进来,不…...
分布式任务调度:架构、原理与实践
引言 在当今快速发展的科技领域中,任务调度作为管理和优化计算资源的重要工具,扮演着至关重要的角色。从单机环境到分布式系统,任务调度的演进不仅跟随着计算机技术的进步,更是为了应对日益复杂的应用场景和需求。本博客将深入探…...
ping命令返回无法访问目标主机和请求超时浅析
在日常经常用ping命令测试网络是否通信正常,使用ping命令时也经常会遇到这两种情况,那么表示网络出现了问题。 1、请求超时的原因 可以看到“请求超时”没有收到任何回复。要知道,IP数据报是有生存时间的,当其生存时间为零时就会…...
地球上的七大洲介绍
地球上的七大洲示意图: 1. 亚洲(Asia):世界上最大的洲,面积约为44579000平方公里。亚洲地域辽阔,包括从北极圈到赤道的各种气候和地形。它拥有世界上最多的人口,也是世界上一些最古老文明的发源…...
IntelliJ IDEA 2024 for Mac/Win:引领Java开发新纪元的高效集成环境
在日新月异的软件开发领域,一款高效、智能的集成开发环境(IDE)无疑是程序员们不可或缺的神兵利器。今天,我要为大家介绍的,正是这样一款集大成之作——IntelliJ IDEA 2024。无论是Mac用户还是Windows用户,只…...
Java 中命令模式,请用代码具体举例
在Java中,命令模式是一种行为设计模式,它允许将请求封装成一个对象,从而使得可以参数化其他对象对请求进行调用、队列化请求、或者记录请求日志,同时支持可撤销的操作。 下面是一个简单的示例代码,展示了如何使用命令模…...
低延时+高并发+强事务丨DolphinDB 交易型内存存储引擎 IMOLTP 使用指南
1. 背景 在一些数据库应用场景中,例如金融行业的交易系统,其主要工作负载来源于对关系表的高频度、高并发的更新和查询操作。这样的应用场景要求数据的读写和计算能够具有低延迟、高并发的特征,同时保证极高的数据一致性,并提供 …...
写代码的修养
看山是山,看水是水 此境界 对业务的思考是浅层的,代码写的不通用,扩展性差,表现在无设计模式 看山不是山,看水不是水 此境界 对业务的思考是中层的,代码写的通用,扩展性好,表现为…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
