第一百五十八章 狂飆

投票推薦 加入書籤 小說報錯

  第158章 狂飆

  劉振華讓他說完的話在空中迴蕩,目光在桌上三人身上掃了一圈。

  「遠山,你怎麼看?」

  「我也覺得韓非這一步走得對。」陳遠山咧嘴笑說,「輿論是有時效性的商品,今天不用明天就貶值。這個時機抓得很準。我估計那小子現在應該正緊盯著屏幕,眼睛都快瞪出來了。全量推送,這魄力....

  17

  「是賭力。」趙國強插嘴說,「輿論熱度是高,信任成本是低,但系統能不能扛住是另一回事。數據再漂亮,伺服器得扛得住才行。別到時候用戶來了,門卻打不開。那不是鬧笑話嗎?」

  陳遠山搖搖頭:「老趙,你能不能盼點兒好?」

  「我說的是事實。」趙國強執意道。

  「周明已經匯報過了,」方靜抬起下巴說,「青鳥的系統經過了他們全方位加固,沒有問題的。而且我已經通知技術部門盯著了,青鳥那邊的系統監控日誌每干分鐘同步一次,目前一切正......」她的話被手機鈴聲打斷。

  方靜拿出手機,她一看見來電顯示為總部技術監控中心,心頭就掠過不詳的預感。

  三人轉頭朝她望來。

  「非哥,出問題了!」溫傑大喊,他的手指甲在鍵盤上快速跳動,仿佛受驚的蟑螂。

  韓非和張芮伊從椅子上跳了起來。技術小組的三個人同時轉頭朝溫傑的電腦屏幕看去。

  「什麼問題?」韓非問,跨出兩大步,來到溫傑身後。

  「計費回調......」溫傑話聲顫抖,手上不停,雙眼緊盯屏幕,濃密的髮際線下留下一滴汗珠,「超時率在飆升,13%......21%......35%!非哥,廣東那邊的接口在往回吐數據,大量請求得不到確認!」

  不安的情緒在會議室里如漣漪般蕩漾開來。

  「伺服器什麼狀態?」

  「負載正常,CPU占用47%,內存占用正常,資料庫連接池......」溫傑猛然住口,仿佛被人掐住了喉嚨。

  「資料庫連接池怎麼了?」林峰大聲問,急切地在自己的電腦上敲出一連串命令。

  「連接池......」溫傑咽了口唾沫,「連接池快滿了。大量請求在等待回調確認,占著連接不放,新的請求進不來了。」

  韓非的自光從林峰跳到周明,再回到溫傑,他的腦子裡翻騰不已,最後做出無可避免的判斷,使得他露出迷惑的神情。難道是青鳥的伺服器扛不住了?

  「魔都本地的業務怎麼樣?」他聽見自己問。

  「還活著,」溫傑說,「但如果在魔都的用戶也受到影響...

  「7

  「先別急著下結論。」周明打斷說,「林峰,看看本地負載。」

  所有人都轉頭朝林峰的電腦屏幕望去。

  CPU:47%—49%—52%...

  內存:正常網絡出流量:正常資料庫查詢響應時間:87ms(正常)

  「青鳥的伺服器沒問題。」周明堅定地說,「CPU在漲是因為連接池積壓導致的線程等待,不是資源耗盡。根源不在我們這兒。

  「那是什麼?」溫傑用緊繃的聲音問。

  「你把SP接口的回調日誌調出來。」周明說,「林峰,看看我們這邊發出的請求,移動網關有沒有確認?」

  溫傑調出日誌。只見一行綠色的「200OK」正迅速減少,而那行紅色的「Timeout」越來越多。

  林峰隨即切出一個窗口,屏幕上密密麻麻地滾過一行行代碼。

  「我們發出去的請求,移動那邊沒有回音。」林峰大聲說,「不是我們的問題,是廣東移動的計費網關出了問題。」

  韓非皺起眉頭:「什麼?」

  「資料庫鎖表?」溫傑問。

  「大概率是。」周明說,「或者內存溢出。付費訂閱集中爆發,廣東那邊的系統架構可能應付不了這種瞬時洪峰。我們這邊發出去了,他們那邊接不住,回調確認回不來,我們的連接池就被拖死了。」

  「那怎麼辦?」溫傑問。

  「先切!立刻啟動限流。廣東方向的回調請求暫時不處理,只收不答,先把魔都保住,讓連接池緩過來。」


  「可是...

  「」

  「照做。」韓非說。

  溫傑吸了口氣,用手指在鍵盤上敲下一行命令。

  屏幕上的監控面板閃動了一下。資料庫連接池的數字開始從98%緩緩回落。

  「限流已啟動。」溫傑說,「廣東方向的回調請求在本地隊列中的積壓,大約有......十一萬多條,還在不停地漲。」

  這時方靜留給韓非的那部專機響了起來。他拿出專機,深深吸了口氣,按下接聽鍵。

  「不是穩如泰山嗎?!」

  王宏新的聲音像一顆爆炸的炮彈在技術部辦公室里轟然響起。

  眾人面露詫異之色,紛紛轉頭去看辦公室門口,望著王宏新臉上有如罩了一層寒霜,大步走了進來。

  陳宇站在監控大屏前,臉色異常蒼白,光滑的頭頂沁出汗水,閃閃發光。大屏幕上,原本一片綠色的指標現在已經紅了大半。

  資料庫響應時間:28743ms

  連接池使用率:100%

  SP接口成功率:34.7%

  CPU負載:98.2%

  「王總,我......」陳宇的聲音顫抖著。

  「你什麼你?!」王宏新大聲說,被自己的聲音嚇了一跳。他的手指指著屏幕中央,「四十萬並發?穩如泰山?你跟我說說,這叫穩如什麼?!」

  旁邊幾個技術人員的臉都綠了。他們盯著自己的電腦屏幕,敲打鍵盤的手指比平時更加用力,生怕顯得自己工作不夠積極,惹得身旁這位領導大發雷霆。

  陳宇擰絞著雙手:「王總,是......是資料庫鎖表了。用戶的訂閱請求量又大又集中,寫入並發超過了Oracle的承受上限。我們做了壓力測試,但測試環境用的是虛擬數據,沒有模擬真實場景下的....

  「7

  「我不聽你解釋!」王宏新手臂一揮,差點兒打中桌上的水杯,「現在怎麼辦?你告訴我,現在怎麼辦!」

  陳宇用手抹了抹臉,轉身面對大屏,用手指在鍵盤上敲了幾下。

  「王總,現在......呃,現在資料庫的活躍會話已經堆到了......八百多個,全部卡在了insertintosubscription」這條語句上。正常的DML操作已經完全無法執行了。

  呃......我已經聯繫了DBA,準備Ki1I掉阻塞會話,但是......」陳宇結結巴巴地說。

  「但是什麼?」

  「但是積壓的請求已經超過了四十萬條。就算是把現在的鎖解開,重啟資料庫,新的請求會在三分鐘內再次把系統衝垮。」

  王宏新的眼睛眨了眨,張開嘴又閉上。他等待自己的怒氣上升,卻遲遲沒等到,於是他很確定自己老了。

  「那你的意思是沒救了?」

  「有的王總,有的。」陳宇趕緊說,「但首先,我們需要青鳥那邊配合,把訂閱請求的模式從同步改成異步,用隊列削峰。然後......」他清了兩次喉嚨,才繼續說,「我們需要......總部的技術支持,臨時擴容資料庫的內存和連接池上限。」

  王宏新面無表情地盯著陳宇,看了三秒鐘,然後拿起電話。

  劉振華、陳遠山和趙國強目不轉睛地看著桌上那台開了免提的電話,話筒下方的紅色指示燈不詳地亮起,顯示信號不良。

  王宏新那嘶啞濃重的廣東口音伴隨著噼啪聲從話筒里傳出:「————資料庫鎖死了,DBA正在處理,但如果不改請求模式,那重啟了也沒用。劉總,我們急需總部的技術支持,還需要您協調青鳥那邊......」接著話筒發出一聲尖鳴。

  劉振華抓起話筒:「青鳥那邊已經知道了。」他嘆了口氣,看向正在窗前打電話的方靜,「方靜,韓非那邊什麼反應?」

  方靜轉過身來,一邊聽著手機,一邊做了個手勢,表示韓非那邊已經在緊急處理了。

  陳遠山伸出雙手,抓了抓他的地中海髮型,一雙眼珠直瞪著劉振華,咳了一聲,又咳一聲。他瞥了趙國強一眼,仿佛對他那張烏鴉嘴表示不滿,張開嘴巴然後又閉上。但趙國強什麼反應都沒有。

  「王宏新,」劉振華用命令式的口吻對著話筒說,「我給你三十分鐘。三十分鐘之內,我要看到系統恢復。總部的技術支持,陳遠山馬上就去協調。青鳥那邊,方靜已經在溝通配合你了。你那邊,你給我穩住。」


  「總部那邊已經知道了。」韓非說,放下手機,看著溫傑和周明,「廣東移動的DBA

  正在KiⅢ阻塞會話,但需要我們把請求模式從同步改成異步,用隊列削峰。」

  「異步隊列......」溫傑說,「我寫過,MVP版本的時候就用過本地隊列。但那時候只是應付魔都的幾十萬用戶,現在廣東這邊的情況......」他看著韓非,咬著下唇,「能行嗎?」

  「能行。」周明說,「隊列削峰的原理跟規模無關。你只需要把發往廣東的訂閱請求從同步等待回應」改成放入本地隊列,立即返回成功」。然後再控制隊列消費的速度,比如每秒五百條,勻速推給廣東的接口。」

  「那用戶那邊呢?他們收不到確認簡訊怎麼辦?」溫傑問。

  「簡訊延遲總比系統崩了好。」韓非說,「用戶可以等,市場不能等。」

  周明點了點頭:「韓社長說得對。開始吧。」

  「好。」溫傑在椅子上旋轉半圈,手指開始在鍵盤上敲打。一行一行的代碼在屏幕上跳了出來。

  周明指著屏幕:「這裡加個重試上限,把消費速度再降一點。」

  不到十五分鐘就搞定了。

  「好了。」溫傑說,「異步隊列已經上線了。廣東方向的請求現在走本地隊列,每秒限流三百條。積壓的八萬多條大概五分鐘能推完。」

  「廣東那邊呢?「韓非問,朝屏幕上的監控面板看去。

  資料庫連接池:從98%降到了64%。

  CPU負載:平穩。

  魔都本地的訂閱:一切正常。

  「他們的資料庫正在重啟。」林峰說著,在自己的電腦上調出另一個監控界面,「DBA殺了阻塞會話,加了內存,連接池上限調高了一倍。等到重啟完成後,我們這邊的隊列開始推送,應該能接得住。」

  韓非在椅子上坐下,拿出一包香菸,發現自己仍屏住呼吸,於是長長地吁了一口氣。

  監控大屏幕上的紅色數字正在一塊一塊地變綠。

  資料庫響應時間:從28743ms降到了312ms。

  連接池使用率:從100%降到了47%。

  SP接口成功率:從34.7%升到了98.2%。

  陳宇在椅子上癱坐下來,虛弱無力,襯衫後背全被汗水浸濕。

  王宏新雙手叉腰,看著大屏幕上的綠色數字。

  「王總,」陳宇用萎靡的聲音說,「隊列還有兩萬多條在消化,預計三分鐘清空。系統已經穩住了。」

  王宏轉頭看著陳宇,不發一語。

  陳宇下意識地舉起手臂,遮住臉部。

  王宏新沉下臉,神情嚴峻。「陳宇,」他說,語氣介於迷惑和斥責之間,「你跟我說實話。你那四十萬並發,穩如泰山,到底是怎麼測的?」

  陳宇吞了口口水,低頭看著自己的雙手。

  「怎麼?不敢說?」

  「王總,測試沒有問題......」陳宇開口說,假裝找尋適當的字眼,「四十萬並發,我們確實扛住了。但......但這實際訂閱量......遠超四十萬。」

  王宏新揚起右眉:「多少?」

  陳宇指著監控屏幕上已經恢復正常的計費日誌窗口:「根據青鳥那邊異步隊列的積壓數據反推,推送後一個小時內湧入的訂閱請求,峰值至少在......七十萬以上。」

  王宏新雙眼睜大,又眯縫起來,看著陳宇。

  「七十萬?」王宏新用誇張的語調複述一次,「轉化率百分之三十五?」

  「保守估計。」陳宇說,「我們只是按照四十萬做的壓力測試,可誰也沒想到,輿論熱度能把轉化率推到這種程度......」

  王宏新幾乎喘不過氣,感覺到美妙的興奮感從體內升起,將系統故障所帶來的不悅一掃而空。

  「算了。」最後他揮了揮手,「今天不跟你算帳。回去寫一份詳細的事故報告,下周一之前放到我桌上。我要看到完整的事故原因、責任認定,還有整改方案。少了一樣,你就去運維中心管伺服器,別在我這兒待了。」

  陳宇站了起來:「是,王總。」

  「還有,今天這件事,要不是人家青鳥那邊反應快,用異步隊列把請求給削住了,你就算把資料庫重啟八遍也扛不住。回頭記得給人韓社長打個電話,道個謝。」

  七十萬。王宏新大踏步離開技術部辦公室,朝走廊另一端走去,嘴裡不斷亢奮地重複這個數字。

章節目錄