从广东电信故障看雪崩

这篇具有很好参考价值的文章主要介绍了从广东电信故障看雪崩。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文几乎与此次故障无关,它只是写本文的缘起。

周五早上发一则朋友圈,呼应一下周四下午广东电信的故障:
从广东电信故障看雪崩
我在第一时间(2 点 15 左右)发觉问题,随后我怀疑欠费,马上充值 200 块,未恢复,再次充值 100 块…4 点 20 左右恢复后,我接连收到了好几条充值短信。

虽然电信网络崩了,但计费系统还好,不然也不会充值成功,但如果很多人一起充值,打一波 burst,计费系统也难扛,网络恢复后,电信又集中发送故障期间憋住的短信,这波 burst 又对短信网关造成冲击…如果不幸,突然的网络故障将连带着几个其它服务故障。这是个普遍问题,背后的社会学原因也简单。

如果系统出了问题,用户的处理方案往往高度一致,这种全部同步往往引起连锁反应。比如发现火情,人们会选择逃跑,这导致了疏散通道拥塞,引发潜在的踩踏。类似的,如果电话打不出去,首先会想到欠费,于是引发充值 burst。这些其实和 error retry 没本质区别,而系统崩溃往往都由此引发,而不是故障本身。

我在朋友圈回复一位朋友,另一个和 error retry 类似的行为是 log record。

系统发生故障时,一般会记录 error log,往往所有关联组件都会记录 log,这导致系统甚至网络被 log 阻塞,这还不包括组织 log 字符串处理没玩好造成段错误的事,所以我说系统不是故障打崩的,是记日志记崩的。你是不是也经历过系统阻塞住,反应很慢,结果发现问题在 /dev/log,或者 rsyslogd 把 CPU 打爆。

既然 reaction 可能引发正反馈,那就待在原地什么都不做。所以 Linux 的 panic 和 Windows 的 BSoD(blue screen of death) 是个好方法,日本人的地震自救与此类似。

另外就是指数退避,这非常重要。朋友圈正文说,TCP 固然遵守了该原则,但只能在 TCP 内闭环,应用往往不遵守,出了问题不停 retry,最终引发雪崩。

第三个要点是随机因子,像共享以太网和 Wi-Fi 这种物理链路设施,下面再没有为其兜底的层,它们自身要把容错做到极致,同时采用指数退避和随机因子。

类似注册类业务,充值计费以及后续发短信这种多打一,一打多场景,要引入随机因子,不能一起干。

我经常说 IDC incast 需引入随机因子解决而不是去搞什么拥塞控制算法,因为 incast 本质上后知后觉,无法事先预测,无论 loss-based,delay-based 算法,都有局部性和滞后性,无法事前应对 incast。很简单,incast 业务在 response 前随机等待一个事先配置的不大于 RTT 的时间即可。 多打一的 response 因随机时间在不同时间进入 buffer,大大减少 buffer 占用,缓解 incast 丢包,而 incast 最恐怖后果就是丢包,这大概率引发密集 retry,后果是什么,前面说过了。

朋友圈正文中 ACK 过多问题,我另有详述,这里指出拥塞控制相关的点。

乱序是 TCP 的一个诟病点,但很少有人感受过它带来的关于 ACK 过多的副作用。合理但不经常的场景,TCP 报文两两倒序到达,这直接取消 delayed ack 以及 lro/gro,data/ack 达 1:1,包量加倍。设备预留了资源处理 data,却没有预留有余量的资源处理 “由这些 data 引发的 ack”,越丢包,ACK 越多,设备压力越大,引发连锁反应。不要试图模拟和推导,没有一定体量,雪崩没那么容易,出了问题感受就是了。

电信与互联网两个阵营一直为微信等保活 app 要不要为它们 keepalive 引发的底层信令风暴而买单,在互联网内部有个类似的事,短连接业务要不要为 TCP syn/fin/rst 风暴买单。对短连接,设备处理的绝大多数报文都是 syn/fin/rst 等小控制包,特别是 NAT 等需要重处理的网关,这些小控制包本身让网关不堪重负,遇到 error retry,几乎肯定把网关打挂,而 error retry 的 root cause 往往在目标服务,与网络无关。因此有了连接复用。回到信令风暴的解法,电信侧提供 API,微信调 API 宣称 “我要一直发 keepalive,请勿让底层连接休眠。”

控制流和数据流不能相互影响,这都是场面话,所有雪崩问题的根本解法还是要增加资源,但事情另一面很少有人提起。增加资源之外,还要加大设施密度。最好的例子是 3G,4G,5G 的基站密度越来越大,靓货靠实物来堆。

密度越小越脆弱,雪崩影响越大。可以这么简单理解,同样多的资源,抗雪崩能力取决于分布,低密度设施单点需要强支撑,它跨了全垮了,高密度设施则施力更分散,更能容错。和基站同样好的例子是 CDN,节点密度和雪崩负相关。说了那么久 “控制爆炸半径”,不能光造词,举个例子,这就是。

典型的通用 case,稀疏集群,每台服务器负载都高,逻辑距离远,一台挂掉,临近服务器将被导入加倍流量,一旦也垮掉,故障将加速蔓延,就像丝袜脱丝一样一发不可收拾,密度高就没这问题,每台服务器负载均不太大,且逻辑距离近,负载被周边分担吸收,这是显然的道理。

还有一类雪崩是好心办坏事引发。参考这篇:IPv6 Linux 实现中一个路由缓存的问题,大概意思是,Linux 为 IPv6 构建了一棵路由 cache 树,用来在海量五元组 session 中快速找到匹配的 session,但这棵树的 CRUD 需要持锁,局面变成了,session 越多,性能越差。

类似的 case,也可以从各类垃圾回收机制中找到。

周四下午广东电信严重故障导致我停机 2 个小时。下班路上思考了一下相关。抛开事实不谈,从纯技术上看,雪崩确实是难搞的。零零散散写一篇随笔。

浙江温州皮鞋湿,下雨进水不会胖。文章来源地址https://www.toymoban.com/news/detail-479313.html

到了这里,关于从广东电信故障看雪崩的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一个几乎全民都会的算法——二分查找

    20年前央视2套有一档叫《幸运52》的综艺节目,其中一个环节叫《幸运超市》,每一期已故著名主持人咏哥都会给佳宾们出示几个商品,凡是佳宾猜中价格的,就能获赠这件商品。这档节目红极一时,被很多地方卫视节目复制抄袭。 比如,上面这段视频(gif图)的配音这样的:

    2023年04月09日
    浏览(42)
  • 【解决(几乎)任何机器学习问题】:超参数优化篇(超详细)

    这篇文章相当长,您可以添加至收藏夹,以便在后续有空时候悠闲地阅读。 有了优秀的模型,就有了优化超参数以获得最佳得分模型的难题。那么,什么是超参数优化呢?假设您的机器学习项⽬有⼀个简单的流程。有⼀个数据集,你直接应⽤⼀个模型,然后得到结 果。模型

    2024年02月21日
    浏览(46)
  • 怎么在家里给广东联通宽带免费提速?

    广东联通光纤宽带用户均可免费提速至20M-100M的速度,每月可以累计提速30小时。本经验就与大家分享如何免费自助提速。 1、用浏览器打开百度首页,使用百度搜索“广东联通宽带提速”,点击第二个搜索结果。 2、在提速活动页面中,点击立即下载提速客户端。 3、下

    2024年02月08日
    浏览(50)
  • 广东IPTV机顶盒安装第三方应用

    各位大家好! 这是我第一次发布文章,第一次发表这篇文章,我感觉很害怕,我怕我会写的不好不详细,我看过别人写的文章,别人的作文,得到很多赞。我也很想得到那么多的赞,我也想得到很多关注我的人,我也想得到别人的评论,我想进步,后期我会慢慢的努力,

    2024年02月09日
    浏览(60)
  • 2023 CPC 广东省赛(B,D)

    链接:The 2023 Guangdong Provincial Collegiate Programming Contest 有中文题面,题意就省略了。 思路 本题参考了官方题解。 注意观察题目数据 n , m n, m n , m 的和都不超过 5 e 5 5e5 5 e 5 ,那么我们dp就可以从这两方面考虑,这里我们从站点而不从区间来入手。 定义dp方程: f [ i ] : f[i]: f

    2024年02月06日
    浏览(39)
  • 26岁,几乎零基础,想从基础学习渗透测试该如何进行?

    要成为一名渗透测试员,想从基础学习需要先掌握下面这3块(文末有相关自学资源推荐): 1、学习硬件和网络 渗透测试主要涉及网络和部分涉及硬件。 2、操作系统和系统架构 操作系统和系统架构在渗透测试中起着关键作用。系统操作涉及x86(32位)和x64(64位)架构,必

    2024年02月07日
    浏览(52)
  • Python:Linux下安装Anaconda,可多人使用(内容几乎完整)

    本文记录在Ubuntu下,配置Python的开发环境,包括安装Anaconda、配置源、配置虚拟环境,为不同用户配置虚拟环境。假设各位已经稍微有一点点Linux的操作经验,如知道ls、grep等命令,也稍微有点虚拟环境、pip安装依赖包的经验。 说明:细心的读者会发现本文截图中的主机名有

    2024年02月07日
    浏览(39)
  • 2023 广东海洋大学 GDOUCTF Writeup By AheadSec

    感谢战队的每位同学,辛苦了~ Web: Nacl 、 monkey777 、 peakaboo Pwn: zsNick Crypto: Nacl Reverse: kcldah Misc: mochu7 、 Nacl 最终成绩第17名: 打开界面看到是个贪吃蛇游戏,拿flag的条件是坚持60秒,玩了一下可以发现蛇会越来越快,那么肯定有个参数控制蛇的速度 然后打开右键检查查看源代

    2024年02月02日
    浏览(57)
  • 各个AI模型写2023年广东高考作文大比拼

    今天是一年一度的高考开始的日子,寒窗苦读十二年,剑指今朝。         作为过来人,当年的高考场景还历历在目。这里先预祝各位莘莘学子,高考正常发挥,旗开得胜,马到功成,考上心中理想的大学。 今天早上是语文卷。里面的大头归属作文了。 今年广东高考的语文

    2024年02月08日
    浏览(44)
  • 为什么pdf拆分出几页之后大小几乎没有变化

    PDF 文件的大小在拆分出几页之后几乎没有变化可能有几个原因: 图像压缩 : 如果 PDF 文件中包含图像,而这些图像已经被压缩过,拆分后的页面依然会保留这些压缩设置,因此文件大小可能不会显著变化。 文本和矢量图形 : PDF 文件中的文本和矢量图形通常不占用太多空间,

    2024年04月14日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包