明燦看著螢幕裡蘇執那張被燈光襯得柔和的臉,心裡忽然就踏實了。她把手機立在鍵盤旁邊,調整了一下角度,讓蘇執能看到螢幕:“看得到嗎?”
“能,先連跳板機。”蘇執的聲音切換到工作模式時總有一種特別的質感,不急不躁,像一把經過精細調校的尺子,“把資料庫的連線數狀態調出來。”
明燦的手指落在鍵盤上,機房的鍵盤是機械的,敲擊聲清脆,在安靜的空間裡格外清晰。她身後那圈人都不說話,只有鍵盤聲和伺服器散熱風扇低沉的嗡鳴交織在一起。
螢幕上跳出一行行資料。
“最大連線數1500,”明燦報出來,自己先皺了下眉,“當前連線數1498。”
“1500?”蘇執的聲音微微上揚了一點,這是她感到意外的訊號,“生產環境的最大連線數從來沒超過500。誰擴的?”
機房裡的空氣忽然變得很微妙。
張佑站在最後面,不知什麼時候往後退了半步,半個身子藏在機櫃的陰影裡。趙歸帆端著咖啡杯,手指在杯壁上輕輕敲了兩下,節奏有些亂。
明燦沒回頭看他們。她盯著螢幕上那些密密麻麻的連線狀態,一行行地掃過去:“全是Sleep,時間都超過300秒了。”
“連線洩漏。”蘇執下了判斷,語速比之前快了一些,“連線池沒有釋放機制,舊的連線掛著不釋放,新的連線不斷建起來,直到把連線池撐爆。1500這個數字更是加速了雪崩,池子越大,洩漏越快。”
“我先清Sleep連線?”明燦提問的同時,手指已經懸在鍵盤上方,隨時準備執行命令。
“對!用我剛才發你的命令,分批次殺,一次殺200個,不要一次全殺,避免資料庫瞬時壓力過大。”
明燦低頭掃了一眼手機螢幕上蘇執發來的命令,指尖在鍵盤上快速敲了幾下。螢幕開始滾動“KILL”的執行結果,一行接一行,像收割機碾過麥田。
身後的運維主管忍不住往前探了探身子,嘴巴微微張開。他見過殺連線的,沒見過殺得這麼幹脆利落的。沒有猶豫,沒有試探,一條命令下去,兩百個Sleep連線瞬間清掉。
“當前連線數降到1100了。”明燦說。
“繼續。再殺一批。”
又一堆命令。螢幕上滾動的數字跳了跳,明燦的瞳孔微微縮了一下,她注意到一個細節,有些Sleep連線在被殺掉之後,很快又重新冒出來了。
“不對勁。”明燦的聲音壓低了,但語速變快了,“我殺完一批,新的Sleep連線馬上又建起來了,像是有什麼東西在不停地主動建連線,而且建完不關。”
螢幕那頭安靜了兩秒。
蘇執的聲音再響起來的時候,帶著一種明燦很少聽到的、真正認真起來的語氣:“這是有人在應用層寫了死迴圈,不停地建連線,不停地洩漏。清連線治標不治本,必須找到那個罪魁禍首的應用。”
明燦的手指在桌面上輕輕敲了兩下,腦子在飛快地轉。
她忽然轉頭,看向身後的運維主管:“最近有沒有新上線的服務?或者說,今天凌晨到故障發生這段時間,有沒有重啟過或者新部署過什麼?”
這個問題問得太專業了,專業到運維主管有些聽不懂,他下意識地看向趙歸帆,趙歸帆目光則掠過張佑。
張佑的臉色有些發白。
“昨天晚上……張總監讓上線了一個新的推薦服務。”運維主管的聲音不大,像是在艱難地擠出一個不太願意說出來的事實,“說是為了促銷活動準備的,要提前壓測。上線之後沒發現什麼問題,今天白天也正常,就是晚上流量一上來——”
“把這個服務停掉。”蘇執的聲音從手機裡傳出來,乾脆利落。
張佑的聲音忽然從後面冒出來,帶著一種努力維持的鎮定:“這個推薦服務是我跟業務部門一起規劃了兩個月的重點專案,不能說停就停,而且程式碼都走完測試流程了,不可能是它的問題。”
“你確定它走完了完整的測試流程嗎?”蘇執的聲音不大,但每個字都很清楚,“測試環境有沒有模擬過生產環境的流量峰值?連線池的配置是不是和生產環境一致?程式碼裡有沒有處理連線釋放的異常分支?”
。銳尖個一比個一,題問個三
。來出發沒都音聲麼什,了的佑張
。令命止停了下敲後然,DI序程的務服新個那了定鎖下導指的執蘇在經已。答回的他等有沒燦明
。去下竭枯地點一點一,流溪的源水了斷掐被是像,線連新的來出冒斷不在還剛剛些那,上幕螢
。712了在停——下一後最了跳字數的數線連著盯燦明
。漲再有沒
。不紋,裡那了在釘被是像字數的數線連。鐘分五,鐘分兩,鐘分一了等








