遊戲 Lag 白皮書 › L5 資料中心網路設備
纜線不良與 port 錯誤 Bad cable / optics (CRC errors)
原因 ID dc-bad-cable · 主要負責 基礎設施團隊(網路基礎設施)
在含圖解與實驗的完整版中開啟卡片 →
光模組或纜線不良時,經過該路徑的封包會有一定比例損毀。
為什麼 光模組或纜線不良造成位元錯誤 → 於是 損毀的封包被設備默默丟棄 → 畫面上 只有使用該路徑的部分伺服器與使用者因持續的封包遺失而瞬移、拉回
- 症狀
- 瞬移, 拉回
- 因素
- 遺失
- 誰會遇到
- 特定地點/頻道
- 何時
- 一直都有
- 負責單位
- 主要負責 基礎設施團隊(網路基礎設施)
- 基礎設施團隊要做的事
- 監控 port 錯誤(CRC)計數器並設定警示,更換光模組、纜線等零件,更換前先把問題鏈路移出、改走其他路徑。
- 圖表上
- 只有部分偏高 · 各 port 的 CRC 錯誤數、各伺服器/路徑的遺失率
- 查看位置
- 查看鏈路兩端的 CRC 計數器。交換器看 port 的 FCS 錯誤(dot3StatsFCSErrors)與輸入錯誤(ifInErrors),伺服器看 ip -s -s link 的 RX errors 中的 crc(kernel 統計 rx_crc_errors)
- 符合的跡象
- 某個 port 的 CRC 錯誤不分流量大小與時段持續增加,且只有經過該 port 的伺服器與玩家有遺失
- 不符合的跡象
- 沒有 CRC 錯誤、只有輸出丟棄增加時是壅塞(「交換器 microburst」、「資料中心線路飽和」)
- 確認方式
- 用基礎設施工具確認(不需要遊戲程式碼)
出處
- Understanding and Mitigating Packet Corruption in Data Center Networks (SIGCOMM 2017) ACM
分析資料中心 35 萬條鏈路:損毀原因為不良光模組、受損光纖、髒污接頭,損毀率與使用量無關、始終穩定存在,在維持路徑數量的前提下把問題鏈路移出修理 - RFC 3635: Definitions of Managed Objects for the Ethernet-like Interface Types IETF
訊框檢查(FCS)失敗計數器(dot3StatsFCSErrors),這類錯誤計入輸入錯誤(ifInErrors) - Interface statistics Linux kernel
rx_crc_errors:收到但 CRC 錯誤的封包數,用 ip -s -s link 依錯誤種類確認
相關原因
同一層:L5 資料中心網路設備
同一症狀(瞬移)在其他層的原因
查看含圖解與實驗的完整版卡片