聊聊 OceanBase 内存管理

news2024/11/13 9:00:45

内存配置管理是数据库日常管理中非常重要的工作,正确合理配置数据库内存是保障系统高效运行的前提条件。

OceanBase 数据库是一个支持多租户架构的准内存级的分布式数据库,对大容量内存的管理和使用提出了很高的要求。实际使用上,OceanBase 倾向于将更多的系统内存划分给数据库,由数据库进行统一管理。具体的内存结构,可以分为操作系统预留内存、OBServer预留内存、租户内存等四个层次。

在这里插入图片描述

数据库内存上限

OBServer 预留内存可以使用两种方式来设置:

  • 按照服务器总内存上限的百分比来设置OceanBase数据库可以使用的总内存,由 memory_limit_percentage 参数配置;
  • 直接配置OceanBase数据库可用内存上限,由 memory_limit 参数配置。

参数memory_limit优先级更高,当memory_limit=0时,memory_limit_percentage决定OBServer 内存大小;否则由memory_limit决定observer内存大小。

扣除掉分配给OBServer的内存,其他的内存则预留给操作系统。对于384GB以上的大内存服务器,通常建议保留50GB以上的内存空间给操作系统。

系统内部内存管理

由于每个 OBServer 上的租户都会共享部分资源,这些共享资源所使用的内存并不属于特定租户,是所有租户的共享资源,这类内存被归结为系统内部内存。

系统内部内存的上限通过 system_memory 参数来配置,这是对系统内部使用内存的预估。对于租户来说,能够使用的内存上限是 memory_limit - system_memory。

租户内部内存管理

OceanBase 数据库把租户内部的内存分为两个部分:不可动态伸缩的内存 MemStore 和可动态伸缩的内存 KVCache。

不可动态伸缩的内存管理

不可动态伸缩内存主要是保存数据库增量更新的 MemStore 使用,该部分空间受 memstore_limit_percentage 参数控制,表示租户的 MemStore 部分最多占租户总内存上限的百分比,默认为租户最小内存的50%。

租户的写入或更新会增加 MemStore 内存的使用,OceanBase 数据库会根据 MemStore 的内存使用比例决定何时进行转储或者合并释放,该比例由配置项 freeze_trigger_percentage 控制,默认为租户 MemStore 内存上限的70%。

可动态伸缩的内存管理

OceanBase 将绝大多数的 KV 格式的缓存统一在了 KVCache 中进行管理,KVCache 支持动态伸缩、不同 KV 的优先级控制以及智能的淘汰机制。可动态伸缩内存主要用于保存KVCache,通常不需要额外配置。

执行计划缓存内存管理

Plan Cache 用于保存已经解析的执行计划,减少SQL语句的硬解析,当相同的 SQL 请求提交到 OceanBase 数据库,会从缓存中直接获取该语句的执行计划。执行计划缓存大小由 ob_plan_cache_percentage 参数控制,默认值为5%,表示执行计划缓存最大可使用的内存空间为租户内存上限的5%。

OceanBase 优先淘汰最久未使用的执行计划,每隔一段时间会检测执行计划缓存的使用比例,间隔时间受 plan_cache_evict_interval 参数控制,默认时间是30s。参数 ob_plan_cache_percentage 控制最大允许使用的执行计划缓存内存,该参数默认值是5%,当内存使用达到最大允许的90%时会触发缓存清理动作,OBServer 将根据执行计划的最后使用时间,优先淘汰最久没有使用的执行计划,直到内存使用降低到最大允许值的50%。其中触发淘汰和停止淘汰的限制比例受参数 ob_plan_cache_evict_high_percentage 和 ob_plan_cache_evict_low_percentage控制。

相关参数汇总

为了便于大家查阅,相关的内存配置参数汇总如下。

内存组件内存参数参数描述默认值
数据库内存使用上限memory_limit_percentage设置OB数据库可使用的最大内存比例
memory_limit设置OB数据库可使用的最大内存值
系统内部内存system_memory设置最大可使用的系统内部内存
租户不可动态伸缩内存memstore_limit_percentage设置MemStore可使用租户内存的上限百分比50%
租户可动态伸缩内存KVCache自动调整
执行计划缓存管理plan_cache_evict_interval设置执行计划是否需要淘汰扫描间隔时间5%
ob_plan_cache_percentage设置计划缓存占租户内存使用百分比30s
ob_plan_cache_evict_high_percentage设置计划缓存使用上限百分比90%
ob_plan_cache_evict_high_percentage设置停止淘汰执行计划的内存百分比50%

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

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

相关文章

1.【R语言】R语言的下载和安装

R语言是一种开源编程语言,它提供了丰富的统计模型和图形绘制功能,广泛用于数据科学、统计分析、数据挖掘和机器学习。R有一个活跃的社区和大量的包,可以满足各种需求,如数据清洗、绘图和报告生成。其强大的数据处理能力和灵活的可…

【ESP-IDF FreeRTOS】队列管理

先包含下头文件。 #include "freertos/queue.h" 队列大家应该不陌生,就是一个先进先出的容器。用在FreeRTOS里用途就多了。 首先是可以让任务与任务之间以及中断之间通信,任务A把数据塞进队列再让任务B取出,这样就可以传递数据了…

BMC lighttpd kvm数据分析(websocket)

1.说明 lighttpd源码: https://github.com/lighttpd/lighttpd1.4.gitlighttpd wiki: https://redmine.lighttpd.net/projects/lighttpd/wiki/libfcgi: https://github.com/toshic/libfcgi/tree/master 注意: 本章的代码仓库: https://gitee.com/wit_yuan/lighttpd_kvm 2.编…

3127.构造相同颜色的正方形

1.题目描述 给你一个二维 3 x 3 的矩阵 grid ,每个格子都是一个字符,要么是 B ,要么是 W 。字符 W 表示白色,字符 B 表示黑色。 你的任务是改变 至多一个 格子的颜色,使得矩阵中存在一个 2 x 2 颜色完全相同的正方形。…

无敌美少男和无敌美少女构建企业级私有仓库(harbor)

一:harbor简介 Harbor 是由 vmware 公司开源的企业级 Docker Registry 项目。 它提供了以下主要功能和特点: 基于角色的访问控制(RBAC):可以为不同的用户和用户组分配不同的权限,增强了安全性和管理的灵…

Linux下的MySQL8.0报错:[Err]1055

Linux下的MySQL8.0报错:[Err]1055 报错信息解决办法 报错信息 在Linux环境下的MySQL里执行SQL语句报如下错误:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column information_schema.PROFIL…

maven 父子工程创建详解

maven 父子工程创建详解 一、Maven工程继承关系 继承概念 maven继承是指的Maven的项目中,让一个项目从另外项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一个配置信息,简化项目的管理和维护工作 继承作用:在父工程中统一管理…

Datawhale AI夏令营 第五期 CV方向 Task3笔记

Task3:上分思路——数据集增强与模型预测 Part1:数据增强 数据增强是机器学习和深度学习中的一种技术,通过在原始数据集上应用一系列变换来人工地增加数据样本的数量和多样性,从而提高模型的泛化能力,减少过拟合&…

简单的 nginx 学习

简单的 nginx 学习 1. nginx的安装 1.1 下载安装包 去官网下载对应的nginx包,推荐使用稳定版本,上传nginx到linux系统 1.2 安装依赖环境 安装gcc环境 yum install gcc-c安装PCRE库,用于解析正则表达式 yum install -y pcre pcre-develzlib压…

【立体匹配】双目相机外参自标定方法介绍

双目相机外参自标定方法 原理实践 双目相机外参自标定方法是一种无需固定标定板,在拍摄实际场景的两张图像时,通过计算两幅图像之间的匹配特征点对,结合相机的内参矩阵,来实时求解两个相机之间相对位置(即外参&#xf…

ThermoParser 介绍

ThermoParser是一个工具包,用于简化专业材料科学代码产生的数据分析,以热电学为中心,但也适用于任何与电子和/或声子传输有关的内容。ThermoParser是一个Python库,它包含数据检索、操作和绘图的函数,只需几行代码就可以…

HashMap 链表转红黑树的阈值为何为 8

与一个重要的统计学原理——泊松分布密切相关:该原理阐明了在单位时间(或面积、体积)内,随机事件的平均发生次数遵循泊松分布 为什么这因子设定为0.5呢? 在忽略方差的情况下,哈希表容量占比的期望值约为 0.…

揭秘扩散模型:DDPM的数学基础与代码实现全攻略!

(DDPM) denoising diffusion probabilistic models 理论学习 本文价值 本文是 Diffusion 这一类模型的开山之作,首次证明 diffusion 模型能够生成高质量的图片,且奠定了所有后续模型的基本原理:加噪 --> 去噪。DDPM 模型的效果如下&#x…

springboot+vue+mybatis计算机毕业设计飞机订票系统+PPT+论文+讲解+售后

快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,然后线上管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式…

IDEA向mysql写入中文字符时出现乱码问题

可参考该博客:https://www.cnblogs.com/bb1008/p/7704458.html 第一步是将IDEA软件中的编码方式全部改为utf8 File -> Settings -> Editor -> File Encodings 第二步是在数据库链接中加入 ?characterEncodingUTF-8

备战2024年全国大学生数学建模竞赛:蔬菜类商品的自动定价与补货决策

目录 一、引言 二、问题分析 三、解题思路 问题1:销售量分布规律及相互关系 问题2:品类级别的补货计划与定价策略 问题3:单品级别的补货计划与定价策略 问题4:补充数据的建议与分析 四、知识点解析 五、模型建立与求解 1…

没有永远免费的加速器,但是永远有免费的加速器【20240831更新】

没有永远免费的加速器,但是永远有免费的加速器【每日更新】 一、迅雷加速器(免费时长最高38天) 可免费时长:8天 如果是迅雷会员,则免费时长为38天 官网下载链接:迅雷加速器—迅雷官方出品,为快…

关于数字存储和byte[]数组的一些心得

前言 最近做项目,发现一些规律,比如数字的存储和字符串的存储,先说数字吧,最常见的整数,就涉及反码和补码,根据这些规则,甚至我们自己也能造一种数据存储结构,比如1个字节8bit&…

bbr 和 inflight 守恒的收敛原理

先看 bbr,以 2 条流 bw 收敛为例,微分方程组如下: { d x d t C ⋅ g ⋅ x g ⋅ x y − x d y d t C ⋅ g ⋅ y g ⋅ y x − y \begin{cases} \dfrac{dx}{dt}C\cdot\dfrac{g\cdot x}{g\cdot xy}-x\\\ \dfrac{dy}{dt}C\cdot\dfrac{g\cdot y…

秋风送爽,夏意未央|VELO Prevail Revo坐垫,一骑绿动起来吧~

夏末秋初,当第一片落叶缓缓飘落,是时候骑上你的自行车,迎接新的季节啦。带上维乐Prevail Revo坐垫,因为它独树一帜地采用EVA与回收咖啡渣精制而成的轻量发泡提升了减震性能,可以让你的每一次骑行都充满意义。    “…