1分鐘知識錦囊|微博又雙叒癱瘓了,為什麼它連一條婚訊都扛不住?
提問:@木子希
今日錦囊答主:羅琦 某網際網路公司技術總監
趙麗穎馮紹峰在微博官宣婚訊沒多久,微博又癱了。號稱可以同時支援八條出軌訊息釋出的微博,怎麼連一條婚訊都扛不住?
首先,這次話題熱度確實是2018年最高。釋出5分鐘內登上熱搜,峰值熱度達1700萬,此前2018年熱搜榜第一的記錄為“賈乃亮發文”(934萬)。高影響力渠道峰值傳播量達2105條/小時,是鹿晗關曉彤公佈戀情的3.6倍。
癱瘓的原因有很多種,最常見的是因為伺服器流量過高帶來了雪崩效應。還有一個原因是,在問題到來之前,一般公司通常沒有足夠的資源,來支援在測試環境模擬大流量衝擊,來演練發現效能瓶頸,因為需要的機器會很多。
即使峰值流量造成伺服器癱瘓,也不意味著公司接下來會據此調整伺服器,因為會帶來日常運維的冗餘。由於公司流量增長沒有固定預估規律,公司伺服器的設計沒有通用規則。一般會根據歷史峰值流量乘以倍數來預估流量,然後設計架構。
癱瘓後的緊急搶修措施包括根據日誌排查原因或者直接重啟伺服器。長期來看,大規模的彈性擴容需要的技術設計,比較考驗技術架構能力,一般小公司設計不好。微博作為一個市值140億的公司,並不算小,但它有沒有像阿里一樣,投入資源去演練,不得而知。
顯而易見的是,一遇明星喜訊就頻頻癱瘓獻禮,微博的技術架構確實需要升級。從程式語言來說,阿里是Java,騰訊是 C++,都屬於靜態語言,所以他們能抗住大流量。微博則以 PHP 為主,PHP 不適合來處理大流量的場景。Facebook以PHP起家,後面也轉型到其他靜態語言去了。
微博架構升級的難度是有的,因為已做到這個量級,重頭換別的技術架構,需要非常多人力資源和時間資源的支援。打個比方,微博現在有100萬行程式碼,重新採用新的技術架構來寫,需要付出的產品、研發、測試、運維,都是成本。
再舉個形象的例子,現在微博就像一座100層的高樓了,只是地基不牢,要重新設計更紮實的地基蓋一個100層的高樓,當然需要很多成本。但是如果不重建,又相當於飲鴆止渴,所以一而再再而三地掛掉。這說明他們的技術決策不夠快,應該在20層的時候就及早發現問題來轉型,拖到現在確實是個難題。
1分鐘知識錦囊是36氪的日更問答新欄目,旨在每天以一分鐘為限,快問快答一個重要的商業問題。今天我們解答的是網際網路相關的問題。如果你對近期的商業世界還有什麼疑問,歡迎在評論區給我們留言,錦囊負責找高手為你解答。