---
title: IOPS 隔离-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 IOPS 隔离相关的常见问题和使用技巧，帮助您快速解决 IOPS 隔离的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# IOPS 隔离

更新时间：2024-03-12 07:26

适用版本： V4.0.x 内容类型：TechNote  

OceanBase 数据库是一个多租户系统，需要按租户隔离 CPU、内存、磁盘带宽等资源。OceanBase 数据库从 V4.0 版本开始支持磁盘带宽隔离。本文介绍磁盘带宽隔离的概念、支持的隔离能力、以及对应的运维手段。

## OceanBase 磁盘带宽隔离功能介绍

磁盘带宽隔离是指在 OceanBase 多租户系统中，确保一个租户的磁盘 IO 操作不会影响到另一个租户的 IO 性能。该功能保证了不同租户之间以及同一个租户内部不同类型的 IO 请求之间的磁盘带宽是相互独立的。

## 为什么使用 IOPS 描绘磁盘带宽 ？

IOPS（Input/Output Operations Per Second，每秒输入输出操作数）是衡量存储设备性能的一个标准。OceanBase 使用 IOPS 来描述磁盘带宽的分配，因为它更直接地反映了用户在执行SQL查询时感知到的时延（SQL RT）。基准 IO 请求定为 16KB 随机读是因为 OceanBase 的微块尺寸默认为 16KB。

## 如何描述 OceanBase 的 IOPS ？

OceanBase 中磁盘带宽的 IOPS 使用 MIN，MAX 和 WEIGHT 这三个参数来描述。

- MIN：最小保证的资源量，即租户能至少获得的 IOPS。
 - MAX：资源上限，即租户能获得的最多 IOPS。
 - WEIGHT：当资源竞争发生时，根据权重比例在 MIN 和 MAX 之间分配资源。

## 隔离能力

### 租户间隔离

租户间的 IO 隔离是通过配置 UNIT 来实现的。用户可以通过 `UNIT CONFIG` 来设定一组 UNIT 的规格。包括 `MIN_IOPS`，`MAX_IOPS` 和 `IOPS_WEIGHT` 参数，从而实现不同租户之间的 IO 隔离。`UNIT CONFIG` 中的 IOPS 设置支持动态调整，实时生效。

UNIT 创建示例。

```shell
CREATE RESOURCE UNIT test_io
MIN_CPU=2, MAX_CPU=4,
MIN_MEMORY=24309411328, MAX_MEMORY=24309411328,
MIN_IOPS=2000, MAX_IOPS=5000, IOPS_WEIGHT=1000,
MAX_SESSION_NUM=3000,
MAX_DISK_SIZE=89759870976;

```

UNIT 修改示例。

```shell
ALTER RESOURCE UNIT box1 IOPS_WEIGHT=2000;

```

### 租户内隔离

租户内部的 IO 隔离是通过设置租户级配置项 `io_category_config` 来实现的。配置格式为 `category_name: min_percent, max_percent, weight_percent` 并且可以设定多个类别规格，使用分号隔开。

目前支持的 IO 类别包括：`log, user`, `sys`, `prewarm`, `large_query`。

如果未指定某个类别，则该类别由 other 代表。该配置项要求所有类别的 `min_percent` 总和不超过 100，`weight_percent` 总和不超过 100。

如果未指定 other，则系统自动将剩余比例作为 `min_percent` 和 `weight_percent`，而 `max_percent` 固定为 100。

默认配置。

`io_category_config` 的默认配置为 `other: 100,100,100`，即租户内各类别 IO 不进行隔离，按照租户 IO 规格的 100% 使用。

限制某一类别 IO。

```shell
ALTER SYSTEM SET io_category_config="large_query: 30, 60, 50;" TENANT tenant1;

```

上述命令限制了 tenant1 的大查询类型 IO 的最大带宽不超过租户最大带宽的 60%，最小带宽不小于租户最小带宽的 30%，权重占租户权重的 50%。

#### 说明

`io_category_config` 配置项从 V4.0.0 版本开始引入，从 V4.2.0 版本开始弃用。V4.1.0 及以上版本推荐使用 `resource manager` 配置 IOPS。

## 适用版本

OceanBase 数据库 V4.0.x 版本。

上一篇

[OceanBase CPU 资源隔离未生效](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000005434913)

下一篇

[容器化部署的 OceanBase 集群如何增加可使用资源](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210128) ![有帮助](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) 咨询热线
