這群華為攻城獅破解了一個9年的【懸案】
來自專欄榮耀不知道專欄176 人贊了文章
01、春節保障前夕迎來「晴空霹靂」
2018年2月14日,春節前的最後一個工作日。除夕前夜恰逢情人節,全國上下都洋溢著節日的氣息。大多數的華為人也是一樣,有的準備了給愛人的玫瑰,有的準備了給老爸的好酒。此時負責春節保障的華為維護人在堅守崗位,在為春節保障做著最後的準備。
早上8:30,西安研究所,網路保障服務部的技術支持工程師剛剛打開電腦,就接到多個緊急問題,彷彿老天刻意考驗大家:
「A省凌晨5點設備有大量CPU過載告警,估計當時電話都打不通。」
「我這邊也是,友商設備現在還告警,電話還很難打通!這要是全國人民相互拜年的時候在來一次,全部電話打不通,這得多大社會影響?」「B省也有同樣情況!」「C省也有報同樣情況!」
「今年過年,別管值不值班,看來都別回了,大家一起過!」
02、集結號吹響
網路保障服務部立刻組織了跨BG的緊急攻關組,數十位維護專家迅速集結,緊急問題的集結號一旦吹響,一呼百應。
服務專家小王,這幾年春節都在公司值守,今年特意提前請一天假,一手抱著一大包回民街臘牛肉,一手拎著西鳳酒等過安檢。春運的高鐵安檢的隊伍實在有點長,但小王心裡還是挺興奮的。誰知手機鈴聲不合時宜地響起,估計老維護人估計都有鈴聲恐懼症吧,小王皺著眉頭掏出手機一看:「8100,壞了!」
」小王嗎,我是小谷,凌晨X運營商全網CPU過載,你這塊比較熟悉,看看有什麼建議沒?」
「全網過載?麻煩了,核心網、無線、終端都可能有可能,需要把大家一起拉起來討論一下……算了,我回公司。」小王看著手裡的西鳳酒,說道。
類似的情景不止發生在小王一個人的身上,核心網、無線和終端多位研發和服務兄弟都第一時間調整了日程安排,攻關組緊急啟動。
03、大海撈針:僵局-希望-僵局
經過分析,攻關組很快得出初步結論:CPU瞬時過載是由於大量終端同時發起位置更新衝擊導致。通俗地講就像是億萬部手機一起開機,海量的信息擠到一起。本來是平穩的一個一個小小的海浪,生生的層層疊加在一起,形成了電影《2012》里出現的恐怖滔天巨浪。
但是,什麼能讓億萬部手機動作幾乎完全一致?似乎沒有一個網元有這樣的魔力。
核心網:全網多個廠家,多套設備,不可能同時異常!
無線:全網無線設備更多!
終端:全網的終端數以億計!
攻關組各個團隊彷彿都有充足的理由證明「不是我的問題」。
大家都沒問題!
那問題又在哪裡?
時間一分一秒過去,問題關注度越來越高,壓力瀰漫。
14點
攻關組把線索梳理了一遍又一遍,最後聚焦在一個問題上,為什麼其他運營商客戶網路沒有問題?X運營商和他們有什麼不同,而且這個不同點又要能導致全網問題?
經過系統對比和分析,發現是時間!X運營商強制要求用衛星時間,其他運營商網路沒有用!如果衛星出問題了,很可能會導致大量終端異常。
順著這個假設,項目組決定開始調查衛星,上網站去尋找可能的原因。果然沒有讓我們失望,在相關衛星網站上找到GPS系統中斷公告,但中斷時間範圍太寬泛,再找!這一次,我們發現另外一個相關網站也有GPS衛星調整公告!故障時間覆蓋了本次問題發生時間點。曙光彷彿就在眼前!
但事實往往就是這麼無情,經過進一步論證,無線團隊確認未發現衛星時間突變日誌。終端團隊也確認即使GPS時間跳變,終端也不會異常。由此該假設排除,問題分析再次陷入僵局。
18點
春節前最後的正常工作時間已經結束,攻關會議氣氛也趨於凝重,「有可能春節前定位不出來了」這個想法似乎在攻關組內瀰漫,畢竟還有6個小時就到除夕,正式進入春節假期,大家有點氣餒。而且剛剛我們又得到一個消息,類似問題在2012年就發生過,當時攻關了一個月,最後也無疾而終。
一部分攻關成員開始準備PLAN B:如果問題定位不出來,春節期間如何保障不出問題,出問題如何快速恢復,以及如何滿足新增7天*24小時*31省的保障需求。
其實,大家心裡同時也琢磨著,回家的機票,是退,還是退,還是退……
04、994天!歷史疑案的告破
22點
我們真的定位不出來了嗎?攻關組決定用最後幾個小時再把線索梳理一遍,把2012年的攻關過程也研究一下,再頭腦風暴一下,最後匯總關鍵線索如下:
1、幾乎所有CDMA網路設備(包括海外)、幾乎所有終端(但不包含iPhone);
2、發起位置更新時間十分集中(秒級),位置更新原因都是是時間(周期性位置更新);
3、2012.9.4曾經發生過類似問題;2009.12可能也有類似問題,但是不確認,也不知道具體時間,只有一封當時記錄模糊的郵件。
圍繞這些線索,攻關組又開始了新一輪的討論:
「小康,這個事情,還真可能跟時間有關,你看09年發生過,12年也發生過,可能這個事情是周期性爆發的,這3次故障的間隔為1998天和990多天,剛好是2倍左右!」說著小谷在小白板上畫了一張示意圖。
「可為什麼是994天?994天代表什麼?對最終定位有幫助嗎?如果是定時器翻轉的話,一定是一個特殊值,994天換算成秒的話是85881600,這個數字各種進位變換後,也不是2的N次方這種特殊值。」
「等等,2的32次方4294967296和85881600差不多50倍的關係,如果定時器是20ms,就剛好是2的32方是發生翻轉!」「還有個問題,如果是這樣的話,這個時間至少會精確到秒才行,85881600和858993459(2的32次方除以50)還差不少。」 「我們再算算,我們可能還漏了什麼。」 「哎!好像我們沒考慮閏年、閏秒……你看!加上後,分秒不差!」
就這樣,整個攻關組進入了柳暗花明的境界,我們發現,算上閏年閏秒之後,從GPS初始時間計算(1980年)到現在,每隔994.21天發生一次故障,共發生了14次異常,其中我們遇到3次故障。
05、找到「太平洋中的戒指」就這樣,我們開始實驗室搭建環境復現問題,並同步主動排查代碼里的定時器。
凌晨時分,實驗室傳來喜訊,時間回溯到2018-2-14 5:00,該問題復現!同時從測試結果可以證實:使用XX廠家的MODEM的CDMA終端存在問題,經過推算,2020/11/04 09:56:09會再次發生異常。後經M公司(與XX廠家是合作關係)排查XX廠家代碼證實確實存在20ms周期定時器翻轉問題,與推測和實驗室驗證情況一致。各種線索都有了合理的解釋!
這一刻,攻關組內群情激昂,自豪感爆棚,紛紛感慨:「9年的問題終於被解決!問題定位了,心裡就踏實了,大家可以安心,開心過個年!」
06、後記:力出一孔找「戒指」問題爆發在臘月二十九,為了儘快定位問題,幾十名服務和研發專家不眠不休連續奮戰了24小時,有的最終還是退了機票、有的還是從回家的高鐵上提前下車趕回!
24小時定位出是XX廠商MODEM晶元問題,響應速度、分析速度讓客戶很驚喜,這些努力換來的是客戶感激和認可,看著他們發來的感謝的文字,以及對我們新年的祝福,那一刻我們的內心都是美滋滋的。集團網路部客戶表示:「華為的實力還真不是吹的!」當天如果沒有定位出來,恐怕春節期間就要投入數倍的人力進行針對性的保障。該問題跨越運營商BG和消費者BG,涉及無線、核心網兩個產品線,涵蓋一線代表處、網路保障服務部RTAC、GTAC,正是各方通力合作,大膽假設、小心求證,全營一桿槍,才快速地在「太平洋里找到了戒指」!
本文來自微信公眾號《華為人》,轉載請註明作者及出處。
推薦閱讀:
※沙葉新:枯葉沉思——死前一定要還債———天益:學習型社會領航者
※北元蒙古的社會狀況
※揭秘社會上的20種新騙局
※曾經最熱愛現代社會的土耳其人,為什麼又走回了伊斯蘭教懷抱?