AI 網絡中的鏈路可靠性與監測
一次訓練任務是跨數千塊 GPU 的同步計算:每一次集合操作都要等待最慢的鏈路。一個抖動的光模組不只是讓一台伺服器慢一點點——它會拖慢整個任務,一旦徹底失效,任務就要從上一個檢查點重新開始。因此光模組不再只是一個部件,而成了一項可靠性預算。本頁介紹故障發生的數學模型、能夠預測問題的指標、組網如何監測和隔離壞鏈路,以及能壓低故障率的運維做法。
為甚麼一條鏈路影響這麼大
| 事件 | 對訓練任務的影響 |
|---|---|
| 鏈路抖動(數秒) | 集合操作超時或重試;單步耗時飆升;用 NCCL/RCCL 時,足夠長的停滯會中止任務 |
| 鏈路降速/降寬 | 每一次 all-reduce 都被它拖慢;整個集群吞吐量降到該鏈路的份額 |
| pre-FEC 誤碼率升高,但尚無不可糾錯錯誤 | 目前還沒有影響——但餘量已經耗盡;下一個較熱的下午它就會開始抖動 |
| 不可糾錯的 FEC 錯誤 | 丟包 → RDMA 重傳風暴 → 停滯 |
| 硬故障 | 從檢查點重啟任務:整個集群損失幾分鐘到一小時的算力 |
一個千卡 GPU 任務從檢查點重啟的代價以 GPU 小時計;這個數字才是應該拿來和更好的光模組、更好的 QA 成本作比較的。
故障的算法
光模組可靠性通常用 FIT(每 10⁹ 器件小時的失效數)或 MTBF 表示。
| 假設 | 數值 |
|---|---|
| 組網中的光端口數 | 4 000(一個 1 024-GPU 兩層集群) |
| 每端口 FIT(成熟的 400G 光模組,散熱良好) | 200–500 |
| 預期每月硬故障數 | 4 000 × 350 × 10⁻⁹ × 720 h ≈ 1 |
| 實際觀測到的鏈路抖動率 | 比硬故障高 5–20 倍——髒污、餘量不足、熱問題、固件 |
因此硬故障是罕見且可預測的;抖動和劣化鏈路才是主要問題,而且大多可以預防——這正是監測和 QA 能夠回本的原因。
能預測問題的指標
| 指標 | 來源 | 健康範圍 | 應對 |
|---|---|---|---|
| 每通道 pre-FEC 誤碼率 | CMIS VDM;主機 FEC 計數器 | < 10⁻⁷ | > 10⁻⁶ 且上升;> 10⁻⁵ 安排更換 |
| FEC 不可糾錯碼字數 | 主機 | 0 | 任何增量都是一次事件 |
| 每通道符號錯誤數 | 主機(以太網)/ perfquery(IB) | 均衡,接近零 | 某一通道明顯偏高 |
| 每通道 接收光功率 相對基線 | DDM | 與首日相差 1 dB 以內,各通道間相差 2 dB 以內 | 相對基線 −2 dB |
| 發射偏置電流趨勢 | DDM | 平穩 | 相對基線 +15–20 %(發射偏置電流與激光器老化) |
| 模組溫度 | DDM | < 60 °C | > 65 °C 或比相鄰模組高 +10 °C |
| eSNR(CMIS) | VDM | > 18–20 dB | 某一通道下降 |
| 每端口鏈路抖動次數 | 交換機日誌、組網管理系統 | 0 | 任何數值 |
| 協商速率/寬度 | 交換機 / ibstat | 滿速 | 低於額定值 |
定義和格式見:VDM 與 FEC 指標、 監測。
監測架構
| 組網 | 採集方式 | 工具 |
|---|---|---|
| InfiniBand | 子網/組網管理器輪詢每個端口的計數器及線纜 EEPROM/DDM | UFM 類管理器、ibdiagnet、mlxlink -m |
| 以太網(RoCE) | 以 10–60 秒週期通過 gNMI/OpenConfig 流式傳輸光模組和 FEC 狀態;SNMP 作為回退 | gnmic → Prometheus/Grafana、廠商遙測(用工具讀取 DDM) |
| 主機側 | 網卡計數器:重傳、CNP、亂序;NCCL/RCCL 日誌中的超時 | node exporter |
| 任務側 | 單步耗時方差、慢節點檢測 | 訓練框架指標 |
把三者關聯起來看:14:05 的單步耗時突增、14:04 leaf 7 通道 3 上的 pre-FEC 誤碼率異常、機櫃 12 的模組溫度峰值,三者合在一起就是一份完整的診斷。
隔離與處置
- 自動禁用端口/繞行:當不可糾錯錯誤或抖動次數超過閾值時——組網管理器和網絡作業系統都支援鏈路錯誤策略;自適應路由會同時把流量繞開劣化鏈路。
- 如果問題出在網卡端口,就排空該節點;把任務調度繞開它。
- 上台架檢測模組:身份資訊、每通道 DDM 與首日基線對比、校驗和、固件版本(光模組檢測、DDM)。
- 在歸咎於模組之前,先清潔並重新檢查兩端的 MPO——髒污是最常見的原因(物理不匹配)。
- 更換並觀察:如果錯誤跟著模組走,就返廠維修;如果錯誤留在端口,就檢查籠子、光纖和對端。
能降低故障率的做法
| 做法 | 效果 |
|---|---|
| 進料檢驗和老化(負載和溫度下 24–72 小時) | 在故障到達任務之前排除早期失效 |
| 首日建立每通道 DDM 基線 | 把絕對精度(±3 dB)變成精確的差值 |
| 保持模組 < 60 °C——風道、正確使用帶散熱片/平頂 OSFP、進風口不被遮擋 | 溫度每降 10 °C 壽命翻倍 |
| 每次對接都清潔連接器;未用端口加防塵帽 | 大多數抖動都是髒污引起的 |
| 模組和主機固件保持最新 | 修復 CMIS 互操作問題(CMIS 問題) |
| 每層使用同質、已驗證的光模組 | 減少主機/模組 DSP 互操作方面的意外 |
| 備件比例 3–5 %,已老化並建立基線 | 更換時不會引發第二次事件 |
| 每週趨勢複查 | 按計劃更換老化的激光器,而不是等故障發生 |
技術走向
更高的每通道速率(200G/通道、1.6T)進一步壓縮了餘量;線性(LPO)和 共封裝光學取消了 DSP 及其監測功能——把誤碼率的可見性推到主機側—— 同時承諾更少的元件和更少的發熱(調制與 DSP、AI 中的光模組)。無論用哪種模組,原則不變:建立基線、監測差值、根據趨勢採取行動。
在 CodingBox 中
CodingBox 是這個閉環中台架側的一環:進料檢驗和老化讀數、按序號存入 代碼資料庫的首日每通道基線,以及對拔下模組的事後讀取——身份資訊、固件、校驗和與 DDM 都與自身歷史記錄比對——使 RMA 決策建立在數據之上,而不是端口的最後一條日誌記錄上。