ゲームラグ白書 › TCP再送の根本原因
中間機器の処理上限超過(ファイアウォール・IPS・DDoS対策) Inline appliance PPS / CPU overload
原因ID rt-appliance-pps · 主担当 インフラチーム・ネットワークインフラ · 副担当 ゲーム開発チーム・サーバー開発
図と実験のあるメインページでこのカードを開く →
ファイアウォール、侵入防止システム(IPS)、DDoS対策機器は、通過するパケットを1つずつ検査します。検査能力を超えた瞬間から、処理しきれなかったパケットを破棄します。
なぜ ピーク時間帯・イベントで小さなゲームパケットが毎秒数十万個以上集中、または検査ルールが重い → すると 機器のCPU・秒間パケット数が上限に達し、機器で破棄。誤検知なら正常なパケットも遮断 → 画面では その機器の後ろにあるサーバー全体で同時にフリーズ・ワープ、人が集中したときだけひどくなる
- 症状
- フリーズ, 早送り, ワープ, 切断
- 要因
- パケットロス, 遅延
- 誰に起きるか
- サーバー全体, 特定の地域・ISP
- いつ
- 夜のピーク時間帯, 人が集中したとき
- 担当
- 主担当 インフラチーム・ネットワークインフラ · 副担当 ゲーム開発チーム・サーバー開発
- ゲーム開発チームの対応
- ゲームのトラフィックパターン(ポート、パケットサイズ、秒間パケット数)をインフラチームに共有、1ティックで送る小さなメッセージはまとめて一度に送り、パケット数を減らす。
- インフラチームの対応
- 機器のCPU・秒間パケット数・ドロップカウンターをゲームのメトリクスと並べて確認、小さいパケットを基準に機器の容量を見積もる、ゲームのポートは重い検査から外す、DDoS対策のルールをゲームのトラフィックパターンに合わせる。
- 数値の目安
- 機器仕様の「10Gbps」は、1,500バイトの大きなパケットを基準に書かれていることが多いです。100バイト前後のゲームパケットは同じ帯域幅でもパケット数が10倍以上多くなるため、回線が空いて見えても秒間パケット数の上限が先に埋まります。
- グラフでは
- 上限で頭打ち · 機器の秒間パケット数・CPU使用率、機器のドロップ数
- 確認箇所
- 機器のCPU・秒間パケット数・ドロップカウンターを確認し、機器の前後にあるスイッチポートのパケット数を同じ間隔で比較。同時接続数やサーバーの再送率と1つの画面に重ねて確認
- 該当する場合
- ピーク・イベント時に機器の秒間パケット数やCPUがある値で頭打ちになり、機器に入ったパケットより出たパケットが少なくなる。同じ時刻に、その後ろのサーバー全体の再送率もそろって上がる
- 該当しない場合
- 機器の前後のパケット数が同じで、機器でのドロップもなければ別の原因。サーバーのNICの破棄カウンターやsoftnet droppedが増えていれば「受信サーバーのホストでのパケット破棄」
- 確認手段
- インフラのツールで確認(ゲームコード不要)
出典
- RFC 2544: Benchmarking Methodology for Network Interconnect Devices IETF
機器の性能は、最小・最大サイズを含む複数のフレームサイズで試験すべき(パケットサイズによって処理性能が変わる)
あわせて読みたい原因
同じ層:TCP再送の根本原因
同じ症状(フリーズ)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る