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

ゲームラグ白書 › 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が増えていれば「受信サーバーのホストでのパケット破棄」
確認手段
インフラのツールで確認(ゲームコード不要)

出典

  1. RFC 2544: Benchmarking Methodology for Network Interconnect Devices IETF
    機器の性能は、最小・最大サイズを含む複数のフレームサイズで試験すべき(パケットサイズによって処理性能が変わる)

あわせて読みたい原因

同じ層:TCP再送の根本原因

同じ症状(フリーズ)を起こすほかの層の原因

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