前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >带宽被 OBServer 备份 “榨干”,集群陷入 “无主” 危机

带宽被 OBServer 备份 “榨干”,集群陷入 “无主” 危机

作者头像
爱可生开源社区
发布于 2025-03-12 07:50:05
发布于 2025-03-12 07:50:05
3700
代码可运行
举报
运行总次数:0
代码可运行
作者:何文超,爱可生南区交付服务部 DBA 团队成员。主要负责 MySQL 故障处理,MySQL 高可用架构改造,OceanBase 相关技术支持。爱好足球,羽毛球。

爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

本文约 800 字,预计阅读需要 3 分钟。

1问题描述

近期,一套 OceanBase 生产环境集群,每天早七点左右都会出现无主告警。同时,业务人员反馈同一时间,业务接口会出现短暂超时的情况。

OCP 告警关键字:“eg leader lease is expired”。

2分析过程

2.1 集群无主常见排查思路

在进行问题排查时(参考 官方文档[1] ),首先要确认当前确实有副本存在无主状态;然后根据如下几种情况进行详细的问题排查:

  • observer.log 日志有明显的报错信息
  • 时钟偏差
  • 有租户、表或分区被删除
  • 多数派副本宕机
  • 网络问题
  • Clog 模块恢复日志失败
  • Load 过高
  • Clog 盘满

2.2 查看 RS 日志

在 Root Service 日志(RS 节点的 rootservice 日志)中,搜索日志关键字“clock between rs and server not sync”,执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grep "clock between rs and server not sync" rootservice.log.20240613072655

得到如下结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2024-06-13 07:02:48 575664] WARN [Rs] receive hb (ob server manager.cpp:1045) [71476][640][YB42B6B4E79D-0005EE52EC5FBCAC] [Lt=12] [dc=0] clock between rs and server not sync(ret=-4016, lease request={version:1, zone:"zone2", server:"11.180.231.158:2882",inner_port:2881, build_version:"202207271916220f70bf071、Jcd9399683218b6d9e15a3b530ec(Jul 27 2022 19:47:54)",resource unfo:{cpu: "1.600000000000000000e+02",mem in use:0,al:454190471577, disk_in_use:1227475648512, disk_totat:4648387739648,partit ion_cnt:4711, report_cpu_assigned:"1, 500000000000000000e+02",rep max assianed:"1.500000000000000000e+02",report mem assigned:375809638400, report mem max ass igned:375809638400},start service time:166367153,current server time:1718233366421693,round_trip_time:276, tenant_config_version:[[1,1657331710092989],[1001,1659506961396140]],ssl_kred tume:0, t umeout_partition:0, tenant_max flushed key_vers ion:[], request_lease_time:0}, current_rs_time=1718233368575271))

通过计算时间戳可知,RS 节点和当前节点时钟存在差异:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MySQL [(none)]> select usec_to_time(1718233366421693);
+--------------------------+
| usec_to_time(1718233366421693) |
+--------------------------+
| 2024-06-13 07:02:46.421693 |
+--------------------------+
1 row in set (0.00 sec)

MySQL [(none)]> select usec_to_t ime(1718233368575271);
+--------------------------+
| usec_to_time(1718233368575271) |
+--------------------------+
| 2024-06-13 07:02:48.575271 |
+--------------------------+
1 row in set (0.00 sec)

2.3 查看 observer 日志

查看 observer.log 印证时钟不同步。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grep -i "clock diff time is too large" observer.log.20240613070304

得到如下结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2024-06-13 07:02:10.698178] WARN [SHARE] operator() (ob server b[ackl ist.cpp:106)[16303][2584][YB42B6B4E79D-0005EE5618DF3FA1] [lt=18] [dc=0] [SERVER BLACKLIst] clock diff time is too large, attention!(clockdiff_time=804075, member={server:"11.180.231.158:2882", cluster_id:100005}))

该日志再次印证时钟不同步。由于时钟不同步常见于网络因素,因此开始排查告警时间段的网络带宽压力情况。

经排查发现,NFS 盘的交换机端口负载带宽理论峰值为 1.25GB/S,在备份时间点,带宽已被打满。同时,observer.log 日志中还出现了如下提示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2024-06-13 07:05:38.145487] WARN __tg_cleanup (easy_connection.c:2563) [17920][0][Y0-0000000000000000] [lt=6] [dc=0] easy cost too much time: 3505807us send_response: count=1
[2024-06-13 07:05:38.145493] WARN __tg_cleanup (easy_connection.c:1220) [17920][0][Y0-0000000000000000] [lt=5] [dc=0] easy cost too much time: 3505813us on_thread_wakeup: (nil)
[2024-06-13 07:05:38.145467] WARN __tg_cleanup (easy_connection.c:2682) [17897][0][Y0-0000000000000000] [lt=5] [dc=0] easy cost too much time: 4075659us send_session_list: count=1
[2024-06-13 07:05:38.145499] WARN __tg_cleanup (easy_connection.c:1220) [17897][0][Y0-0000000000000000] [lt=30] [dc=0] easy cost too much time: 4075692us on_thread_wakeup: (nil)
[2024-06-13 07:05:38.145499] WARN ev_invoke_pending (ev.c:2137) [17920][0][Y0-0000000000000000] [lt=4] [dc=0] epoll handler too much time :3516150 count=2 malloc=5/2 write=3505746/1 read=0/0 server_process=0/0 client_cb=0/0
[2024-06-13 07:05:38.145500] WARN __tg_cleanup (easy_socket.c:230) [17928][0][Y0-0000000000000000] [lt=12] [dc=0] easy cost too much time(4547689us). loadavg(20.060000, 16.900000, 15.660000), socket write, fd(7137), iov(210/2), conn(0x7e9bab055050).
[2024-06-13 07:05:38.145506] WARN ev_invoke_pending (ev.c:2137) [17897][0][Y0-0000000000000000] [lt=4] [dc=0] epoll handler too much time :4087710 count=2 malloc=5/1 write=4075617/1 read=0/0 server_process=0/0 client_cb=0/0
[2024-06-13 07:05:38.145509] WARN __tg_cleanup (easy_connection.c:2563) [17928][0][Y0-0000000000000000] [lt=7] [dc=0] easy cost too much time: 4547734us send_response: count=1
[2024-06-13 07:05:38.145517] WARN __tg_cleanup (easy_connection.c:1220) [17928][0][Y0-0000000000000000] [lt=7] [dc=0] easy cost too much time: 4547743us on_thread_wakeup: (nil)

这表明 easy 工作线程是共享的,由于备份网络处理繁忙,导致其他 rpc 的处理也受到了影响。

通过命令 grep 'ob_net_easy.cp' observer.log.20240625070148 |awk -F 'request doing=' '{print $2}' 进一步分析,得到了一系列数据(此处省略具体数据展示)。

2.4 查看告警时间段的 tsar 日志

执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tsar -d 20240613 -i 1

结果显示,网络流出压力是平时的 10 倍左右

2.5 检查 RPC 消息是否积压

通过以下命令搜索 observer.log,查看 request doing 值是否过大,如果达到千级别,说明 RPC 消息有明显的积压,需要继续排查网络是否异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grep 'RPC EASY STAT' observer.log.20240613070304 
grep 'RPC EASY STAT' observer.log.20240613070304 |awk -F 'request doing=' '{print $2}'

得到一系列数据(此处省略具体数据展示),部分值达到千级别,说明存在RPC消息积压。

2.6 检查是否为独立网卡

使用 ip linkifconfig 命令可以显示网络接口的信息。通过查看接口名称、MAC 地址等信息,可以区分不同的网卡。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip link show 

# 或者
ifconfig -a

每个网卡都会有唯一的接口名称(如 eth0、eth1、ens33、ens34 等)和 MAC 地址。经排查,bond1 和 bond0 为独立网卡。

2.7 检查 observer 是否为万兆网卡

bond0 为业务网卡,bond1 为备份网卡。执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ethtool bond0

显示 Speed:10000Mb/s,说明 observer 为万兆网卡。

2.8 检查路由地址是否正确

执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip route

得到结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
default via 11.180.167.254 dev bond0
2.4.8.0/24 dev bondi proto kernel scope linksrc 2.4.8.69
169.254.0.0/16 dev bond0 scope link metric 1014
169.254.0.0/16 dev bondl scope link metric  1015

结论:路由地址正确。

综上所述:可以判断是因为每日备份导致网络带宽打满,从而引起时钟同步异常,进而导致原主的租约过期,最终出现无主情况。

3解决方案

3.1 扩容带宽

可通过增加网络带宽的方式,缓解备份时的网络压力,避免因带宽不足导致的各种问题。

3.2 备份限速

backup_net_limit:该参数为 0 时,表示不对备份带宽做限速。目前研发侧此功能尚未实现。

backup_concurrency:系统会根据当前资源进行自动适配(配置为 0 时,默认值为 10)。

建议将其配置为 1,这样备份时间会拉长。但修改为 1 后,集群无主的问题得到了改善。

sys_bkgd_net_percentage:用于设置后台系统任务可占用网络带宽百分比。不建议调整此参数,因为调整后整个 observer 都会限流,不单单是备份。

参考资料

[1]

无主问题排查: https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000360700

本文关键字:#OceanBase# #带宽# #时钟#

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爱可生开源社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
什么样的网站需要安装SSL证书呢?
在当今,我们每天都会访问各类网站,那么这些网站都安全吗?什么样的网站才能保障我们的数据安全呢?大家一起了解一下安全的网站应该做到哪些防护。那么,在访问网站时,数据传输安全是第一关,这时就需要企业网站安
合信ssl证书
2019/07/08
5.9K1
部署ssl证书需要注意什么呢?
随着社会经济的快速发展,人们的日常生活已经离不开互联网的作用了。互联网的存在使得人们的信息交互变得更加快捷方便,同时也让我们的生活多了许多乐趣。但是互联网领域和现实生活一样,也都存在一些不法分子,想窃取人们的信息。为了保障人们互联网上信息交互的安全,ssl证书就诞生了。因此给网址进行ssl证书的部署也是十分有必要的。但是ssl证书部署往往存在很多问题需要注意。
合信ssl证书
2019/07/05
2.7K1
部署ssl证书需要注意什么呢?
年度盘点:2017 SSL证书行业大事件
本文介绍了2017年SSL证书行业的大事件,包括谷歌推动全球网站启用HTTPS、Chrome浏览器即将把HTTP网站标记为不安全、Firefox将把所有HTTP页面标记为不安全、微软要求Office 365用户使用TLS 1.2、苹果Safari技术预览版46添加HTTP安全警告等。
企鹅号小编
2018/01/05
1.1K0
年度盘点:2017 SSL证书行业大事件
SSL证书是什么?SSL证书怎么申请?
  SSL证书是数字证书的一种,由权威数字证书机构(CA)验证网站身份后颁发,可实现浏览器和网站服务器数据传输加密。网站安装SSL证书后会在浏览器显示安全锁标志,数据传输协议从http(传统协议) 升级为 https(加密协议)。
安信SSL证书
2019/08/15
9.4K0
SSL证书是什么?SSL证书怎么申请?
部署ssl证书需要注意什么呢?
随着社会经济的快速发展,人们的日常生活已经离不开互联网的作用了。互联网的存在使得人们的信息交互变得更加快捷方便,同时也让我们的生活多了许多乐趣。但是互联网领域和现实生活一样,也都存在一些不法分子,想窃取人们的信息。为了保障人们互联网上信息交互的安全,ssl证书就诞生了。因此给网址进行ssl证书的部署也是十分有必要的。但是ssl证书部署往往存在很多问题需要注意。
合信ssl证书
2019/07/05
2.8K1
部署ssl证书需要注意什么呢?
常见的SSL错误解决办法您知道吗?
为了保障用户的隐私信息安全,减少信息数据泄露事件发生,越来越多的站点开始部署SSL证书来实现https加密访问,比如淘宝、天猫、京东、1号店、百度、谷歌、苹果等等。文章给大家介绍常见的SSL证书错误和解决办法。
合信ssl证书
2019/07/08
2.5K0
SSL证书是什么?SSL证书的作用
在互联网的快速发展中,网络安全已经成为一个不可忽视的话题。SSL证书,作为一种保障网络数据传输安全的重要工具,对于网站管理员、电子商务平台、在线支付系统以及任何需要保护用户敏感信息的组织来说,都是至关重要的。本文将深入探讨SSL证书的概念、作用、类型、历史发展以及如何选择合适的SSL证书。
沃通WoTrus数字证书
2024/04/03
2.3K0
SSL证书是什么?SSL证书的作用
SSL证书也会失效?什么情况下SSL证书会失效呢?
SSL证书失效可能有很多种情况,SSL证书安装上出现问题,SSL证书过期了,等等情况.
德迅云安全--陈琦琦
2022/08/17
1.1K0
域名数字证书安全漫谈(3)-您被证书服务机构忽悠了吗?
各证书机构及中间服务商,在对证书分类的时候,所使用的名称五花八门,有的服务商不使用通用的分类名称,而是使用自己分类的品牌名。公司周边同事也分不清这些证书到底有什么区别,只好听证书机构的人员推荐,很多时候按照价格最高的证书类型采购了。
用户U2
2022/06/02
9170
域名数字证书安全漫谈(3)-您被证书服务机构忽悠了吗?
SSL证书常见的八大误区
自从18年2月初谷歌旗下Chrome浏览器宣布“封杀”HTTP将所有HTTP标示为不安全网站以后,越来越多的网站用户开始安装SSL证书,将网络传输协议从HTTP升级为HTTPS。但对于HTTPS和SSL证书的功能、使用、性能,其实目前很多用户并不十分清楚,甚至说在理解上存在不少误区。
合信ssl证书
2019/07/08
1K0
DNSPod十问崔久强:证书有效期缩短,CA机构要凉透?
本期嘉宾 崔久强 上海CA中心总经理 崔久强,上海市数字证书认证中心有限公司总经理、上海市静安区政协委员、第一届上海市智慧城市建设领军先锋、一带一路信息产业发展联盟数字签名专委会主任委员、中国电子认证产业联盟专委会委员、中国密码学会电子认证专委会理事、协同创新实验室主任、上海产业菁英高层次人才、虹口区拔尖人才,长期致力于电子认证、数字身份、区块链、数据安全和数字信任等领域的研究,曾获上海市科技进步三等奖、上海市科学技术奖一等奖、中国标准创新质量贡献奖,编制国家/行业/地方标准10项、国家发明专利20项,参
腾讯云DNSPod团队
2023/05/29
1.3K0
DNSPod十问崔久强:证书有效期缩短,CA机构要凉透?
如何使用SSL证书
SSL证书是用于在WEB服务器与浏览器以及客户端之间建立加密链接的加密技术,通过配置和应用SSL证书来启用HTTPS协议,来保护互联网数据传输的安全,全球每天有数以亿计的网站都是通过HTTPS来确保数据安全,保护用户隐私。
用户8418197
2021/09/05
3.6K0
宝塔面板SSL证书安装指南
在宝塔面板上安装SSL证书是一个相对简单的过程,主要步骤包括准备SSL证书、登录宝塔面板、上传证书文件、配置SSL设置。以下是详细的步骤指南:
网络尖刀
2025/04/10
2140
宝塔面板SSL证书安装指南
网站安装SSL证书有什么用处呢?
SSL证书英文名称为 Validation SSL Certificate,申请 SSL证书需要审核申请者对域名是否拥有控制权,同时审核申请者是否为一个合法登记、真实存在的实体(通常包括各类企业,事业以及政府部门单位),CA机构在1-4个工作日完成审核后签发证书。所以又被称为企业SSL证书,网站申请安装OV SSL证书可在浏览器地址栏证书详情里查看认证企业信息,为网站带来更高可信度。
合信ssl证书
2019/07/08
2.9K0
免费与收费的SSL证书在有效期方面有什么区别
2020年9月1日起,两年期公共SSL/TLS证书正式告别了行业,在三大浏览器(Apple Safari、 Google Chrome、Mozilla Firefox)的推动下,SSL/TLS证书最长有效期变更为13个月,同时,全球各大证书权威签发机构已停止签发有效期超过1年(398天)的SSL证书,以iTrustSSL为例,目前签发的都是1年期的证书。
网络尖刀
2025/04/04
1350
免费与收费的SSL证书在有效期方面有什么区别
SSL的单向认证和双向认证
为了便于更好的认识和理解SSL协议,这里着重介绍SSL协议的握手流程。SSL协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术。SSL的握手流程非常有效的让客户端和服务器之间完成相互之间的身份认证。
合信ssl证书
2019/07/09
3.3K0
免费SSL证书的作用及其优势
在互联网时代,保护网站和用户信息的安全至关重要。SSL证书是一种用于加密和保护数据传输的安全技术。本文将探讨免费SSL证书的作用以及它所具备的优势。
涂样丶
2023/10/23
3970
免费SSL证书的作用及其优势
为什么常见的SSL证书都是一年有效期
在浏览了很多使用SSL证书的网站以后,我们会发现很多SSL证书的有效期都是一年的,这是为什么呢?
网盾JoySSL小张
2023/10/25
6880
EV证书:级别最高的SSL证书
在当今数字化时代,保护网站和用户数据的安全应该是网站最重要的功能。EV(Extended Validation)证书是一种高级别的SSL证书,提供了更强的身份验证和在线安全保障。
稀糊牛肉粥
2023/10/18
5390
如何购买SSL证书?
互联网在我们的日常生活中已经熟悉的不能在熟悉了,网上购物,在线咨询等已经成为我们习以为常的行为。但这种习惯也同样给我们带来了风险,互联网安全问题越来越受到重视,信息泄露等安全问题已经严重的影响了我们的生活,而SSL证书因此而产生,保护用户数据安全,让数据在传输过程中通过加密来保障信息不被篡改。那么如何购买SSL证书呢?
柳絮云泡泡
2023/03/15
7.5K0
如何购买SSL证书?
相关推荐
什么样的网站需要安装SSL证书呢?
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验