最新要闻
- moto X40宣布搭载骁龙8 Gen2!会抢下“真首发”吗?
- 天天热消息:NASA今天下午发射阿尔忒弥斯1号登月火箭:这次燃料还没泄漏
- 每日资讯:9499元你还抢不到?RTX 4080今日首卖 性能不俗:买它还是RX7900
- 环球聚焦:童年回忆杀!Netflix新版《天线宝宝》剧集正式上线
- 谁说谎将揭晓!特斯拉“失控”新进展:上海鉴定机构已到潮州 今天现场鉴定
- 当前视点!2.5万越南盾1只!越南顶级美食却是生态杀手 严重威胁我国
- 拿员工工资做文章的国美 差不多是要输光了
- 读写300MB/s!索尼发布新款SD卡:256GB售价3299元
- AMD Zen4超级APU首次现身:16核心32线程有戏!
- 全球实时:一上线就被夸爆!卖寿司的《捕鱼达人》 我彻底上头了
- 地球上最深的洞是怎么挖出来的?
- 卫健委权威解答:国家未调整成人高血压诊断标准
- 真是高射炮打蚊子!RTX 4080公版卡官方美图赏
- 每日关注!还有想买的吗?特斯拉中国加快产品交付:缩短至1-5周 速度提车节奏
- 环球今头条!世界人口正式达到80亿:幸运儿是一名女婴 诞生于亚美尼亚
- 环球热资讯!不用关键词 新AI搜索引擎火了 网友:刚用5分钟就设为默认
手机
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
票房这么火爆,如何请视障人士“看”一场电影?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
- 票房这么火爆,如何请视障人士“看”一场电影?
家电
观点:B站自曝去年服务器大崩溃原因 就因为这?
不知道差友们还记不记得,去年的 7 月 13 日,B 站发生了一件大事。它毫无征兆的崩了。。。( 如果忘了的小伙伴,可以看这篇文章)
(相关资料图)
至于为啥崩了,当时大家谁也心里没个底。不过吹起水来可是一套一套的,什么停电啊,起火啊,程序员 rm -rf /* 跑路啊。。。说的是个天马行空。
后来呢,随着 B 站在凌晨两点一顿修仙,把服务器问题给慢慢解决,这件事情也算是告一段落了。
本以为这次 B 站崩了会和微博上无数崩了的网站一样,成为我们冲浪生活中的一个笑谈,仅留下一个大会员给我们“ 缅怀 ”。
没想到在今年的 7 月 13 日,B 站特意发了一篇文章,刨开心窝子来给我们讲了一讲,那个晚上,到底发生了什么。
咱也看了一下这篇文章,好家伙,让整个 B 站崩溃的原因,竟然只是一行代码没写好???借着这篇文章,世超准备带大家从B 站的角度来回顾一下这件事情。放心,不会有生涩难懂的名词,不会有犀利糊涂的黑话,保证小白也能看明白。 案情回溯:意外,发生在 2021 年 7 月 13 日的 22 时 52 分。
负责搞定站点可靠性的工程师(SRE)和B站的客服都收到了大量网站打不开的报警。
而负责处理这些事故的同事已经下班了,当即准备在家里通过 VPN 来登录公司内网处理这些问题。
结果发现VPN也崩了。。。压根进不去系统。最后,还是在公司的整了个 “ 绿色通道 ” 才成功进去。你说这绿色通道不会是向日葵吧(一种远程桌面软件)
▼
而在绿色通道成功打通,负责各种业务的团队就位之后,B 站也开始对问题进行分析定位。出问题的模块也很明显,在线业务主机房的7层 SLB(负载均衡服务器,用来处理多用户,多业务的情况)的 CPU 跑满了 100%。
简单来说,就是 CPU 被不知道哪里来的刺客给占用光了算力,没法处理业务了。
系统未响应.exe▼
B 站最开始的尝试方法呢,和咱们平时手机电脑卡机后做的操作一样。
重启就完事了,要相信重启能解决 90% 的问题!
但很可惜,B 站这次是那个 10.5%。
说业务恢复了嘛,也没有,主机房重启后还是出现了CPU 跑满 100%的问题。不过别的机房好起来了,虽然会卡,但是没出现 CPU 跑满的问题。
有一部分做了多活的业务(多站点同时提供服务)开始慢慢恢复。所以。。。重启不能完全解决问题,但是这个问题既然过去没出现过。
那会不会是新加入的代码问题呢?随着时间在一分一秒的过去,借助分析工具的帮助,问题被定位到了最近新上线的 Lua(一种编程语言,类似 Python,Java 这些)函数上。
随后,B 站开始进行了一波波紧张的回滚操作。
这一通工作弄下来,虽然好像找到几个疑似出问题的部位,但服务器还是该挂挂,距离 “ 康复 ” 还有那么一些距离。
没办法,总得让业务先跑起来吧。于是团队开始兵分两路。一队继续坚持排查问题,寻找原因,另一队则是开始重建一个新的 SLB 服务。
在紧张刺激的一小时后,新的 SLB 配置成功,原本导向主站的流量也慢慢的开始迁移过去。
好在这次行了。
凌晨两点,在崩溃了三小时之后,B 站的业务总算得到了恢复。罪魁祸首:上面这些,就是那个晚上 B 站发生的故事,虽然解决了表面问题,让业务恢复了。
可是最根本的原因是啥呢?如果不找到根因,那迟早会二度暴雷。
负责排查问题的同学也没让人失望,在时间压力大大放缓之后,找出了真相。没有外星人,没有起火,没有断电,和网友们想象的大相径庭。B 站这次崩的根因,仅仅是因为一个求最大公约数的函数没写好。。。
咱先盘一下这个 “ 万恶之源 ” 哈。
这是一个典型的 “自己调用自己 ” 的递归函数。a b两数字辗转求余,直到b 等于 0的时候函数终止。不然这个函数就会自己调用自己,重新再跑一遍。
看上去好像是一点点问题都没有,既明确了递归的终止条件(b = 0),也没有太多复杂的逻辑处理。但是既然事情能发展到这地步。。。那就说明是出大问题了。对编程有些了解的差友可能发现了不对:
你传进去的 0,是个什么 0?没错,在编程语言里,数字 0 和字符串 ‘ 0 ’并不算是一个东西。为了防止呆呆的计算机语言把事情给搞混,像 C 语言,Java 这些静态语言都会要求我们在创建新变量的时候声明这个变量的类型。
搞清楚它到底是整数,还是小数,或者是一个字符。然而 Lua 是个非常智慧的语言,它没有这个要求。麻烦的脏活累活让它自动来做就好了,Lua 会根据程序的需求自动分配变量类型。
C语言示例:# 定义一个整型数据a,为它赋值1# 定义一个字符串数据b,为它赋值‘1’int a = 0;char a = '0';Lua示例:--定义 a 为数字0,b为字符串‘0’a = 0b = '0'
所以,我们给参数 b 传进去的数值,是数字 0呢,还是字符 ‘ 0 ’?一旦前面数据验证没把好关,在执行某个功能的时候,把字符 ‘ 0 ’给传到了这个函数里。
地雷就被引爆了。字符串‘0’不会等于数字 0,函数的终止条件判断不通过。
所以程序进入递归模式,再次调用自己。在后续进行求余预算的时候,Lua 的 “ 智慧 ” 又突然起到了作用。Lua 一拍脑袋,咋会有人把字符 ‘ 0 ’ 拿来做计算啊,肯定是想把这个参数当数字用。
于是发生了强制类型转换。
所以咱们小学数学都会学到的。。。把 0 当除数的事情就发生了。这要是古老的大哥 C 语言来干这活,可能直接就给一个 Floating point exception 报错了。但是 Lua 不一样,作为一个新时代的 “ 智慧 ” 的语言,它会优雅的返回一个 nan(Not A Numbewr)。
程序,继续运行。更要命的是,nan 也不会等于0。。。程序的终止条件无法实现。这样跑几个循环之后,原本用来计算 a 和 b 的最大公约数的函数 _gcd(a,b) 就变成了一个停不下来的函数 _gcd(nan,nan)。
在停不下来的路上根本停不下来,直接把 CPU 资源给吃满了。
太聪明也不是一件好事啊。。。
就这样,被占满的 CPU 一口气把别的业务也带崩了。还得前面提到的在家的 B 站程序员没法在家通过 VPN 来抢救网络么?没错,他们登录内网的时候,其中有部分服务也需要通过内网来处理。。。
属于是把钥匙断锁眼里,也是崩的理所当然了。崩完之后:最后,如果差友们对相关技术细节更感兴趣的话,世超建议你看看 B 站发布的这篇2021.07.13 我们是这样崩的除了对事故的起承转合,还对未来技术的更进与反思都做了更加专业,全面的总结。
讲道理,这样的机会其实挺难得的。每年崩了的应用何其多,但是愿意发出来给同行学习,给普罗大众看个乐子的寥寥无几。
向上滑动▼
B 站这次愿意分享,直面自己的 “ 伤疤 ” 。也让我们看到了互联网运维上最真实的一面。这些经验,可不会写在任何教科书上。哦对,这篇文章发出来的晚上,B 站其实又偷偷小崩了一次。。。
不知道是不是团队好好总结了去年经验的缘故。这回还没等大部分人反应过来。。。B 站已经把问题给解决了。
关键词: B站自曝去年服务器大崩溃原因 就因为这
moto X40宣布搭载骁龙8 Gen2!会抢下“真首发”吗?
天天热消息:NASA今天下午发射阿尔忒弥斯1号登月火箭:这次燃料还没泄漏
每日资讯:9499元你还抢不到?RTX 4080今日首卖 性能不俗:买它还是RX7900
环球聚焦:童年回忆杀!Netflix新版《天线宝宝》剧集正式上线
谁说谎将揭晓!特斯拉“失控”新进展:上海鉴定机构已到潮州 今天现场鉴定
当前视点!2.5万越南盾1只!越南顶级美食却是生态杀手 严重威胁我国
拿员工工资做文章的国美 差不多是要输光了
读写300MB/s!索尼发布新款SD卡:256GB售价3299元
AMD Zen4超级APU首次现身:16核心32线程有戏!
全球实时:一上线就被夸爆!卖寿司的《捕鱼达人》 我彻底上头了
地球上最深的洞是怎么挖出来的?
卫健委权威解答:国家未调整成人高血压诊断标准
真是高射炮打蚊子!RTX 4080公版卡官方美图赏
每日关注!还有想买的吗?特斯拉中国加快产品交付:缩短至1-5周 速度提车节奏
环球今头条!世界人口正式达到80亿:幸运儿是一名女婴 诞生于亚美尼亚
环球热资讯!不用关键词 新AI搜索引擎火了 网友:刚用5分钟就设为默认
天天视讯!刘作虎:安卓现在很好用 应该不用争论了吧
当前消息!最高降价超20万元 奔驰EQ系列电动车国内大降价:16日生效
《战神:诸神黄昏》黑妹剧情被国外玩家吐槽:3小时又臭又长
地球上最干净的地方 脏兮兮的
焦点信息:神仙姐姐刘亦菲主演国产剧《梦华录》将登陆日本:岛国网友称很期待
热资讯!发射天舟五号3天后:长征七号火箭残骸已再入大气层烧毁
环球视点!居家好物 旦用难回:湿厕纸16.9元240抽狂促
编辑部吵起来了:玩手游到底有没有必要配游戏手柄?
播报:《暗黑》粉丝注意了!ROG官宣将推出《暗黑破坏神:不朽》联名手机
【新要闻】499元就能买iPhone 13同款设计!乐视Y1 Pro+发布
原是我不配!优酷诉B站UP主侵权《甄嬛传》获赔
环球观速讯丨米缸长满小虫淘米飘满盆 老人担心求助 专家:是谷盗、没有明显危害
环球快报:破我防是吧?网友列举苹果手机23大“罪状” 太真实了
环球滚动:Evo认证超高性能轻薄本!H3CBook Ultra 14T开箱图赏
天天视点!一键屏蔽陌生人评论!抖音上线“防打扰保护工具”
每日报道:饮品店推300元一杯天价柠檬茶:原料选用800元一斤鱼子酱
今日热议:9年前狂笑比亚迪没技术 造不出好产品的马斯克:如今对中国新能源服了
【全球独家】日产轩逸弯道高速超车后失控:一头扎进河沟
张雪峰称外卖员职业5-10年内可能消失:年轻人宁送外卖也不进厂根本没前途
690万元史上最贵:全球唯一红色Mac Pro顺利拍出
环球观热点:1699元 博主评Redmi Note 12:堆料调校都下了功夫了
天天关注:AI换脸好玩但很危险 Intel发布FakeCatcher检测软件:准确率96%
【天天报资讯】维修不再直接换新:苹果将为iPhone 14系列提供同机维修服务
网传小鹏汽车跟随特斯拉降价 官方回应:只是调整权益结构
天天滚动:造谣特斯拉刹车失灵的车主被判侵权:登报致歉 赔偿1万元
每日热闻!全球最大浮动式风电场投产 供电对象让人“属实没想到”
一个充电桩难倒电动车
最新消息:最后一辆纯燃油车 兰博基尼小牛Sterrato官图:超级跑车也能“越野”
动态焦点:离谱!乔布斯凉鞋拍卖顺利落幕:成交价达154万元
实时:诊断标准下调!专家:没症状不代表没患高血压 暴饮暴食很容易导致
TP-Link全球首发多款Wi-Fi 7路由:四频33Gbps、双万兆口
看热讯:B站播25年前电视剧《真命小和尚》被起诉侵权:要求下架并赔偿10万
天天亮点!全球人口今天达到80亿:印度明年将超我国人口第一 逼近17亿
通讯!谁说谎?潮州特斯拉连撞事件司机首发声:我刹车没?踩过油门吗?
90后女子上班坚持12年装50岁大妈:会网购的人几乎都认识她
每日时讯!单日市值蒸发7万亿!亚马逊启动公司最大规模裁员:计划裁掉1万人
资讯:坐拥8755亿!全球第二富豪贝索斯:会将财富捐出去做慈善 这只是数字
iPhone 14 Pro DXO电池成绩119分 高端第8:电池很小 续航很强
“突然不认识《西游记》了”登热搜:外语版让人直呼上头
世界实时: 索尼承诺玩家在今年玩到《战神5》 结果真的做到了
2024年巴黎奥运会吉祥物弗里吉公布 源自法国传统帽
世界热议:球迷表情可分析!卡塔尔世界杯将部署2.2万个摄像头
环球观察:马斯克回应火星殖民计划:生命不应只用来收拾地球烂摊子
最新:中国制造的特斯拉反向出口北美?马斯克回应了
3GHz本无压力 RX 7900系显卡频率“缩水":AMD想法大变
全球今热点:北斗立大功:新疆3000亩“超级棉田”以往需要30人管理 现在仅需2人
黑客重返《艾尔登法环》!致大量玩家被封号
RTX 4090频频烧毁:16针电源线竟有两种版本!其一很可疑
尺寸看齐宝马5系 疑似比亚迪高端品牌轿谍照曝光:配空气悬架
马斯克计划“省掉”推特免费午饭:一年能节约超9000万元
环球报道:RTX 4090 vs.3080游戏性能实测:帧数翻番一点不吹
环球要闻:小米13系列一大遗憾曝光:或取消Ultra 13S系列再上
当前观点:永恒经典!港剧《我和僵尸有个约会》电影版开拍
比亚迪全力冲刺高端市场 宝马却想做更便宜的电动汽车
世界热文:AMD Zen4不行与此有关?网友质疑Win11 22H2性能翻车
报道:女子网购电暖宝遭炸伤毁容:卖家只愿赔医药费
4K高色域高色准!雕塑家M27UA2智慧显示器评测:既是一台电视、也是一台电脑
全球热议:信息量大!特斯拉潮州失控事故家属视频回应:司机不刹车?脚垫背锅?
每日速读!电动两轮车车主注意!超威官方科普:一文看懂电池如何正确存放、安装
马斯克称自己一周工作7天:不建议学我!
全球资讯:最新全国入冬进程图:冬季覆盖一半国土 本周末南方迎来垮塌式降温
马斯克称不看好飞行汽车:没准哪天会掉下来
当前热门:每天480公里 跑了45万公里的蔚来ES6全车拆解:动力、能耗几乎无衰减
当前头条:撼迅预告第一款非公版RX 7900显卡:幽幽蓝灯 摄人心魄
全球新消息丨小米新专利公布:指纹解锁不用担心烧屏了
观天下!丰田、本田羡慕哭了:一汽-大众ID纯电车型销量达10万台
【全球聚看点】美军无人航天器X-37B在轨908天后返回地球:6次飞了3774天
潮州特斯拉狂飙2公里致2死3伤 律师:若无法鉴定刹车失灵车主或担刑责
世界上“最快的鞋”面世:时速11km/h 8430元买吗?
挑战千元级音质!真我Buds Air3S无线耳机官宣
恒大首款汽车 博主实测恒驰5续航:打了5.66折
【世界新要闻】PC要靠边站了 AMD强调EPYC将是头等大事:最大增长机会
永别了 天舟四号!明天受控再入大气层
【世界快播报】机械硬盘第二春 希捷首发二代MACH.2硬盘:性能直追SSD
【新要闻】球感无敌 无人机扔下35米高空球 内马尔两脚停下破纪录
关注:初中小伙为圆梦辞年薪20万工作造飞机 耗时7年花费70多万造了5架
当前简讯:开播一周年!《英雄联盟:双城之战》纪录片将于11月21日线上首播
环球观点:荣耀80外观首度公布:用上iPhone 14/小米Civi 2同款药丸挖孔
卖爆了!《GTA三部曲:最终版》销量或高达1400万
一女生入手Redmi Note 12潮流版:直呼“绝绝子”
环球通讯!CEO放言40万买燃油车很悲惨:车主曝智己L7中控全灭、只能蠕行
热头条丨小米11售后新政策发布:三年免费更换/维修主板
当前观点:山东黑猩猩一天一棵大葱三四瓣蒜 园方:它们很爱吃、还能消炎杀菌
司机家属逐一反驳特斯拉回应“全程无刹车动作”:有闪躲为何不会踩刹车