---
title: 新增租户级别配置项 _tenant_stack_size 并增加 stack_size 上限-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于新增租户级别配置项 _tenant_stack_size 并增加 stack_size 上限相关的常见问题和使用技巧，帮助您快速解决新增租户级别配置项 _tenant_stack_size 并增加 stack_size 上限的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# 新增租户级别配置项 _tenant_stack_size 并增加 stack_size 上限

更新时间：2026-07-02 15:41

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

## 问题现象

当前 `stack_size` 配置项为集群配置项，表示线程栈的大小，默认为 512K，通常情况下不需要修改。当出现爆栈 BUG 时(例如调用栈过深)，通常会改大 `stack_size` 用于临时规避爆栈的问题，该值被修改后，会在所有的线程上生效。线程栈的内存占用可能会达到 GB 级别，而线程栈使用的内存来自于线程归属的租户，因此对于 Meta 租户、小规格租户来说很可能造成内存不足即发生内存爆。

## 关键诊断信息

### 触发条件

`stack_size` 配置项被调大时有可能触发内存爆。

### 事前巡检

检查 `stack_size` 配置项的值。

```shell
show parameters like 'stack_size';

```

### 事后诊断

日志中出现 4013 内存不足相关的日志，可通过排查内存虚拟表或 memory dump 日志确认是否是由 stack 内存占用过高引起的。线程栈使用的内存 CTX 为 `CO_STACK`，重点关注该 CTX 的内存占用。

1. 检查内存虚拟表。

   ```shell
   -- 将租户 ID 替换为对应的发生内存爆的租户
   select * from GV$OB_MEMORY where tenant_id=xxx order by used desc limit 20;

   ```

   查询结果示例，如下图所示。

   ![image01](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/tenant/20250701tenant-level-configuration-item-tenant-stack-size-increased-upper-limit-stack-size01.png)
 2. 检查发生 4013 内存不足时最近的 memory dump 的日志，找到内存爆对应租户的 memory dump 日志，重点关注 `CO_STACK` 内存占用及对应租户的内存 limit，确认 `CO_STACK` 的内存占用是否过高。如下图所示。

   ![image02](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/tenant/20250701tenant-level-configuration-item-tenant-stack-size-increased-upper-limit-stack-size02.png)

## 问题原因

当前 `stack_size` 配置项为集群配置项，修改后会在所有线程上生效，无法兼顾到小规格租户。

## 问题的风险及影响

线程栈部分内存占用过高，可能导致小规格租户内存爆，影响业务正常运行。

## 影响租户

影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。

## 影响版本

OceanBase 数据库 V4.1.0 GA（oceanbase-4.1.0.0-100001122023040322）及之后版本、V4.2.0 GA（oceanbase-4.2.0.0-100010082023083014）及之后版本、V4.2.1 GA（oceanbase-4.2.1.0-100000182023092722）及之后版本、V4.2.2 GA（oceanbase-4.2.2.0-100000082024011317）及之后版本、V4.2.5 GA（oceanbase-4.2.5.0-100000082024102022）及之后版本、V4.3.0（oceanbase-4.3.0.0-100000072024020200）及之后版本、V4.3.5 GA（oceanbase-4.3.5.0-100000122024123020）及之后版本。

## 解决方法

OceanBase 数据库 V4.4.0 之前的版本，建议先增大小规格租户的内存规格，再调整 `stack_size`。 从 OceanBase 数据库 V4.4.0 版本开始，新增了一个租户级 `stack_size` 隐藏配置项 `_tenant_stack_size`，并设置了 `stack_size` 上限。

1. 增加租户级配置项 `_tenant_stack_size`。

   调整 `stack_size` 通常用于临时规避爆栈问题，而发生爆栈的通常只是某个租户下的工作线程。因此新增一个租户级别的隐藏配置项 `_tenant_stack_size`，可以只在某个用户租户的范围内生效，不影响 Meta 租户和其他小规格租户。 当出现爆栈 BUG 需要规避时，优先使用 `_tenant_stack_size` 调整相应租户的配置项。 使用示例：

   ```shell
   -- 修改当前登陆租户的配置项，不会修改对应的 META 租户配置
   alter system set _tenant_stack_size = '1M';

   -- 修改所有用户租户配置项
   alter system set _tenant_stack_size = '1M' tenant=ALL;

   -- 修改所有 META 租户配置项
   alter system set _tenant_stack_size = '1M' tenant=ALL_META;

   -- 修改指定租户的配置项
   alter system set _tenant_stack_size = '1M' tenant=sys;
   alter system set _tenant_stack_size = '1M' tenant=mysql;
   alter system set _tenant_stack_size = '1M' tenant=oracal;
   alter system set _tenant_stack_size = '1M' tenant=META$1004;

   -- 查询该配置项当前的值
   select * from __all_virtual_tenant_parameter_stat where name='_tenant_stack_size';

   ```
 2. 增加 `stack_size` 上限。

   为 `stack_size` 设置上限，该上限由相应租户的内存上限来确定，该机制对集群级配置项 `stack_size` 和租户级配置项 `_tenant_stack_size` 均有效，如果需要修改小规格租户的 `stack size` 相关配置，需要先增大租户规格。

   | 租户内存上限 | stack_size 上限 |
   | --- | --- |
   | >= 1G | (tenant_memory_limit / 1G) * 512K |
   | < 1G | 512K |

   也可以通过上文提到的查询内存虚拟表的方式确认当前的生效值。

## 规避方式

- 针对小规格租户，建议增大租户内存规格，再修改 `stack_size`。
 - 如果爆栈问题已在后续版本中修复，可以考虑升级至修复后的版本。

Previous

[备租户用户无法登录，报错：ERROR 1396 (HY000): Operation LOCK USER failed 的原因和解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000004078867)

Next

[参数 max_syslog_file_time 与 max_syslog_file_count 的关系](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000004752359) ![有帮助](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) 咨询热线
