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

ゲームラグ白書 › L13 サーバー構成と運用

補助サーバーの障害 Auxiliary service outage

原因ID in-subservice · 主担当 ゲーム開発チーム・サーバー開発 · 副担当 インフラチーム・サーバーインフラ

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

チャット・パーティ・オークションのように、ゲームサーバーとは別に動くサーバーで障害が起きると、その機能だけが動かなくなります。

なぜ 機能専用サーバーが遅くなるか落ちる → すると その機能のリクエストだけ応答なし → 画面では チャットができない、パーティ招待に反応なし、取引所が無限ロード(戦闘は正常)

症状
不発・ロールバック, 接続不可・無限ロード
要因
ストール, パケットロス
誰に起きるか
特定の機能だけ
いつ
ときどきランダムに, 人が集中したとき
担当
主担当 ゲーム開発チーム・サーバー開発 · 副担当 インフラチーム・サーバーインフラ
ゲーム開発チームの対応
失敗してもゲームは続けられる設計、機能ごとの状態表示、複数の機能を中央サーバー1台に集めない。
インフラチームの対応
補助サーバーごとのヘルスチェック・アラート、冗長化と自動再起動。
グラフでは
接続が一斉に切れる · 機能ごとのリクエスト成功率、補助サーバーの接続数・ヘルスチェック
確認箇所
チャット・パーティ・オークションなど補助サーバーごとのヘルスチェック・プロセス状態と接続数、機能ごとのリクエスト成功率・応答時間。ロードバランサーの後ろならターゲットグループのUnHealthyHostCount
該当する場合
報告された機能を担当するサーバーだけがヘルスチェック失敗や接続数の急落を示し、ゲームサーバーのティックと戦闘は正常
該当しない場合
複数の機能が一斉に止まったなら、それらの機能をまとめて中継する中央サーバーかカスケード障害側
確認手段
インフラのツールで確認(ゲームコード不要)
もっと詳しく
パーティ・ギルド・ささやき(ウィスパー)・サーバー間移動を1台の中央サーバー(ワールドサーバー・マネージャーサーバー)がすべて中継する構成では、そのサーバー1台が遅くなるだけで複数の機能が一斉に止まります。

出典

  1. Bulkhead Pattern Microsoft Azure
    コンポーネントをプールごとに隔離すれば、1つが失敗しても残りは動き続け、障害が広がらない
  2. REL05-BP01 Implement graceful degradation to transform applicable hard dependencies into soft dependencies AWS
    AWS Well-Architected。依存先が障害中でも、中核機能は少し古いデータや代替データで動き続けるように設計
  3. CloudWatch metrics for your Network Load Balancer AWS
    UnHealthyHostCount:ヘルスチェックで異常と判定されたターゲットの数

あわせて読みたい原因

同じ層:L13 サーバー構成と運用

同じ症状(不発・ロールバック)を起こすほかの層の原因

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