---
title: 租户内存模块大小分配简介-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 租户内存模块大小分配简介相关的常见问题和使用技巧，帮助您快速解决 租户内存模块大小分配简介的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 租户内存模块大小分配简介

更新时间：2025-09-04 07:57

适用版本： V4.0.x、V4.1.x、V4.2.x、V4.3.x 内容类型：TechNote  

租户内存由租户创建 Unit 时，其 `memory_size` 的大小定义，`memory_size` 为用户租户的整体内存大小。

Unit 内存规格 = 业务租户 + meta 租户

## Meta

Meta 租户的内存资源不支持共享，Meta 租户和用户租户的内存资源需要隔离。默认 Meta 租户占整体租户规格的 10%。为了保证 Meta 租户正常运行，Meta 租户内存资源规格最小为 512M，不设最大值。整体租户内存规格减去 Meta 租户内存规格即为用户租户的内存规格。整体租户规格最小值调整为 1G。下面举例说明：

- 租户规格大于等于 10G 时，Meta 租户和用户租户内存规格比例为 1:9。
 - 租户规格大于等于 2G 时，Meta 租户的内存规格固定为 1G，剩余资源给用户租户。
 - 租户规格大于等于 1G 并且小于 2G 时，Meta 租户固定分配 512 M，剩余资源给用户租户。

## MemStore+SQL Work Area

不可动态伸缩内存相关的配置只有 `memstore_limit_percentage` 和 `ob_sql_work_area_percentage`，前者表示租户的 MemStore 部分最多占租户总内存上限的百分比，后者表示 SQL 阻塞算子工作区内存占用上限。

### MEMSOTRE

在 V4.3.x 版本中，从 V4.3.0 版本开始，还支持通过租户级隐藏配置项 `_memstore_limit_percentage` 来配置租户 MemStore 占租户总内存的百分比，除了生效范围不同，其功能及默认值与集群级配置项 memstore_limit_percentage 均相同。在配置这两个配置项时，需要注意以下事项：

- 如果仅配置了 _memstore_limit_percentage 或 memstore_limit_percentage 中某一个配置项的值（非默认值），则以配置的值（非默认值）为准。
 - 如果同时配置了租户级隐藏配置项 `_memstore_limit_percentage`（非默认值）和集群级配置项 `memstore_limit_percentage` （非默认值）的值，则以 `_memstore_limit_percentage`配置的值为准。
 - 如果两者均未配置，或均配置为默认值时，系统将采用以下自适应策略：

     - 内存为 8G （真实 Memory）及以下规格的租户，其租户 Memstore 的配置比例为 40%。
     - 内存为 8G 以上规格的租户，其租户 Memstore 的配置比例为 50%。

### SQL Work Area

工作区内存，是指 SQL 排序等阻塞性算子使用的内存，通过租户系统变量 `ob_sql_work_area_percentage` 控制，默认值为 5%，即`工作区内存 = 租户内存 * ob_sql_work_area_percentage（默认 5%）`。

如果请求并发量较大，且每个请求占用的工作区内存比较多，可能出现工作区内存不足的报错，经常出现的场景有 `union`、`sort`、`group by` 等。上述问题如果出现，可以通过适当调大系统变量ob_sql_work_area_percentage来进行规避。

## KVCache

可动态伸缩的 KVCache 会尽量使用除去不可动态伸缩后租户的全部内存，当租户内存满时，会优先从 KVCache 中淘汰未被引用的内存来使用。KVCache主要用于缓存热点数据（Row Cache）、表结构元数据（Schema Cache）等内容，属于共享资源池的一部分。

KVCache 一般不需要配置，特殊场景下可以通过参数控制各种 Cache 的优先级，优先级高的 Cache 比优先级低的 Cache 更容易被保留在 Cache 中。

在不手动调整的情况下，这部分是 MemStore 分配后剩下的其他内存中的动态分配区域。

## 其他辅助模块

一些额外的模块可能会占用预留给用户租户内存的较小部分：

- Plan Cache：SQL 执行计划缓存。
 - Transaction Audit：事务审计日志。
 - Election 等与选举机制相关的模块。
 - Rpc 模块：网络通信所用内存（占租户总内存的比例通过 `rpc_memory_limit_percentage` 控制）。

## 适用版本

oceanbase 数据库 V4.x 版本

上一篇

[OceanBase 数据库内存碎片问题的诊断排查方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000629413)

下一篇

[OceanBase 数据库查询 information_schema.STATISTICS 表报错 No memory or reach tenant memory limit 的原因和解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001639831) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
