---
title: 生产环境 OBServer 节点 swap 空间频繁使用且不断增长问题-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 生产环境 OBServer 节点 swap 空间频繁使用且不断增长问题相关的常见问题和使用技巧，帮助您快速解决 生产环境 OBServer 节点 swap 空间频繁使用且不断增长问题的难题。
---
切换语言

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

划线反馈

# 生产环境 OBServer 节点 swap 空间频繁使用且不断增长问题

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

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

## 适用版本

OceanBase 数据库 V3.x 版本。

## 问题描述

在对 OceanBase 集群维监控发现 OBServer 服务器 swap 使用空间不断上涨。OBServer 进程不断使用 swap 空间，已达 20g+。需要排查服务器 buffer/cache 可用内存足够的情况下，为什么 OBServer 进程不断使用 swap 空间。

环境与配置信息：

- OceanBase 数据库版本为：3.2.3-bp9-hotfix2。
 - OBServer 节点 64c512g，操作系统为麒麟 v10sp3，鲲鹏 920 arm。 已开启 NUMA 并关闭透明大页，并配置了 swap 空间。
 - OBServer 内存参数设置 memory_limit_percetage=90，操作系统内核参数 swappiness=0。
     - swappiness=0 表示尽可能地使用物理内存，而不使用交换区，并不是禁用 swap。

## 问题原因

swap 使用率高，是因为在 NUMA 架构下，默认的内存分配是 localalloc 策略，优先是从本地 node 进行分配内存的，本地 node 内存不足时，如果开启了 swap，优先是交换内存到 swap，而不是向其他 node 申请内存。这是 localalloc 策略的劣势。

尤其是数据库系统服务器，对于这种系统来说，单一的进程在不同的时间段，对于内存的消耗是不一样的。比如进程刚开始申请内存的时候，本地 node 内存还有空余，且初始需要申请的内存可能不多，而当进程在运行的过程中，可能需要处理大量的数据导致该进程需要大量的内存，本地 node 的内存剩余也不多，此时因为是 localalloc 策略，从而导致 swap 的产生。

即便 swap 空间使用满了，也不会对 observer 有影响。开启 NUMA 后，CPU 和内存会做绑定，本地 node 进行分配内存的，本地内存不足时，如果开启了 swap，优先是交换内存到 swap，而不是向其他 node 申请内存，swap 满了还是可以向其它 node 申请的。

开启 NUMA 后，每个 CPU 可以使用的内存减少了，所以 swap 也用得比较多；关闭 NUMA 后，CPU 可以使用所有的 memory，所以没用上 swap。原理上这个现象是符合预期的。

## 解决方法

swap 空间频繁使用，对服务器性能会有影响。OceanBase 数据库标准交付服务器初始化时，要求关闭 swap 空间。

上一篇

[OceanBase 数据库中 EAGAIN retry 的意义](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000267133)

下一篇

[__easy_memory_limit 参数说明](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000450132) ![有帮助](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) 咨询热线
