《神豪:收入按美元,消費按日元》第19章 救場(1)

作者:風起青萍1992·4小時前

晚上九點四十四分,臨時賬號正式啟用。

周衡沒有先碰重啟按鈕。

他讓羅致遠把訂單確認延遲、資料庫寫等待、訊息積壓和計劃任務放到同一個只讀頁面。四條曲線的時間範圍全部拉回晚上六點半,避開擴容和多次重啟造成的後續噪聲。

最先變化的不是訂單量。

七點零一分,一項“未確認訂單對賬”任務開始執行。資料庫寫等待幾乎同時抬頭,五分鐘後訂單確認開始變慢。海拓第一次增加消費程序時,等待連線數進一步上升;第二次擴容後,積壓增長更快。

海拓值班負責人仍認為訊息佇列本身是瓶頸,提出先把佇列節點再擴一組。

周衡讓他把佇列寫入速度和消費確認速度分別拉出來。訊息一直能正常進入,磁碟和網路也沒有接近上限;真正下降的是訂單寫入完成後的確認。佇列只是把來不及處理的訂單儲存下來,不是最先變慢的地方。

“擴佇列能放下更多積壓,不能讓資料庫更快寫完。”他說,“先不動它。”

“這個對賬任務今晚為什麼提前跑?”周衡問。

丁卓在現場終端旁查工單:“下午改過執行時間。業務想在大促前先清一次歷史未確認訂單,變更單批准時間是六點四十分。”

“誰執行的不是重點。先看它做了什麼。”

任務日誌顯示,它每次讀取一批未確認訂單,更新狀態前還會呼叫倉儲介面核對出庫結果。外部介面一慢,資料庫事務便一直不結束,同一批訂單記錄也始終被佔著。

正常的訂單確認程序需要更新其中一部分相同記錄,等不到便超時重試。海拓增加的程序越多,同時排隊等待的連線越多,最後連不相關的新訂單也拿不到寫入機會。

周衡沒有憑這一條時間關係直接下結論。

他讓資料庫管理員儲存當前活動事務、等待關係和任務日誌快照。最長的一筆事務正來自對賬賬號,持續二十六分鐘;後面排著四百多次訂單確認寫入。錄屏完整拍下查詢條件、結果時間和操作人。

“先停任務排程,不殺事務。”周衡說,“停止下一批進入。當前這批要確認已經做了哪些外部呼叫,直接終止可能讓倉庫狀態和訂單狀態分開。”

羅致遠在工單裡批准暫停排程。

丁卓執行,回讀狀態:“排程已停,當前事務還在。”

倉儲介面日誌由嘉禾人員核對。當前批次發出過三百餘次查詢,沒有寫出庫指令;資料庫更新也尚未提交,終止後只需回滾本地未完成狀態,不會撤回已經生效的業務動作。

這一結論被寫進工單,資料庫管理員才終止對賬事務。

回滾用了七分鐘。

寫等待開始下降,積壓曲線卻沒有立刻回頭。前面擴出的消費程序仍在同時重試,資料庫連線剛釋放,便被大量舊請求再次佔滿。

“把併發降回原來的四分之一。”周衡說,“先別追求清積壓,確認新寫入能穩定完成。”

杜維成不在現場,海拓值班負責人在語音裡質疑:“現在積壓這麼多,再降併發什麼時候能清完?”

“現在的瓶頸是寫入等待,不是程序數量。先讓每一筆能完成,吞吐才會回來。繼續加,只會讓更多請求一起等。”

羅致遠問:“回滾條件?”

“降併發後五分鐘內,單筆確認耗時和等待佇列沒有持續下降,就恢復原配置,改走只讀降級。現在所有變更值都寫進工單。”

客戶批准。

。復恢始開率功認確單訂,鐘分五第;半一下落位高從待等庫料資,鐘分三第;長增然仍積,鐘分一第。來下降數序程把錄記按卓丁

。現出即隨題問的新

。復恢快很會不遲延的路鏈心核,清序順原按續繼。理條逐單訂舊等要也,寫能使即單訂款付新,面前在排還積史歷

猜你喜歡

同題材或同分類的其他作品。