亚洲婷婷免费_区一区二区三区中文字幕_欧美做受高潮电影o_日韩av电影免费在线_国产精品麻豆入口_无码国产精品96久久久久_99热在线免费_成人性生交大片免费看午夜_成人高清av_欧美三级免费

B站自曝去年服務器大崩潰原因,就因為這?

前沿科技 3年前 (2022) 虛像
2 0 0

不知道差友們還記不記得,去年的 7 月 13 日,B 站發生了一件大事。

它毫無征兆的崩了。。。( 如果忘了的小伙伴,可以看 這篇文章 )

B站自曝去年服務器大崩潰原因,就因為這?

至于為啥崩了,當時大家誰也心里沒個底。

不過吹起水來可是一套一套的,什么停電啊,起火啊,程序員 rm -rf /* 跑路啊。。。

說的是個天馬行空。

B站自曝去年服務器大崩潰原因,就因為這?

后來呢,隨著 B 站在凌晨兩點一頓修仙,把服務器問題給慢慢解決,這件事情也算是告一段落了。

B站自曝去年服務器大崩潰原因,就因為這?

本以為這次 B 站崩了會和微博上無數崩了的網站一樣,成為我們沖浪生活中的一個笑談,僅留下一個大會員給我們 " 緬懷 "。

B站自曝去年服務器大崩潰原因,就因為這?

沒想到在今年的 7 月 13 日,B 站特意發了一篇文章,刨開心窩子來給我們講了一講,那個晚上,到底發生了什么。

B站自曝去年服務器大崩潰原因,就因為這?

咱也看了一下這篇文章,好家伙,讓整個 B 站崩潰的原因,竟然只是一行代碼沒寫好???

借著這篇文章,世超準備帶大家從 B 站的角度來回顧一下這件事情。

放心,不會有生澀難懂的名詞,不會有犀利糊涂的黑話,保證小白也能看明白。

案情回溯

意外,發生在 2021 年 7 月 13 日的 22 時 52 分。

負責搞定站點可靠性的工程師SRE和 B 站的客服都收到了大量網站打不開的報警。

B站自曝去年服務器大崩潰原因,就因為這?

而負責處理這些事故的同事已經下班了,當即準備在家里通過 VPN 來登錄公司內網處理這些問題。

結果發現VPN 也崩了。。。壓根進不去系統。

最后,還是在公司的整了個 " 綠色通道 " 才成功進去。

你說這綠色通道不會是向日葵吧(一種遠程桌面軟件)

B站自曝去年服務器大崩潰原因,就因為這?

而在綠色通道成功打通,負責各種業務的團隊就位之后,B 站也開始對問題進行分析定位。

出問題的模塊也很明顯,在線業務主機房的 7 層 SLB負載均衡服務器,用來處理多用戶,多業務的情況)的 CPU 跑滿了 100%。

簡單來說,就是 CPU 被不知道哪里來的刺客給占用光了算力,沒法處理業務了。

系統未響應 .exe ▼

B站自曝去年服務器大崩潰原因,就因為這?

B 站最開始的嘗試方法呢,和咱們平時手機電腦卡機后做的操作一樣。

重啟就完事了,要相信重啟能解決 90% 的問題!

B站自曝去年服務器大崩潰原因,就因為這?

但很可惜,B 站這次是那個 10.5%。

說業務恢復了嘛,也沒有,主機房重啟后還是出現了 CPU 跑滿 100% 的問題。

不過別的機房好起來了,雖然會卡,但是沒出現 CPU 跑滿的問題。

B站自曝去年服務器大崩潰原因,就因為這?

有一部分做了多活的業務(多站點同時提供服務)開始慢慢恢復。

所以。。。重啟不能完全解決問題,但是這個問題既然過去沒出現過

那會不會是新加入的代碼問題呢?

隨著時間在一分一秒的過去,借助分析工具的幫助,問題被定位到了最近新上線的 Lua ( 一種編程語言,類似 Python,Java 這些 ) 函數上。

隨后,B 站開始進行了一波波緊張的回滾操作。

B站自曝去年服務器大崩潰原因,就因為這?

這一通工作弄下來,雖然好像找到幾個疑似出問題的部位,但服務器還是該掛掛,距離 " 康復 " 還有那么一些距離。

沒辦法,總得讓業務先跑起來吧。

于是團隊開始兵分兩路。

一隊繼續堅持排查問題,尋找原因,另一隊則是開始重建一個新的 SLB 服務。

在緊張刺激的一小時后,新的 SLB 配置成功,原本導向主站的流量也慢慢的開始遷移過去。

B站自曝去年服務器大崩潰原因,就因為這?

好在這次行了。

凌晨兩點,在崩潰了三小時之后,B 站的業務總算得到了恢復。

罪魁禍首

上面這些,就是那個晚上 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 = 0

b = '0'

所以,我們給參數 b 傳進去的數值,是數字 0 呢,還是字符 ‘ 0 ’

一旦前面數據驗證沒把好關,在執行某個功能的時候,把字符 ‘ 0 ’ 給傳到了這個函數里。

地雷就被引爆了。

字符串 0 不會等于數字 0,函數的終止條件判斷不通過。

所以程序進入遞歸模式,再次調用自己。

在后續進行求余預算的時候,Lua 的 " 智慧 " 又突然起到了作用。

Lua 一拍腦袋,咋會有人把字符 ‘ 0 ’ 拿來做計算啊,肯定是想把這個參數當數字用。

B站自曝去年服務器大崩潰原因,就因為這?

于是發生了強制類型轉換。

所以咱們小學數學都會學到的。。。 把 0 當除數的事情就發生了。

這要是古老的大哥 C 語言來干這活,可能直接就給一個 Floating point exception 報錯了。

但是 Lua 不一樣,作為一個新時代的 " 智慧 " 的語言,它會優雅的返回一個 nan (Not A Numbewr)。

程序,繼續運行。

更要命的是,nan 也不會等于 0。。。程序的終止條件無法實現。

這樣跑幾個循環之后,原本用來計算 a 和 b 的最大公約數的函數 _gcd ( a,b ) 就變成了一個停不下來的函數 _gcd ( nan,nan ) 。

在停不下來的路上根本停不下來,直接把 CPU 資源給吃滿了。

B站自曝去年服務器大崩潰原因,就因為這?

太聰明也不是一件好事啊。。。

就這樣,被占滿的 CPU 一口氣把別的業務也帶崩了

還得前面提到的在家的 B 站程序員沒法在家通過 VPN 來搶救網絡么?

沒錯,他們登錄內網的時候,其中有部分服務也需要通過內網來處理。。。

B站自曝去年服務器大崩潰原因,就因為這?

屬于是把鑰匙斷鎖眼里,也是崩的理所當然了。

崩完之后

最后,如果差友們對相關技術細節更感興趣的話,世超建議你看看 B 站發布的這篇 2021.07.13 我們是這樣崩的

除了對事故的起承轉合,還對未來技術的更進與反思都做了更加專業,全面的總結。

講道理,這樣的機會其實挺難得的。

每年崩了的應用何其多,但是愿意發出來給同行學習,給普羅大眾看個樂子的寥寥無幾。

向上滑動 ▼

B站自曝去年服務器大崩潰原因,就因為這?

B 站這次愿意分享,直面自己的 " 傷疤 " 。

也讓我們看到了互聯網運維上最真實的一面。

這些經驗,可不會寫在任何教科書上。

哦對,這篇文章發出來的晚上,B 站其實又偷偷小崩了一次。。。

B站自曝去年服務器大崩潰原因,就因為這?

不知道是不是團隊好好總結了去年經驗的緣故。

這回還沒等大部分人反應過來。。。B 站已經把問題給解決了。

原文地址:http://www.myzaker.com/article/62d6d8f0b15ec07ae9611e9f

版權聲明:虛像 發表于 2022年7月20日 pm12:32。
轉載請注明:B站自曝去年服務器大崩潰原因,就因為這? | 快導航網

相關文章

日日摸日日碰夜夜爽无码| 成人免费播放器| 婷婷视频在线| 中文字幕精品av| 国产精品久久精品牛牛影视| 午夜精品福利在线| 日韩手机在线视频| 成人污视频在线观看| 久久久久久国产免费a片| 亚洲深爱激情| 视频在线观看免费高清| 亚洲婷婷伊人| 色一情一乱一乱一区91| 精品国产黄a∨片高清在线| 99精品电影| 国产又粗又长又爽视频| 992tv国产精品成人影院| 亚洲综合一区二区不卡| 男人资源在线播放| 97不卡在线视频| 免费在线观看麻豆视频 | 一本到高清视频免费精品| 亚洲一区二区天堂| 国产精品久久久久久久久快鸭| 18精品爽视频在线观看| 国产一区二区不卡老阿姨| 伊人网伊人影院| 鲁大师成人一区二区三区| 亚洲天堂小视频| 国产精品红桃| 亚洲第一区第二区第三区| 久久精品久久久| 99热手机在线| 欧美激情偷拍自拍| 国产一区二区视频免费在线观看| 波多野结衣在线观看视频| 成人深夜在线观看| 波多野结衣在线网址| 激情综合网激情| 少妇一级黄色片| 久国产精品韩国三级视频| 五月婷婷综合在线观看| 久久一二三区| 我和岳m愉情xxxⅹ视频| 日精品一区二区| 日本黄色网址大全| 免费观看成人鲁鲁鲁鲁鲁视频| 国产人妻一区二区| 久久国产免费看| 成年人视频软件| 青青草综合网| 动漫av网站免费观看| 精品国产成人| 日韩av播放器| 天天久久综合| 奇米视频7777| 国内激情久久| 国产精品成人免费一区久久羞羞| 亚洲人人精品| 亚洲av成人无码一二三在线观看| 国产伦精品一区二区三区千人斩| avav在线播放| 小说区图片区色综合区| 91精品91久久久中77777老牛 | 欧美性感一类影片在线播放| 亚洲av成人精品毛片| 欧美在线不卡一区| 欧美精品xx| 精品日韩一区二区三区 | 尤物视频免费在线观看| 97精品视频在线播放| 国产人成在线视频| 国产精品国产三级国产专播精品人| 日韩精品毛片| 亚洲一区二区三区乱码aⅴ蜜桃女| av中文字幕在线观看第一页| 亚洲一级二级在线| 欧美嫩在线观看| 美脚丝袜一区二区三区在线观看 | 国产高清视频一区三区| 精品视频在线观看一区| 欧美激情精品久久| 高清av中文在线字幕观看1| av日韩中文| www.午夜精品| 亚洲精品97久久久babes| 精品美女国产在线| 欧美一级一区二区三区| 欧美图片一区二区三区| 国产伊人网av.| 国产婷婷色综合av蜜臀av| 日本亚洲天堂| 欧美在线视频观看免费网站| 成人video亚洲精品| 国产精品视频免费观看| 国产精品久久久久久av公交车| 97人人澡人人爽| 久久久一本精品| 亚洲国内在线| 日本午夜精品久久久| 网站一区二区三区| 欧美成人基地| 男人亚洲天堂网| 激情亚洲网站| 国产精品久久久久高潮| 国产超级av| 亚洲女人天堂av| 日韩写真在线| 国产精品久久久久久久久久新婚| 成入视频在线观看| 亚洲精品乱码视频| 亚洲另类春色校园小说| 亚洲欧美自偷自拍另类| 日日骚欧美日韩| 国产又黄又爽又无遮挡| 国产精品少妇自拍| 亚洲精品97久久中文字幕无码 | 中文字幕在线观看视频一区| 精品日本高清在线播放 | 亚洲a在线视频| 国产精品无码一区二区三区| 成人av资源站| 一女二男一黄一片| 欧美日韩一级二级三级| 天天艹天天操| 日本一区二区三区四区视频| 蜜桃在线视频| 一本色道久久88亚洲精品综合 | 国产极品在线视频| 99av国产精品欲麻豆| 日韩性xxxx爱| 国产福利片在线| 国产伦精品一区二区三毛| 9国产精品午夜| 午夜视频在线网站| 精品一区二区影视| 国产情侣小视频| 欧美日韩亚洲不卡| 涩涩视频免费网站| 国产精品久久久久久久久久三级| 黄色精品视频网站| 国产精品wwwww| 七七婷婷婷婷精品国产| 久草视频一区二区| 精品视频999| 老司机在线免费视频| 亚洲www在线观看| 福利电影一区| av天堂一区二区| 99综合电影在线视频| 亚洲国产999| 亚洲久久久久久久久久| 国产二区视频在线观看| 欧美尤物一区| 午夜精品毛片| 亚洲天堂网av在线| 亚洲电影在线播放| jizzjizzwww| 国产精品专区一| 风间由美中文字幕在线看视频国产欧美| 99久久婷婷国产一区二区三区| chinesegaysextube| 久久精品系列| 国产盗摄xxxx视频xxx69| 亚洲天堂视频网站| 日韩一级视频| 全国精品久久少妇| 日韩精品一区二区三区视频| 国产浴室偷窥在线播放| 精品中文字幕在线| 中文在线最新版地址| 欧洲黄色一级视频| 久久国产精品无码网站| 一级特黄aaa大片| 亚洲电影免费观看高清完整版在线观看| 毛片在线播放网址| 亚洲国产高清国产精品| 影音先锋国产精品| 好吊妞视频一区二区三区| 欧美日韩国产色站一区二区三区| av三级在线播放| 牛人盗摄一区二区三区视频| 欧美1级日本1级| 精品少妇theporn| 欧美日韩黄视频| 日本天堂在线| 一级二级三级欧美| 免费在线成人| 国产精品一级二级| 亚洲欧美日韩久久久久久| 青草av在线| 日本成人在线免费视频| yourporn久久国产精品| 热99精品视频| 琪琪第一精品导航| 成人在线视频中文字幕| 午夜理伦三级做爰电影| 亚欧色一区w666天堂| 五月天丁香婷| 欧美一区二区三区四区在线观看地址 |