首批通过分布式安全可靠测评,为关键业务系统打造
网卡速率检查
更新时间:2026-04-14 15:11:03
本节为您介绍如何检查集群的网卡速率。
应用场景
该巡检项检查 OceanBase 集群是否可以正确的获取网卡速率,并依此正确处理集群中节点间的数据传输。
前提条件
无。
技术原理
OceanBase 会优先从 {WORK_DIR}/etc/nic.rate.config 配置文件中获取网卡速率的设置,如果该配置文件不存在,OceanBase 会尝试从操作系统查询网卡速率。 如果以上两者都无法获取到网卡速率时,则会采用默认配置。该配置往往因为和实际不符,导致迁移复制的时候网速很慢,主备库延迟过高,进而产生严重问题。
操作步骤
当该巡检项不通过时,建议在 OceanBase 的 {WORK_DIR}/etc/ 目录下添加 nic.rate.config 文件,具体格式为 $(IF_NAME)=$(SPEED),SPEED 可以是数字 + 单位,也可以是纯数字,纯数字情况下采用默认单位 Mbps。配置文件示例:
bond0=10000
bond0=10000b
bond0=10000bit
bond0=10000k
bond0=10000kb
bond0=10000kbit
bond0=10000m
bond0=10000mb
bond0=10000mbit
bond0=100g
bond0=100gb
bond0=100gbit
修改配置文件速率后,可以检查日志确认配置是否正确生效:
# grep -E "network speed changed|reload_bandwidth_throttle_limit|init_bandwidth_throttle" log/observer.log.202106101*
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)
如果日志格式不正确,会收到如下错误日志:
[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