---
title: 租户的 freeze_trigger 动态变化-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 租户的 freeze_trigger 动态变化相关的常见问题和使用技巧，帮助您快速解决 租户的 freeze_trigger 动态变化的难题。
---
切换语言

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

划线反馈

# 租户的 freeze_trigger 动态变化

更新时间：2025-12-01 04:41

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

## 问题描述

租户的 freeze_trigger 动态变化。

查询租户在物理机上的资源使用情况，执行语句如下。

```shell
obclient> SELECT now(),tenant_id, ip, round(active/1024/1024/1024,2) active_gb, round(total/1024/1024/1024,2) total_gb, round(freeze_trigger/1024/1024/1024,2) freeze_trg_gb, round(mem_limit/1024/1024/1024,2) mem_limit_gb, freeze_cnt , round((active/freeze_trigger),2) freeze_pct, round(total/mem_limit, 2) mem_usage  FROM oceanbase.gv$memstore WHERE tenant_id =xxxx ORDER BY tenant_id, ip;

```

输出结果如下。

```shell
+---------------------+-----------+-------------+-----------+----------+---------------+--------------+------------+------------+-----------+
| now()               | tenant_id | ip          | active_gb | total_gb | freeze_trg_gb | mem_limit_gb | freeze_cnt | freeze_pct | mem_usage |
+---------------------+-----------+-------------+-----------+----------+---------------+--------------+------------+------------+-----------+
|xxxx-xx-xxxx xx:xx:xx|      xxxx | xx.xx.xx.xx |      1.40 |     1.41 |         22.40 |        32.00 |          0 |       0.06 |      0.04 |
|xxxx-xx-xxxx xx:xx:xx|      xxxx | xx.xx.xx.xx |      1.39 |     1.39 |         22.40 |        32.00 |          0 |       0.06 |      0.04 |
|xxxx-xx-xxxx xx:xx:xx|      xxxx | xx.xx.xx.xx |      0.19 |     0.19 |          5.84 |        32.00 |         75 |       0.03 |      0.01 |
+---------------------+-----------+-------------+-----------+----------+---------------+--------------+------------+------------+-----------+
3 rows in set (0.02 sec)

```

一段时间再次执行语句输出结果如下。

```shell
+---------------------+-----------+-------------+-----------+----------+---------------+--------------+------------+------------+-----------+
| now()               | tenant_id | ip          | active_gb | total_gb | freeze_trg_gb | mem_limit_gb | freeze_cnt | freeze_pct | mem_usage |
+---------------------+-----------+-------------+-----------+----------+---------------+--------------+------------+------------+-----------+
|xxxx-xx-xxxx xx:xx:xx|    1002   | xx.xx.xx.xx |      1.41 |     1.41 |         22.40 |        32.00 |          0 |       0.06 |      0.04 |
|xxxx-xx-xxxx xx:xx:xx|    1002   | xx.xx.xx.xx |      1.39 |     1.39 |         22.40 |        32.00 |          0 |       0.06 |      0.04 |
|xxxx-xx-xxxx xx:xx:xx|    1002   | xx.xx.xx.xx |      0.19 |     0.19 |         17.15 |        32.00 |         75 |       0.01 |      0.01 |
+---------------------+-----------+-------------+-----------+----------+---------------+--------------+------------+------------+-----------+

```

观察到租户内存触发冻结阈值 `freeze_trg_gb` 从 5.84GB 动态变化成 17.15GB，MemStore 冻结的百分比 freeze_pct 从 0.03 动态变化成 0.01。

若在 OceanBase 数据库 V4.x 版本，查询租户在物理机上的资源使用情况，执行语句如下。

```sql
SELECT now(),TENANT_ID, SVR_IP,round(ACTIVE_SPAN/1024/1024/1024,2) active_gb, round( MEMSTORE_USED/1024/1024/1024,2) total_gb, round(FREEZE_TRIGGER/1024/1024/1024,2) freeze_trg_gb, round(MEMSTORE_LIMIT/1024/1024/1024,2) mem_limit_gb, freeze_cnt,round((ACTIVE_SPAN/freeze_trigger),2) freeze_pct, round(MEMSTORE_USED/MEMSTORE_LIMIT, 2) mem_usage  FROM oceanbase.GV$OB_MEMSTORE WHERE tenant_id =1002 ORDER BY TENANT_ID, SVR_IP;

```

## 适用版本

OceanBase 数据库 V2.x 和 V3.x 版本。

## 问题原因

租户的 `freeze_trigger` 动态变化，通常是租户内其他内存模块占用总内存量大小引发的，需要查看租户的内存占用情况，可以找到异常大量占用内存资源的内存模块。

## 解决方法

确定租户中占用大量内存的原因，方法如下。

- 通过 `__all_virtual_memory_info` 系统表查询 OceanBase 数据库各个 Mod 的内存消耗情况(MemStore 内存未超限)，执行如下查询语句。

  ```shell
  obclient> SELECT tenant_id,svr_ip,sum(hold) module_sum FROM oceanbase.__all_virtual_memory_info WHERE tenant_id>1000 AND hold<>0 AND mod_name NOT IN ( 'OB_KVSTORE_CACHE','OB_MEMSTORE') GROUP BY tenant_id,svr_ip;

  ```

  #### 注意

  内存模块超限的判断标准是 module_sum > 租户 min_memory - 租户 MemStore。
 - 通过结合 `observer.log` 日志中有关 tenant_id（租户编号）及 mod_id (内存模块编号) 的信息，执行如下语句查询获取具体的内存模块信息（内存模块超限）。

  ```shell
  obclient> select * from oceanbase.__all_virtual_memory_info where mod_id=xxx and tenant_id = xxx;

  ```

#### 说明

freeze trigger 的动态变化本身不需要解决，如果发现其他模块的内存变大的异常导致了其他的问题，或者转储太过于频繁，需要通过对应手段降低其他模块的内存

上一篇

[observer.log 中 dump tenant 介绍](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000057)

下一篇

[修改 Unit 规格时报错：Parse error](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207664) ![有帮助](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) 咨询热线
