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

ゲームラグ白書 › L6 サーバーのネットワークカード

NIC帯域幅の飽和 NIC bandwidth saturation

原因ID nic-saturate · 主担当 ゲーム開発チーム・サーバー開発 · 副担当 インフラチーム・サーバーインフラ

図と実験のあるメインページでこのカードを開く →

1Gbps・10Gbpsのカードを限界まで使うと、送信キューが長くなり、最終的に破棄されます。

なぜ ブロードキャストの増加で送信量がカードの限界に到達 → すると 送信キューが長くなり、あふれると破棄 → 画面では サーバー全体で遅延・パケットロス(入力遅延・ワープ)

症状
入力遅延, ワープ
要因
遅延, パケットロス
誰に起きるか
サーバー全体
いつ
人が集中したとき
担当
主担当 ゲーム開発チーム・サーバー開発 · 副担当 インフラチーム・サーバーインフラ
ゲーム開発チームの対応
送信量を減らす(関心領域、圧縮、差分のみ送信)。
インフラチームの対応
カードの増強(より高速な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 サーバーのネットワークカード

同じ症状(入力遅延)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る