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

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

クラウドのPPS上限超過 Cloud PPS / bandwidth allowance

原因ID nic-cloud-pps · 主担当 インフラチーム・サーバーインフラ · 副担当 ゲーム開発チーム・サーバー開発, 外部・外部

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

クラウドのサーバーには種類ごとに毎秒のパケット数・帯域幅の上限があり、超えると黙って破棄されます。

なぜ 同時接続数が増えて、毎秒のパケット数がインスタンスの上限を超える → すると クラウドのネットワークが超過分を破棄 → 画面では 原因のわからないパケットロスでワープ・スキル不発。サーバーのCPUには余裕がある

症状
ワープ, 不発・ロールバック
要因
パケットロス
誰に起きるか
サーバー全体
いつ
人が集中したとき, 夜のピーク時間帯
担当
主担当 インフラチーム・サーバーインフラ · 副担当 ゲーム開発チーム・サーバー開発, 外部・外部
ゲーム開発チームの対応
パケットをまとめる(1ティックのメッセージを1つのパケットに)、ごく小さなパケットを頻繁に送らない。
インフラチームの対応
上限超過カウンターの確認(AWSはpps_allowance_exceeded、conntrack_allowance_exceededなど)・アラート、より大きなインスタンス、接続追跡の上限は追跡が発生しないセキュリティグループ構成で回避。
外部の対応
クラウド事業者に、インスタンスの種類ごとの毎秒パケット数・接続追跡の上限を問い合わせ。
数値の目安
上限はインスタンスのサイズごとに異なり、毎秒のパケット数の上限は公開されていないことが多いです。小さいインスタンスの「最大10Gbps」は、クレジットが残っている間(通常5〜60分)だけ使えるバースト速度で、普段のベースライン速度はずっと低くなります。
グラフでは
上限で頭打ち · 毎秒のパケット数、allowance超過カウンター
確認箇所
ethtool -SのENAカウンターpps_allowance_exceeded・bw_in_allowance_exceeded・bw_out_allowance_exceeded・conntrack_allowance_exceededを短い間隔で集め、毎秒のパケット数と一緒に確認。CloudWatchエージェントでこれらのカウンターを送信し、アラートを設定することもできる
該当する場合
パケットロスが出た時刻にallowance超過カウンターが増え、毎秒のパケット数が一定の値から上がらない。サーバーのCPUには余裕がある
該当しない場合
超過カウンターが変わらなければこの原因ではない。1つのコアの%softが100%なら「NIC割り込みの単一コア集中」
確認手段
インフラのツールで確認(ゲームコード不要)
もっと詳しく
conntrack_allowance_exceededは、接続追跡テーブルがいっぱいになって新しい接続を破棄したケースです。テーブルには余裕があるのに、アイドル接続だけが追跡の期限切れで切れる場合は「クラウドのセキュリティグループによる接続追跡の期限切れ」の項目を参照してください。

出典

  1. Monitor network performance for ENA settings on your EC2 instance AWS
    インスタンスごとに帯域幅・PPS・接続追跡の上限があり、超えるとキューにためてから破棄、pps_allowance_exceeded・conntrack_allowance_exceededカウンター
  2. Amazon EC2 instance network bandwidth AWS
    16 vCPU以下のインスタンスの「最大N Gbps」はネットワークI/Oクレジットで使うバースト(通常5〜60分)、クレジットが尽きるとベースラインの帯域幅に戻る

あわせて読みたい原因

同じ層:L6 サーバーのネットワークカード

同じ症状(ワープ)を起こすほかの層の原因

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