開場前 48 分鐘,模型沒額度了
前言:沒有人準備「它不能用」的那一刻 我們花很多時間討論 AI 能做什麼、怎麼用得更好、哪個模型比較強。 幾乎沒有人準備一件事:它突然不能用的時候,你怎麼辦。 不是「回答得不好」,是「完全叫不動」。而且是在你最需要它的那一刻。 這篇文章記錄一次真實的狀況:一場需要即時互動的活動,開場前 48 分鐘,背後的模型服務回傳配額用盡。從發現到恢復共約 30 分鐘。我把整個排錯過程完整寫下來,包括我一開始判斷錯的那一段。 補一句背景:這次排錯實際動手的是我的 agent,我從頭到尾在旁邊看著。下文的「我」包含這段協作——包括判斷錯的那一步,我當下也跟著信了。 一、症狀:兩個看起來無關的異常 事情不是從錯誤訊息開始的,是從「怪怪的」開始的。 我在例行檢查日誌時看到兩件事: 第一件,錯誤層級的訊息: ERROR pool error in dispatch_batch: pool exhausted INFO pool full, suspending oldest idle session 連線池滿了,系統正在不斷把舊的連線踢掉換新的。 第二件,回應時間異常: 使用者 A 387,289 ms = 6 分 27 秒 使用者 B 299,965 ms = 5 分 00 秒 使用者 C 270,801 ms = 4 分 31 秒 正常應該是 17~30 秒。現在要 4 到 6 分鐘。 二、第一個判斷:錯的 我的第一反應是:連線池滿了,所以大家在排隊,所以慢。 這個推理完全通順。池子有上限、上限到了、新的請求要等舊的釋放、於是每個人的等待時間拉長。 我甚至已經開始查連線池的設定,想看看上限能不能調大。 ...