---
title: 为什么 observer 进程内存使用率高 -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于为什么 observer 进程内存使用率高 相关的常见问题和使用技巧，帮助您快速解决为什么 observer 进程内存使用率高 的难题。
---
切换语言

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

划线反馈

# 为什么 observer 进程内存使用率高

更新时间：2026-05-09 01:51

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

本文介绍 OceanBase 数据库虚拟内存缓存的机制、查看方式以及设置方法和建议。

OceanBase 数据库会向操作系统申请并缓存 `memory_limit` 或 `物理内存 * memory_limit_percentage` 大小的内存，默认为 `物理内存 * 50%`。因此在运行 OceanBase 数据库时，操作系统的内存使用率会持续保持高水位。

这样可以避免频繁的通过操作系统接口申请和释放内存，频繁的申请和释放内存会出现性能瓶颈。 一旦 observer 缓存了物理内存，那么内部各个模块在使用内存时，可以直接通过 observer 的内存管理机制进行申请和释放。

如果需要查看租户的内存使用，可以通过日志中`grep` 的方式，其中`tenant_id`为租户的 ID。

```shell
[admin@hostname log]$ grep -A20 "tenant: <tenant_id>" observer.log

```

通过系统配置项 `memory_chunk_cache_size` 可以控制 observer 进程缓存的虚拟内存大小。默认为 0，表示尽可能生成缓存，直到达到 `物理内存 * memory_limit_percentage` 或者 `memory_limit`。如果`memory_chunk_cache_size` 不为 0，表示指定缓存多少虚拟内存。

例如，物理内存为 500 GB，`memory_limit_percentage` 设置为 90。

- 对于 `memory_chunk_cache_size` 为 0 的情况，observer 进程虚拟内存缓存的大小为 500GB*90=450GB。
 - 对于 `memory_chunk_cache_size` 不为 0 的情况，例如配置 `memory_chunk_cache_size='204800'`，此时 observer 进程虚拟内存缓存的大小为 204800 MB，也就是 200 GB。

  #### 说明

  `memory_chunk_cache_size` 默认单位为 MB。 也可以指定 200 GB 为`memory_chunk_cache_size='200G'`。

上一篇

[OceanBase 数据库中错误代码 4013 与 4030 的区别](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000093)

下一篇

[OceanBase 数据库中 EAGAIN retry 的意义](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000267133) ![有帮助](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) 咨询热线
