ゲームラグ白書 › 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上限超過」
- 確認手段
- インフラのツールで確認(ゲームコード不要)
出典
- Interface statistics Linux kernel
tx_dropped:リソース不足で送信中に破棄したパケット数 - Amazon EC2 instance network bandwidth AWS
インスタンスが使える帯域幅はvCPU数(インスタンスサイズ)によって決まる - sar(1) — Linux manual page sysstat
-n DEVのrxkB/s・txkB/sと%ifutil(インターフェース速度に対する使用率)
あわせて読みたい原因
同じ層:L6 サーバーのネットワークカード
同じ症状(入力遅延)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る