---
title: OceanBase 数据库网络速率配置方案-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 OceanBase 数据库网络速率配置方案相关的常见问题和使用技巧，帮助您快速解决 OceanBase 数据库网络速率配置方案的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OceanBase 数据库网络速率配置方案

更新时间：2024-12-16 09:31

适用版本： V1.4.x、V2.1.x、V2.2.x、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.x 内容类型：TechNote  

本文介绍 OceanBase 数据库网络速率配置方案。

## 背景

OceanBase 数据库备份功能按照网络的带宽的百分比做了速率限制。当前，网络带宽的获取有三种方法：

（1）OBServer 代码中的设置默认值 `DEFAULT_ETHERNET_SPEED`。

（2）操作系统设备节点 `/sys/class/net/$(NIC_IFNAME)/speed`。

（3）`ob_work_dir/etc/nic.rate.config` 配置文件的方式。

#### 说明

`ob_work_dir` 指安装目录，如果是使用 `rpm` 安装的，则安装目录路径为 `/home/admin/oceanbase` 。

这三种方法的生效的优先级分别是（3）> (2) > (1)。

现在通过配置文件修改速率存在一些限制，一是配置文件的格式有约束，需要 `'\n'` 结尾；二是配置文件只在 OBServer 初始化的时候加载一次，后续如果修改了配置文件的值，需要重新启动才能生效。可通过动态加载配置文件的方式来实现。

### 动态加载配置文件

在 OBServer 增加 timer，每秒检查一次配置文件的内容是否有更新，如果有更新则重置 OBServer 的限速速率（即 `observer.bandwidth_throttle_.set_rate(rate)`）。

配置文件名称和存放目录保持不变，仍然为：`ob_work_dir/etc/nic.rate.config`。代码会合入 OceanBase 数据库 V2_2_x_release 及之后的版本。

#### 说明

- 在 OceanBase 数据库 V3.2.3 版本 `ob_work_dir/etc/` 目录下没有 `nic.rate.config` 文件。
 - 用户需要自行创建 `nic.rate.config` 文件。

### 配置文件格式

配置文件内容格式不再强制要求末尾必须 `'\n'` 结尾，具体格式为：`$(IF_NAME)=$(SPEED)`，SPEED 可以是数字 `+` 单位，也可以是纯数字，纯数字情况下采用默认单位 Mbps。

配置文件示例。

```shell
bond0=10000
bond0=10000b
bond0=10000bit
bond0=10000k
bond0=10000kb
bond0=10000kbit
bond0=10000m
bond0=10000mb
bond0=10000mbit
bond0=100g
bond0=100gb
bond0=100gbit

```

以上单位不区分大小写，统一按照 bit 计算。

#### 说明

`nic.rate.config` 文件只支持写一行。并且 `bond0` 只是占位用的，并不需要和 `OBServer` 使用的网卡名相匹配。

### 日志

修改配置文件速率后可以检查日志确认配置是否正确生效。

速率公式如下。

```shell
rate = network_speed * sys_bkgd_net_percentage

```

通过过滤日志中有关网络变更和带宽限制的信息。

```shell
Bash# grep -E "network speed changed|reload_bandwidth_throttle_limit|init_bandwidth_throttle" log/observer.log.202106101*

```

输出结果如下：

```shell
log/observer.log.20210610111947:[2021-06-10 11:10:49.397019] INFO  [SERVER] ob_server.cpp:2018 [72580][0][Y0-0000000000000000-0-0] [lt=8] [dc=0] succeed to init_bandwidth_throttle(sys_bkgd_net_percentage_=60, network_speed=1310720000, rate=786432000)
log/observer.log.20210610111947:[2021-06-10 11:14:44.905396] INFO  [SERVER] ob_server.cpp:2385 [72582][0][Y0-0000000000000000-0-0] [lt=11] [dc=0] network speed changed(from=1310720000, to=1048576000)
log/observer.log.20210610111947:[2021-06-10 11:14:44.905421] INFO  [SERVER] ob_server.cpp:2055 [72582][0][Y0-0000000000000000-0-0] [lt=3] [dc=0] succeed to reload_bandwidth_throttle_limit(old_percentage=60, new_percentage=60, network_speed=1048576000, rate=629145600)

```

如果日志格式不正确，会收到下面的错误日志。

```shell
[2021-06-10 15:28:02.999345] ERROR [SERVER] get_network_speed_from_config_file (ob_server.cpp:1979) [99676][0][Y0-0000000000000000-0-0] [lt=14] [dc=0] invalid NIC Config file(ret=-4002) BACKTRACE:0xfbd452b 0x3d6c7f4 0x3eeab15 0x3eea4c2 0x3eea154 0x3ee9b90 0xadfc5c2 0xadfbc57 0xae01372 0xae0118d 0xfb3a316 0x483b9c7 0x483b929 0xf9e59de 0xf9e587d 0xb37edee 0xf9e5d3c 0xf9e5d15 0xf9e50b9 0xf9de0af

```

## 适用版本

OceanBase 数据库所有版本。

Previous

[应用接收 RPC 会话未找到错误分析与解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000004048268)

Next

[OBProxy 断连接收到 OceanBase 内核两个 error 包，报错相同 -5727](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003866907) ![有帮助](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) 咨询热线
