---
title: "资源单元的均衡 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 资源单元的均衡 资源单元（Unit）是 OceanBase 数据库系统内用户资源在节点上的容器（或虚拟机），它是 OceanBase 数据库作为多租户分布式数据库架构的重要概念。RS 模块需要对资源单元进行管理，并通过把资源单元在多个节点间调度，对系统资源进行有效利用。 RS 对资源单元的管理包括： 资源单元的分配，…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# 资源单元的均衡

更新时间：2026-02-26 20:04:50

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/100.oceanbase-database-concepts/300.multi-tenant-architecture/500.tenants-and-resource-management/300.resource-unit-balancing.md)  

资源单元（Unit）是 OceanBase 数据库系统内用户资源在节点上的容器（或虚拟机），它是 OceanBase 数据库作为多租户分布式数据库架构的重要概念。RS 模块需要对资源单元进行管理，并通过把资源单元在多个节点间调度，对系统资源进行有效利用。

RS 对资源单元的管理包括：

- 资源单元的分配，即新建一个资源单元时，RS 需要决定这个 Unit 分配到哪个节点上。
 - 资源单元的均衡，即在系统运行过程中，RS 根据 Unit 的资源规格等信息对 Unit 进行再平衡的一个调度过程。

当前，Unit 的分配和均衡策略的目标如下：

- 考虑能够支持多种资源的分配和均衡调度，主要为 CPU 资源和 Memory 资源。
 - 支持 Zone 内节点间资源均衡的分配。

## 多种资源

在当前的 Unit 分配和均衡算法中，主要考虑两类资源（CPU 资源和 Memory 资源）的分配和均衡，多种资源同时存在时，资源的分配和均衡可能存在一定问题。为简化问题描述，先考察仅有单一资源的分配和均衡算法，以下以 CPU 资源为例，讨论单一资源的分配和均衡算法。

### CPU 单一资源的均衡示例

- 示例背景

  假设存在两个 OBServer 节点：OBS0（10 个 CPU）和 OBS1（10 个 CPU）。其中，OBS0 上包含 6 个 Unit，每个 Unit 的资源规格为 1 个 CPU；OBS1 上包含 4 个 Unit，每个 Unit 的资源规格为 1 个 CPU。
 - 均衡目标

  通过在节点间迁移 Unit，使得各节点的 CPU 占用率尽可能接近。
 - 均衡过程

  从该示例场景可以看到，OBS0 的 CPU 占用率为 `(6 / 10) * 100%= 60%`，OBS1 的 CPU 占用率为 `(4 / 10) * 100% = 40%`。两个节点的 CPU 占用率差值为 0.2，将 OBS0 上的一个 Unit 迁移到 OBS1 上，迁移后的 OBS0 的 CPU 占用率为 `(5 / 10) *100% = 50%`，OBS1 的 CPU 占用率为 `(5 / 10) *100% = 50%`，两个节点的 CPU 相等，与迁移 Unit 前相比，两个节点的资源占用率更平均。

### 多种资源占用率的计算

当系统中有多种资源需要进行分配和均衡时，仅使用其中一种资源的占用率去进行分配和均衡可能不够准确，也很难达到较好的分配和均衡效果，为此，OceanBase 数据库在多种资源（CPU 资源和 Memory 资源）均衡和分配时，使用了如下的分配和均衡方法，即为参与分配和均衡的每种资源分配一个权重，作为计算节点总的资源占用率时该资源所占的百分比。每种资源的权重使用如下方法计算，即某种资源使用的越多，则该资源的权重就越高。

例如，某集群中总的 CPU 资源为 50 个CPU，Unit 共占用 20 个 CPU，则 CPU 总的占用率为 40%。该集群中总的 Memory 资源为 1000 GB，Unit 共占用 Memory 资源 100 GB，则 Memory 占用率为 10%，集群中没有其他资源参与均衡。归一化后，CPU 和 Memory 资源的权重分配为 80% 和 20%，各节点根据该权重计算各自的资源占用率，然后再通过迁移降低各节点之间的资源占用率差值。

## 资源单元的分配

创建一个新的 Unit 时，需要为该 Unit 选择一个 OBServer 节点宿主机，分配宿主机所采用的方法是：先根据上面多资源占用率的计算规则，计算出每一个节点的资源占用率，然后选取资源占用率最小的那个 OBServer 节点，作为新建 Unit 的宿主机。

## 资源单元的均衡

资源单元均衡是通过在节点间迁移 Unit 的方式使得各节点的资源占用率相差尽量小，使用上述多种资源占用率的算法，可以计算出每个节点的资源占用率，并尝试不断迁移 Unit，使得迁移 Unit 完成后，各节点之间的资源占用率比迁移 Unit 前更小，即完成了资源单元的均衡。

## 资源单元均衡的控制

OceanBase 数据库通过以下配置项控制资源单元的均衡：

- [enable_rebalance](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004478930)

  该配置项为负载均衡的总开关，用于控制资源单元的均衡。
 - [server_balance_cpu_mem_tolerance_percent](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479220)

  该配置项为触发资源单元均衡的阈值，当某些节点的资源单元负载与平均负载的差值超过 `server_balance_cpu_mem_tolerance_percent` 设置的值时，开始调度均衡，直到所有节点的资源单元的负载与平均负载的差值都小于配置项 `server_balance_cpu_mem_tolerance_percent` 的值。
 - [server_balance_disk_tolerance_percent](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479047)

  该配置项用于设置在节点间资源单元（Unit）均衡策略中，对磁盘不均衡程度的容忍度。只有当某节点的磁盘水位超出同 Zone 节点平均磁盘水位且超出幅度达到配置项 `server_balance_disk_tolerance_percent` 设置的值时，该节点才会参与基于磁盘的资源单元均衡。
 - [server_balance_critical_disk_waterlevel](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479203)

  该配置项用于设置磁盘空间的负载均衡功能的水位线。当磁盘水位线超过配置项 `server_balance_critical_disk_waterlevel` 设置的值时，负载均衡策略将倾向于优先考虑磁盘均衡。

## 手动迁移资源单元

除了上述资源单元的自动均衡以外，OceanBase 数据库还支持资源单元的手动迁移，即数据库管理员可以通过 SQL 指令对资源单元进行手动迁移，具体迁移语句如下。

```sql
obclient> ALTER SYSTEM MIGRATE UNIT $unit_id DESTINATION '$server';

```

其中：

- $`unit_id` ：填写待迁移的 Unit 的 ID，可通过 `oceanbase.GV$OB_UNITS` 视图查询。
 - $`server`：填写将 Unit 迁移到的目标 Server 地址，格式为 `ip 地址:端口号。`例如，`10.10.10.1:2882`。

处于迁移中的资源单元，您也可以手动取消该资源单元的迁移，具体语句如下。

```sql
obclient> ALTER SYSTEM CANCEL MIGRATE UNIT $unit_id;

```

 上一篇 下一篇 ![有帮助](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) 咨询热线
