한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

遊戲 Lag 白皮書 › L6 伺服器網路卡

NIC 頻寬飽和 NIC bandwidth saturation

原因 ID nic-saturate · 主要負責 遊戲開發團隊(伺服器開發) · 協同 基礎設施團隊(伺服器基礎設施)

在含圖解與實驗的完整版中開啟卡片 →

把 1Gbps、10Gbps 網路卡用到極限時,傳送佇列會變長,最後封包被丟棄。

為什麼 廣播增加,使傳輸量達到網路卡的極限 → 於是 傳送佇列變長,滿了就丟棄 → 畫面上 整個伺服器出現延遲與封包遺失(輸入延遲、瞬移)

症狀
輸入延遲, 瞬移
因素
延遲, 遺失
誰會遇到
整個伺服器
何時
人潮湧入時
負責單位
主要負責 遊戲開發團隊(伺服器開發) · 協同 基礎設施團隊(伺服器基礎設施)
遊戲開發團隊要做的事
減少傳輸量(AOI、壓縮、只送變更的部分)。
基礎設施團隊要做的事
升級網路卡(更快的 NIC,雲端則換更大的執行個體),設定 NIC 使用率警示。
圖表上
碰到上限後持平 · NIC 傳送量、傳送丟棄
查看位置
把 sar -n DEV 1 的 txkB/s 與 %ifutil(相對於介面速度的使用率)和 NIC 速度、執行個體頻寬比較,並一起查看 ip -s link 的 TX dropped
符合的跡象
傳送量在 NIC 或執行個體頻寬附近持平,從那時起傳送丟棄與整個伺服器的延遲增加
不符合的跡象
頻寬還有餘裕時,就不是這個原因。小封包很多且有遺失時,是「超過雲端 PPS 上限」
確認方式
用基礎設施工具確認(不需要遊戲程式碼)

出處

  1. Interface statistics Linux kernel
    tx_dropped:因資源不足,在傳送途中被丟棄的封包數
  2. Amazon EC2 instance network bandwidth AWS
    執行個體可用的頻寬由 vCPU 數(執行個體大小)決定
  3. sar(1) — Linux manual page sysstat
    -n DEV 的 rxkB/s、txkB/s 與 %ifutil(相對於介面速度的使用率)

相關原因

同一層:L6 伺服器網路卡

同一症狀(輸入延遲)在其他層的原因

查看含圖解與實驗的完整版卡片