ゲームラグ白書 › 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は、接続追跡テーブルがいっぱいになって新しい接続を破棄したケースです。テーブルには余裕があるのに、アイドル接続だけが追跡の期限切れで切れる場合は「クラウドのセキュリティグループによる接続追跡の期限切れ」の項目を参照してください。
出典
- Monitor network performance for ENA settings on your EC2 instance AWS
インスタンスごとに帯域幅・PPS・接続追跡の上限があり、超えるとキューにためてから破棄、pps_allowance_exceeded・conntrack_allowance_exceededカウンター - Amazon EC2 instance network bandwidth AWS
16 vCPU以下のインスタンスの「最大N Gbps」はネットワークI/Oクレジットで使うバースト(通常5〜60分)、クレジットが尽きるとベースラインの帯域幅に戻る
あわせて読みたい原因
同じ層:L6 サーバーのネットワークカード
同じ症状(ワープ)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る