WhatsApp 世足決賽破每秒 3000 萬則訊息,Meta 如何撐住
Engineering at Meta · 2026-10-15
Meta 撐過 2026 世足賽的辦法,不是靠自動擴容追上流量,而是事先把容量買好、不讓尖峰等 autoscaling,同時連 change freeze 都沒有啟用。7 月 19 日決賽(阿根廷對西班牙)期間,WhatsApp 單秒傳遞超過 3000 萬則訊息,是平台史上最高紀錄。
這場賽事共 48 隊、104 場比賽。Meta 工程團隊在 官方工程部落格公開了 Instagram 與 WhatsApp 的做法。
原本的問題:尖峰不在比賽,在休息時間
一般預測流量的直覺是看比賽進行中的觀看人數。Meta 對照全球 egress 流量後發現,分享與訊息的尖峰集中在中斷時刻:飲水暫停、中場、延長賽、終場哨聲與頒獎典禮。文章原話是「It wasn't the gameplay that moved our charts. It was the conversations after it.」
- 決賽常規時間結束前約 4 分鐘,流量上升 46%;終場哨聲前後約 15 分鐘,上升 57%。
- WhatsApp 進球與終場哨聲造成的尖峰各持續四到五分鐘;最高的五分鐘窗口內,送達訊息近 84 億則。
- 16 強賽(阿根廷對埃及,決賽前 12 天)已創下每秒 2900 萬則;決賽是其後的新高,為 2026 跨年夜尖峰的 1.23 倍。
- Messenger、Threads、Instagram Direct 合計尖峰為每分鐘 4900 萬則訊息。
尖峰短、陡、而且全球同時發生,所以傳統「流量上來再擴容」的節奏來不及。
共用基礎設施與區域容量
底層沿用既有元件:Taiji 在資料中心之間平衡負載,Katran 與 Proxygen 負責 L4/L7 分流,全球負載平衡把使用者導向最合適的邊緣節點,AutoScaling 按需供應容量。賽前數月,邊緣團隊還與 ISP 夥伴分析網路容量,讓升級投在最能改善使用體驗的地方;這些預先建好的容量現在已是永久的。
Instagram:連續 39 天尖峰的四個手段
Instagram 的壓力來自 Feed、Stories、Explore、推薦系統的 ML 推論與資料層同時被拉高。決賽終場那一分鐘,Feed 流量比前一天同時段高 76%,之後兩小時仍高約 21%;推薦系統流量最高比前一週高 80%。團隊從小組賽到決賽逐步上線四項措施:
| 手段 | 做法 |
|---|---|
| 容量緩衝 | 在所有服務層預先佈署大量額外容量,尖峰不必等 autoscaling;文章稱這是最有效的一項 |
| 國家級優雅降級 | 高風險比賽時,在巴西、阿根廷、印度、印尼、西班牙卸除非關鍵的背景負載 |
| 連鎖防護 | 阻止服務層的尖峰傳導到下游資料系統 |
| 早期警示 | 在逼近容量門檻之前就觸發告警 |
分階段時程與降級判準已整理成可重用的 runbook,Meta 說會用在 2028 奧運。
WhatsApp:兩個違反平常做法的決定
WhatsApp 在賽前對超過 100 個內部服務做壓測並調整規模,需求攀升時再測再調。與平常最大的差異有兩點:
- 不依賴跨區域負載轉移。平常需求可在區域間攤平,但這次各區同時到頂,「Every region peaked in the same instant, so there was no idle capacity to borrow.」因此各區尖峰是分別預測,而不是用一個全球倍數推算。
- 不凍結變更。團隊維持持續部署,也沒有延後災難復原演練這類風險較高的操作,包括尖峰期間。
平常:全球流量 × 倍數 → 各區容量;區域間可互相借用
這次:各區獨立預測尖峰 → 各區自備容量;假設沒有閒置可借影響範圍
對負責全球同步事件(大型直播、跨年、遊戲發行)的容量規劃者,最直接的修正是檢查「區域間可互借」這個假設:若事件使各區同時尖峰,借用只是帳面上的容量。其次,用 autoscaling 當唯一手段的服務,要確認冷啟動與擴容延遲是否小於尖峰的陡升時間(本案例中的尖峰僅持續四到五分鐘)。
對 SRE 與發布團隊,值得對照的是 Meta 選擇不凍結變更、仍照常做 DR 演練。文章未公布這背後的風險控管細節,本文也不推測。
文章未公布的部分包括:預留緩衝的實際比例、降級具體卸除了哪些背景工作、早期警示的門檻數值。