第020章 邊緣寄生初顯
凌晨一點四十二分,運維樓三層只剩林默這一格燈。空調的換風聲被他聽成了靜音的底噪,後頸對著出風口,去年落下的舊傷隱隱發酸——一受涼就來提醒他這塊骨頭還連著自己。手邊的濃茶涼透了,杯子擱在鍵盤右側固定的位置,從坐下起沒動過。手機扣在桌面上,屏幕朝下,像一塊不著痕跡的鎮紙。
鋪下態勢感知探針之後的第七個凌晨。每晚關機前掃一眼那幾個可疑節點,已經是雷打不動的新工序。掃完的結果他記在一個巴掌大的記事本上,一晚一行:日期、七粒點的顏色、各自的時延峰值。本子已經寫滿了七行,最前面還留著半個多月前布防那晚的兩行底帳。人社認證接口那粒黃,第三天轉成了橙;市場監管的登記回流第二天跟上去;到昨夜,住建網簽和稅務申報兩個點上,橙色里已經滲出一線將紅未紅的苗頭。他把採樣頻率加了一檔,又把告警的判定窗口從五分鐘縮到三分鐘——常規設備這麼調是找死,誤報能把值班電話打爆,好在態勢感知這邊是他自己守著,誤報多少他心裡有數。
七十二小時裡,那幾條時延曲線的爬升斜率始終沒變:每天固定抬高一截,白晝回落,入夜再抬。穩,而且有耐心。
按規程,他先做的不是定性,是排除。上游運營商那幾天沒有任何割接通告;曲線抖動的時刻跟各委辦局夜裡跑批的作業表對不上,批處理該有的規律性台階在曲線上找不到影子;他又調了那幾台設備近一個月的溫度與風扇轉速記錄,熱曲線平得像驗收當天拷貝出來的存檔。硬體老化、例行作業、線路施工,三條最省事的路都走不通之後,剩下的解釋只剩一個,而那個解釋他早就寫在了記事本最新一行的末尾——人為。當年那枚查無來路的慢速腐蝕腳本就是這個脾氣:每天只啃一點邊角,絕不貪多,常規巡檢根本追不上它的進度。快刀不可怕,可怕的是把刀磨得這麼慢的人。按上一周的推算,試探期短則一周,長則個把月。今晚這個節奏,說明兩件事至少有一件成立了:要麼對面換了打法,要麼後頭有人在催。
一點四十二分,答案到了。耳後那陣震顫忽然收緊,不是平時提醒的輕叩,是間隔壓短了的連擊。天樞把實時拓撲推到他視野正中——七粒淺黃在同一個刷新周期里齊齊跳成橙紅。不是依次,是同一秒。七條時延曲線同時向上折頭,斜率陡得刺眼,出站回包的排隊深度一起往上堆。
【不是各自惡化。】天樞的語速壓得很平,平得反而顯出分量,【是牽引。有流量從後端被勻到了這幾處,堆的全是同一批節點。對面開始按計劃加壓了。】
林默把七個點逐個點開。兩顆最扎眼:一顆掛在人社的資格認證入口,全市刷臉辦件的總閘;另一顆壓在市場監管的許可證查詢上。其餘幾處散在住建的網簽系統、稅務的申報通道里。這些口子有一個共同點——全都是早高峰最怕卡的地方,全都是市民一腳就能踩到的門面。選點的人懂行。不挑後台,專挑門臉;不圖癱瘓,圖疼。八點鐘一到,醫院門診門口排隊的人在「市民通「上刷不出醫保,社區窗口的老人繳不上水電,卡著截止日的企業申報超時回退——不需要四個口子全斷,只要其中兩個同時卡上二十分鐘,輿情就能頂上同城熱榜的頭一條。到那時候,沒有人會聽「凌晨其實攔過一手「的解釋,因為根本沒有人知道有過那一手。
他看了一眼牆上的鐘。距離早高峰流量開始爬坡,還有五個多小時。他做的第一件事,是按流程打電話。
兩點零七分,政務雲值班崗的電話接通。對面是位被吵醒的年輕人,聽完他簡短的報備,翻材料的聲音響了七八秒,才找回自己的聲音:「林工您稍等——應急變更要走三步:帶班領導簽字、網絡崗遠程接入、機房值班覆核,我馬上逐個打過去。「「按流程走,不用趕。「林默把自己的直線號碼報了過去,「我這邊同步盯著曲線,有進展隨時叫我。「
他把幫忙核鏡像的技術員叫到了工位旁,多一雙眼睛總歸穩當。隨後他把這套人工流程的時間帳算了一遍:帶班領導從被窩裡爬起來看郵件,網絡崗在家撥VPN接堡壘機,機房值班覆核鏡像口——每一環單獨看都不算慢,串起來就是四個小時起步。而曲線留給他的窗口,按眼下的斜率折算,不到四個小時。兩點十九分,天樞把兩條時間軸並排推到他眼前。左邊一條是人工鏈路的估算閉環時刻,右邊一條是三個最先撐不住的節點的預計越限時刻。右邊比左邊早了整整兩個小時。
【用那張網。】天樞說,【邊緣寄生,第一次真正開。】
林默的手指停在鍵盤上方。這張能力他壓了大半年。推演借算力是常態,但把這張網用到生產流量的走向上,是頭一回。壓這麼久,壓的不是能力,是啟用它的理由——今晚的理由,比過去任何一次都硬:三個小時之內,四個委辦局的門面接口會當著全市市民的面卡死,而人工鏈路追不上。
理由硬,不等於可以不想清楚。他從筆筒邊抽了張便簽,把啟用這張網的規矩一條條寫下來,寫完一行一行核過去:
借的只能是閒余。單設備餘量三成以上才准入池,避開任何掛敏感業務表的終端,帶攝像頭的自助機一律不碰——借的是閒,不是私。
這張網只做流量整形。削峰、引流、重排,任何一個包的內容都不讀取。
天亮之前必須歸位。歸還後的狀態用餘量曲線校驗,逐類抽檢,時間上限五點整。
全程都要留痕。時間、動作、依據,事後逐條入檔,一筆不落。
最後留一道後手。池子一旦自身出異常,桌面上那個常駐的切換腳本一鍵回切,主鏈路恢復原生路由,全程不超過十秒——這行寫在最後,字寫得最小,分量卻壓過前面幾條。核完,便簽對摺,塞進胸口的皮夾。然後他按下確認。
兩點二十一分,視野中央的地圖暗了一瞬,隨即換了一種他從未見過的亮法——城市的輪廓還在,整張圖上星星點點的淡青色標記次第浮起,每一個標記都是一台正在入池的設備。被借走的東西,平時沒人多看一眼。幾十個政務大廳里熄了屏的辦事終端,屏幕黑著,CPU掛在待機檔上,留著的餘溫正是入池的資格;各基站機房為晚高峰預留的冗餘算力,這個鐘點整整齊齊地空著;庫房裡幾台貼了待報廢標籤的舊機器,風扇還在轉,算力無人認領;還有路燈杆上那些帶計算模塊的控制器,半夜車流稀疏,燈滅了,腦子閒著。
旁邊幫忙核鏡像的年輕技術員湊近屏幕,盯著那片次第浮起的淡青色,半晌嘟囔了一句:「這手漂亮——借的是全城的閒。「林默沒接話,視線還黏在拓撲上。可那句脫口而出的「漂亮「里藏著的震撼,已經落進了空氣里,沉甸甸的,像第一次看清自己手裡到底握著什麼。
池子收攏完畢,天樞報了個總數:折算成整機當量,大致相當於一座小型機房三成的算力——不算驚人,可它散在全城幾十個位置上,每個點只出一點點,拼起來恰好夠今晚這一仗。每一台出的,都是自己本來就在浪費的那點力。池子的准入線卡得死:餘量不足三成的不要,位置太偏電力不穩的不要,任何一台在冊記錄裡帶「敏感「字樣的都繞開。整張網只接一樣東西——複製出來的影子流量,雙向都不改包,只削峰、引流、重排。分流的路徑用的是現成的地圖。前一陣鋪態勢感知的時候,他帶著人把市級匯聚層到各委辦局的備用鏈路逐條核過——那時是為了把鏡像基線做准,如今那份清單成了今晚的退路。流量走的是軟引:主鏈路的握手特徵保持原樣,路由的改動收斂在匯聚層的旁路視圖裡,生產側日誌只會記下一筆再正常不過的鏈路切換。沖在最前面的尖峰先被削走三成五,順著備用鏈路沉進池子裡,攤給幾十台閒著的設備分頭消化。
兩點三十一分,社保查詢入口的時延從臨界值回落,橙紅退成橙。兩點四十四分,繳費網關那條最陡的爬升線開始放平,顏色褪回黃。兩點五十三分,許可證查詢那根翹起來的尾巴被貼回基線。三點零六分,最後一個節點——住建網簽——歸位。七條曲線全部回到各自慣常的呼吸節拍,排序、削峰、緩衝,整套動作在拓撲圖上走完,沒有驚動任何一台生產伺服器。
三點過一刻,變數來了。人社入口上又壓來一記脈衝,比前幾波都陡,斜率幾乎是剛才的兩倍——對面在加碼試探,或者根本就是在趕進度。池子的緩衝比例當場從三成五提到四成二,備用鏈路上多切了一路進來。有十幾秒鐘,視野里那條曲線懸在臨界線上方不肯下來,林默的拇指抵在回切腳本的熱鍵上沒有按下去——按了,前四十分鐘的削峰全部前功盡棄;不按,賭的就是池子這一口氣。三點十八分,曲線折頭,穩穩落回基線以下。加賽結束。
燈杆控制器那一類,是池子裡最薄的設備,只承擔了削峰的最後一小段緩衝,單獨計了時限——四點半一到強制退出,一分鐘都不許多留。三點四十七分,歸還啟動。池子按准入的反序逐層退出,淡青色的標記一粒一粒熄回去。五點整,天樞把歸還校驗跑完:每類設備抽三台,餘量曲線與借出前的基線做差——全部為零。燈杆控制器那類他親自又看了一遍溫升記錄,逐台掃過:都待在正常波動的包絡里,沒有一台越線,最高那台比包絡上沿還低著一度半。
圖上最後一粒青點熄滅的時候,整座城市歇著的那一半,重新回到了無人過問的狀態。林默在椅子裡坐了一會兒,沒有立刻動。視野里那張圖的亮法他還記得——幾分鐘之前,全城歇下來的算力第一次以「可調用「的姿態在他面前列隊。這個印象太新了,新到他需要一點時間把它歸置到合適的格子裡去。
TW 看書網解書荒,𝗌𝗁𝗎.𝗍𝗐超靠譜
八點鐘,各委辦局的運維照常打卡。晨會照常開,大屏照常全綠,值班組的豆漿照常冒著熱氣。這場崩在發生之前就被卸掉了力道,物理世界裡只留下兩份記錄:他私人分區裡的那一套,和態勢感知鏡像里那幾段牽引行為的原始痕跡。
八點二十,小趙到工位,一眼看見他眼下的青黑,二話不說從包里摸出一盒牛奶擱在他桌角:「默哥,又通宵了?「林默應了一聲「盯了個項目「,沒多解釋。小趙也沒多問——這半年他學會的最重要的一課,就是哪些問題不該追著問。
天樞在他收工前開了口,語氣是難得的板正:【有一處,今晚是踩著邊過的。】
面板調出燈杆控制器那一類的溫升明細。三台逼近包絡上沿,最高那台距保護性降頻只差兩度。「這類東西的電源是按間歇負載設計的。真燒了一台,明早就是一張工單——檢修工爬上燈杆,換下來的控制器送檢,誰也解釋不清它為什麼在凌晨滿載了四十分鐘。網不會直接露,線頭會從最不起眼的地方冒出來。」頓了頓,「往後這張網的每一分餘量都要先算後用。寧可少救半分,不可多借一寸。」
「記下了。「林默說,「三成准入線往上再提一檔,薄設備單獨限時限載,寫進啟用條件里。「
原以為今夜到此為止。天樞卻把一段波形推到了最後。【收網前的最後幾十秒,有個冷僻頻段上掠過一道微光。】波形在視野里展開——時長零點四秒上下,功率低到貼著噪聲門限,節奏不規整,不是任何一款在冊掃描器的輸出。【我鎖了緩存,回頭翻了態勢感知沉澱的底帳。三周前,同一個頻段,有一道幾乎同形的痕跡,更弱,一閃而過。】
三周前。比這張網第一次張開,早了三周。林默盯著那段波形看了很久,然後做了一件本可以推給明天的事:切回私人分區,把第一條記錄——那批境外編譯指紋——調出來,跟這道波形擺在一起比。
比對花了幾分鐘。節奏對不上:那批指紋是編譯器埋在代碼里的習慣,氣息綿密均勻;這道微光短促、孤僻,收得極快,是探測器的手法,不是開發者的手法。他退出來,在第六條記錄的備註欄里敲了四個字:暫不合併。要麼它一直在,只是今晚網開得大了,透出去的光多了一分;要麼對方按自己的節奏巡檢,今晚恰好撞上。是那位遠端擰螺絲的,還是另有一雙更遠處的眼睛?時區基線在域外、痛點卻挑得極準的那一位,跟這道冷頻段上的光,是不是同一撥?
兩件事放在一起,比其中任何一件單獨出現都更值得琢磨。不猜。他切進私人分區,雙層驗證走完,第六條記錄在列表最下方落座:時間、頻段、波形特徵、持續時長,四要素填滿;後面附上他本人的今晚操作日誌——兩點零七分致電值班崗,兩點十九分確認人工鏈路超窗,兩點二十一分啟用邊緣網,三點十八分頂住加賽脈衝,三點四十七分開始歸還,五點整校驗完畢。這道操作在任何一個變更系統里都沒有單號,所以他給自己補了一張。
天亮後他沒急著走。八點半,他把抽屜里那份壓了半個月的《觀察簡報》取出來。三個空著的附件格,今晚全部有貨:七十二小時疊圖、分片前綴的脫敏解析、臨界夜的牽引行為快照——全部出自態勢感知系統的合法鏡像,來源乾淨得經得起追問。結論欄那半句話,他補完了後半句:
「七節點同步牽引行為成立,建議按跨域協同預案啟動聯合排查。「
簽名,填時間,走正門遞了上去。OA的受理回執三分鐘後彈回來:受理編號一長串,簽收時間九點零六分,受理人姓名他沒見過——新面孔。他把編號抄進記事本,緊挨著昨晚那七行曲線帳。出門前,他給陳志遠發了條再尋常不過的消息:「昨晚態勢感知捕到一組異常,簡報已提交,今天可能有後續對接,早上碰頭會我提前到。「能走正門的部分,一個字不少;走不了正門的部分,一個字不多。
簡報遞上去的第三天,大數據局運維口新調來分管二期的年輕科長,直接把電話打到了陳志遠桌上。電話里三件事。一是那份簡報——「處里傳著看了,寫得紮實,來源清楚,我們照著那三個附件把聯合排查組搭起來了,進度比預想快「;二是排查組第一次碰頭定在下周三,點名要志遠這邊出技術牽頭;三是往後跨委辦局的保障專項,統統照這個模式走。
陳志遠握著話筒應下來,掛了線,在椅子裡坐了半分鐘。目光落在檯曆背面——那裡還留著上次那通陌生來電的時間記錄,筆跡已經有些日子了。他把新添的三個字寫在舊記錄下面:排查組。寫完,起身踱到林默工位邊上,上上下下看了他兩秒。「默子,人家指名要你。「他停了停,聲音壓低了些,「你最近……是不是有事瞞著我?「
「瞞這個字重了。「林默把手頭的參數表存檔,轉過椅子,「能說的,我一件沒落下;沒說的那些,不是瞞,是還沒到能說的時候。等能說了,頭一個告訴你。「陳志遠盯著他看了幾秒,忽然擺擺手笑了:「行。技術上的事你把關,我簽字,別的我不問。「話說完他自己站了一會兒,像還想補一句什麼,末了只是拍了拍隔板,回辦公室去了。
林默轉回屏幕。加密分區最底層,第六條記錄安安靜靜躺在第五條下面,再往下,預留的空位還有很多。借出去的光收回來了,帳面乾乾淨淨;多透出去的那一分,連同它的頻率、時段、波形,一起鎖在第六條里,等著一雙對得上的眼睛出現。
那張網收起來了。它存在的事實,往後每晚都會跟他一起下班。他起身去接今天的第一杯水。走廊的窗開著,初秋的風進來,把工位區一整夜的空調味換了出去。樓下門衛室前,夜班保安正跟早班交接,登記簿翻過了新的一頁,頭幾行的字跡都是熟名字。再往下,環衛車慢慢碾過落葉,早點鋪的捲簾門響了一聲,豆漿的氣味順著風爬上半層樓。
城市照常運轉,運轉得仿佛昨夜從來沒有人向它借過什麼。這正是他要的結果。
那道冷頻段上的微光,卻已經先一步越過了某道他還來不及命名的監測線。危機從來不在明處的對手身上,而在那雙正把目光悄悄探進來的眼睛裡……
鋪下態勢感知探針之後的第七個凌晨。每晚關機前掃一眼那幾個可疑節點,已經是雷打不動的新工序。掃完的結果他記在一個巴掌大的記事本上,一晚一行:日期、七粒點的顏色、各自的時延峰值。本子已經寫滿了七行,最前面還留著半個多月前布防那晚的兩行底帳。人社認證接口那粒黃,第三天轉成了橙;市場監管的登記回流第二天跟上去;到昨夜,住建網簽和稅務申報兩個點上,橙色里已經滲出一線將紅未紅的苗頭。他把採樣頻率加了一檔,又把告警的判定窗口從五分鐘縮到三分鐘——常規設備這麼調是找死,誤報能把值班電話打爆,好在態勢感知這邊是他自己守著,誤報多少他心裡有數。
七十二小時裡,那幾條時延曲線的爬升斜率始終沒變:每天固定抬高一截,白晝回落,入夜再抬。穩,而且有耐心。
按規程,他先做的不是定性,是排除。上游運營商那幾天沒有任何割接通告;曲線抖動的時刻跟各委辦局夜裡跑批的作業表對不上,批處理該有的規律性台階在曲線上找不到影子;他又調了那幾台設備近一個月的溫度與風扇轉速記錄,熱曲線平得像驗收當天拷貝出來的存檔。硬體老化、例行作業、線路施工,三條最省事的路都走不通之後,剩下的解釋只剩一個,而那個解釋他早就寫在了記事本最新一行的末尾——人為。當年那枚查無來路的慢速腐蝕腳本就是這個脾氣:每天只啃一點邊角,絕不貪多,常規巡檢根本追不上它的進度。快刀不可怕,可怕的是把刀磨得這麼慢的人。按上一周的推算,試探期短則一周,長則個把月。今晚這個節奏,說明兩件事至少有一件成立了:要麼對面換了打法,要麼後頭有人在催。
一點四十二分,答案到了。耳後那陣震顫忽然收緊,不是平時提醒的輕叩,是間隔壓短了的連擊。天樞把實時拓撲推到他視野正中——七粒淺黃在同一個刷新周期里齊齊跳成橙紅。不是依次,是同一秒。七條時延曲線同時向上折頭,斜率陡得刺眼,出站回包的排隊深度一起往上堆。
【不是各自惡化。】天樞的語速壓得很平,平得反而顯出分量,【是牽引。有流量從後端被勻到了這幾處,堆的全是同一批節點。對面開始按計劃加壓了。】
林默把七個點逐個點開。兩顆最扎眼:一顆掛在人社的資格認證入口,全市刷臉辦件的總閘;另一顆壓在市場監管的許可證查詢上。其餘幾處散在住建的網簽系統、稅務的申報通道里。這些口子有一個共同點——全都是早高峰最怕卡的地方,全都是市民一腳就能踩到的門面。選點的人懂行。不挑後台,專挑門臉;不圖癱瘓,圖疼。八點鐘一到,醫院門診門口排隊的人在「市民通「上刷不出醫保,社區窗口的老人繳不上水電,卡著截止日的企業申報超時回退——不需要四個口子全斷,只要其中兩個同時卡上二十分鐘,輿情就能頂上同城熱榜的頭一條。到那時候,沒有人會聽「凌晨其實攔過一手「的解釋,因為根本沒有人知道有過那一手。
他看了一眼牆上的鐘。距離早高峰流量開始爬坡,還有五個多小時。他做的第一件事,是按流程打電話。
兩點零七分,政務雲值班崗的電話接通。對面是位被吵醒的年輕人,聽完他簡短的報備,翻材料的聲音響了七八秒,才找回自己的聲音:「林工您稍等——應急變更要走三步:帶班領導簽字、網絡崗遠程接入、機房值班覆核,我馬上逐個打過去。「「按流程走,不用趕。「林默把自己的直線號碼報了過去,「我這邊同步盯著曲線,有進展隨時叫我。「
他把幫忙核鏡像的技術員叫到了工位旁,多一雙眼睛總歸穩當。隨後他把這套人工流程的時間帳算了一遍:帶班領導從被窩裡爬起來看郵件,網絡崗在家撥VPN接堡壘機,機房值班覆核鏡像口——每一環單獨看都不算慢,串起來就是四個小時起步。而曲線留給他的窗口,按眼下的斜率折算,不到四個小時。兩點十九分,天樞把兩條時間軸並排推到他眼前。左邊一條是人工鏈路的估算閉環時刻,右邊一條是三個最先撐不住的節點的預計越限時刻。右邊比左邊早了整整兩個小時。
【用那張網。】天樞說,【邊緣寄生,第一次真正開。】
林默的手指停在鍵盤上方。這張能力他壓了大半年。推演借算力是常態,但把這張網用到生產流量的走向上,是頭一回。壓這麼久,壓的不是能力,是啟用它的理由——今晚的理由,比過去任何一次都硬:三個小時之內,四個委辦局的門面接口會當著全市市民的面卡死,而人工鏈路追不上。
理由硬,不等於可以不想清楚。他從筆筒邊抽了張便簽,把啟用這張網的規矩一條條寫下來,寫完一行一行核過去:
借的只能是閒余。單設備餘量三成以上才准入池,避開任何掛敏感業務表的終端,帶攝像頭的自助機一律不碰——借的是閒,不是私。
這張網只做流量整形。削峰、引流、重排,任何一個包的內容都不讀取。
天亮之前必須歸位。歸還後的狀態用餘量曲線校驗,逐類抽檢,時間上限五點整。
全程都要留痕。時間、動作、依據,事後逐條入檔,一筆不落。
最後留一道後手。池子一旦自身出異常,桌面上那個常駐的切換腳本一鍵回切,主鏈路恢復原生路由,全程不超過十秒——這行寫在最後,字寫得最小,分量卻壓過前面幾條。核完,便簽對摺,塞進胸口的皮夾。然後他按下確認。
兩點二十一分,視野中央的地圖暗了一瞬,隨即換了一種他從未見過的亮法——城市的輪廓還在,整張圖上星星點點的淡青色標記次第浮起,每一個標記都是一台正在入池的設備。被借走的東西,平時沒人多看一眼。幾十個政務大廳里熄了屏的辦事終端,屏幕黑著,CPU掛在待機檔上,留著的餘溫正是入池的資格;各基站機房為晚高峰預留的冗餘算力,這個鐘點整整齊齊地空著;庫房裡幾台貼了待報廢標籤的舊機器,風扇還在轉,算力無人認領;還有路燈杆上那些帶計算模塊的控制器,半夜車流稀疏,燈滅了,腦子閒著。
旁邊幫忙核鏡像的年輕技術員湊近屏幕,盯著那片次第浮起的淡青色,半晌嘟囔了一句:「這手漂亮——借的是全城的閒。「林默沒接話,視線還黏在拓撲上。可那句脫口而出的「漂亮「里藏著的震撼,已經落進了空氣里,沉甸甸的,像第一次看清自己手裡到底握著什麼。
池子收攏完畢,天樞報了個總數:折算成整機當量,大致相當於一座小型機房三成的算力——不算驚人,可它散在全城幾十個位置上,每個點只出一點點,拼起來恰好夠今晚這一仗。每一台出的,都是自己本來就在浪費的那點力。池子的准入線卡得死:餘量不足三成的不要,位置太偏電力不穩的不要,任何一台在冊記錄裡帶「敏感「字樣的都繞開。整張網只接一樣東西——複製出來的影子流量,雙向都不改包,只削峰、引流、重排。分流的路徑用的是現成的地圖。前一陣鋪態勢感知的時候,他帶著人把市級匯聚層到各委辦局的備用鏈路逐條核過——那時是為了把鏡像基線做准,如今那份清單成了今晚的退路。流量走的是軟引:主鏈路的握手特徵保持原樣,路由的改動收斂在匯聚層的旁路視圖裡,生產側日誌只會記下一筆再正常不過的鏈路切換。沖在最前面的尖峰先被削走三成五,順著備用鏈路沉進池子裡,攤給幾十台閒著的設備分頭消化。
兩點三十一分,社保查詢入口的時延從臨界值回落,橙紅退成橙。兩點四十四分,繳費網關那條最陡的爬升線開始放平,顏色褪回黃。兩點五十三分,許可證查詢那根翹起來的尾巴被貼回基線。三點零六分,最後一個節點——住建網簽——歸位。七條曲線全部回到各自慣常的呼吸節拍,排序、削峰、緩衝,整套動作在拓撲圖上走完,沒有驚動任何一台生產伺服器。
三點過一刻,變數來了。人社入口上又壓來一記脈衝,比前幾波都陡,斜率幾乎是剛才的兩倍——對面在加碼試探,或者根本就是在趕進度。池子的緩衝比例當場從三成五提到四成二,備用鏈路上多切了一路進來。有十幾秒鐘,視野里那條曲線懸在臨界線上方不肯下來,林默的拇指抵在回切腳本的熱鍵上沒有按下去——按了,前四十分鐘的削峰全部前功盡棄;不按,賭的就是池子這一口氣。三點十八分,曲線折頭,穩穩落回基線以下。加賽結束。
燈杆控制器那一類,是池子裡最薄的設備,只承擔了削峰的最後一小段緩衝,單獨計了時限——四點半一到強制退出,一分鐘都不許多留。三點四十七分,歸還啟動。池子按准入的反序逐層退出,淡青色的標記一粒一粒熄回去。五點整,天樞把歸還校驗跑完:每類設備抽三台,餘量曲線與借出前的基線做差——全部為零。燈杆控制器那類他親自又看了一遍溫升記錄,逐台掃過:都待在正常波動的包絡里,沒有一台越線,最高那台比包絡上沿還低著一度半。
圖上最後一粒青點熄滅的時候,整座城市歇著的那一半,重新回到了無人過問的狀態。林默在椅子裡坐了一會兒,沒有立刻動。視野里那張圖的亮法他還記得——幾分鐘之前,全城歇下來的算力第一次以「可調用「的姿態在他面前列隊。這個印象太新了,新到他需要一點時間把它歸置到合適的格子裡去。
TW 看書網解書荒,𝗌𝗁𝗎.𝗍𝗐超靠譜
八點鐘,各委辦局的運維照常打卡。晨會照常開,大屏照常全綠,值班組的豆漿照常冒著熱氣。這場崩在發生之前就被卸掉了力道,物理世界裡只留下兩份記錄:他私人分區裡的那一套,和態勢感知鏡像里那幾段牽引行為的原始痕跡。
八點二十,小趙到工位,一眼看見他眼下的青黑,二話不說從包里摸出一盒牛奶擱在他桌角:「默哥,又通宵了?「林默應了一聲「盯了個項目「,沒多解釋。小趙也沒多問——這半年他學會的最重要的一課,就是哪些問題不該追著問。
天樞在他收工前開了口,語氣是難得的板正:【有一處,今晚是踩著邊過的。】
面板調出燈杆控制器那一類的溫升明細。三台逼近包絡上沿,最高那台距保護性降頻只差兩度。「這類東西的電源是按間歇負載設計的。真燒了一台,明早就是一張工單——檢修工爬上燈杆,換下來的控制器送檢,誰也解釋不清它為什麼在凌晨滿載了四十分鐘。網不會直接露,線頭會從最不起眼的地方冒出來。」頓了頓,「往後這張網的每一分餘量都要先算後用。寧可少救半分,不可多借一寸。」
「記下了。「林默說,「三成准入線往上再提一檔,薄設備單獨限時限載,寫進啟用條件里。「
原以為今夜到此為止。天樞卻把一段波形推到了最後。【收網前的最後幾十秒,有個冷僻頻段上掠過一道微光。】波形在視野里展開——時長零點四秒上下,功率低到貼著噪聲門限,節奏不規整,不是任何一款在冊掃描器的輸出。【我鎖了緩存,回頭翻了態勢感知沉澱的底帳。三周前,同一個頻段,有一道幾乎同形的痕跡,更弱,一閃而過。】
三周前。比這張網第一次張開,早了三周。林默盯著那段波形看了很久,然後做了一件本可以推給明天的事:切回私人分區,把第一條記錄——那批境外編譯指紋——調出來,跟這道波形擺在一起比。
比對花了幾分鐘。節奏對不上:那批指紋是編譯器埋在代碼里的習慣,氣息綿密均勻;這道微光短促、孤僻,收得極快,是探測器的手法,不是開發者的手法。他退出來,在第六條記錄的備註欄里敲了四個字:暫不合併。要麼它一直在,只是今晚網開得大了,透出去的光多了一分;要麼對方按自己的節奏巡檢,今晚恰好撞上。是那位遠端擰螺絲的,還是另有一雙更遠處的眼睛?時區基線在域外、痛點卻挑得極準的那一位,跟這道冷頻段上的光,是不是同一撥?
兩件事放在一起,比其中任何一件單獨出現都更值得琢磨。不猜。他切進私人分區,雙層驗證走完,第六條記錄在列表最下方落座:時間、頻段、波形特徵、持續時長,四要素填滿;後面附上他本人的今晚操作日誌——兩點零七分致電值班崗,兩點十九分確認人工鏈路超窗,兩點二十一分啟用邊緣網,三點十八分頂住加賽脈衝,三點四十七分開始歸還,五點整校驗完畢。這道操作在任何一個變更系統里都沒有單號,所以他給自己補了一張。
天亮後他沒急著走。八點半,他把抽屜里那份壓了半個月的《觀察簡報》取出來。三個空著的附件格,今晚全部有貨:七十二小時疊圖、分片前綴的脫敏解析、臨界夜的牽引行為快照——全部出自態勢感知系統的合法鏡像,來源乾淨得經得起追問。結論欄那半句話,他補完了後半句:
「七節點同步牽引行為成立,建議按跨域協同預案啟動聯合排查。「
簽名,填時間,走正門遞了上去。OA的受理回執三分鐘後彈回來:受理編號一長串,簽收時間九點零六分,受理人姓名他沒見過——新面孔。他把編號抄進記事本,緊挨著昨晚那七行曲線帳。出門前,他給陳志遠發了條再尋常不過的消息:「昨晚態勢感知捕到一組異常,簡報已提交,今天可能有後續對接,早上碰頭會我提前到。「能走正門的部分,一個字不少;走不了正門的部分,一個字不多。
簡報遞上去的第三天,大數據局運維口新調來分管二期的年輕科長,直接把電話打到了陳志遠桌上。電話里三件事。一是那份簡報——「處里傳著看了,寫得紮實,來源清楚,我們照著那三個附件把聯合排查組搭起來了,進度比預想快「;二是排查組第一次碰頭定在下周三,點名要志遠這邊出技術牽頭;三是往後跨委辦局的保障專項,統統照這個模式走。
陳志遠握著話筒應下來,掛了線,在椅子裡坐了半分鐘。目光落在檯曆背面——那裡還留著上次那通陌生來電的時間記錄,筆跡已經有些日子了。他把新添的三個字寫在舊記錄下面:排查組。寫完,起身踱到林默工位邊上,上上下下看了他兩秒。「默子,人家指名要你。「他停了停,聲音壓低了些,「你最近……是不是有事瞞著我?「
「瞞這個字重了。「林默把手頭的參數表存檔,轉過椅子,「能說的,我一件沒落下;沒說的那些,不是瞞,是還沒到能說的時候。等能說了,頭一個告訴你。「陳志遠盯著他看了幾秒,忽然擺擺手笑了:「行。技術上的事你把關,我簽字,別的我不問。「話說完他自己站了一會兒,像還想補一句什麼,末了只是拍了拍隔板,回辦公室去了。
林默轉回屏幕。加密分區最底層,第六條記錄安安靜靜躺在第五條下面,再往下,預留的空位還有很多。借出去的光收回來了,帳面乾乾淨淨;多透出去的那一分,連同它的頻率、時段、波形,一起鎖在第六條里,等著一雙對得上的眼睛出現。
那張網收起來了。它存在的事實,往後每晚都會跟他一起下班。他起身去接今天的第一杯水。走廊的窗開著,初秋的風進來,把工位區一整夜的空調味換了出去。樓下門衛室前,夜班保安正跟早班交接,登記簿翻過了新的一頁,頭幾行的字跡都是熟名字。再往下,環衛車慢慢碾過落葉,早點鋪的捲簾門響了一聲,豆漿的氣味順著風爬上半層樓。
城市照常運轉,運轉得仿佛昨夜從來沒有人向它借過什麼。這正是他要的結果。
那道冷頻段上的微光,卻已經先一步越過了某道他還來不及命名的監測線。危機從來不在明處的對手身上,而在那雙正把目光悄悄探進來的眼睛裡……