ゲームラグ白書 › L13 サーバー構成と運用
補助サーバーの障害 Auxiliary service outage
原因ID in-subservice · 主担当 ゲーム開発チーム・サーバー開発 · 副担当 インフラチーム・サーバーインフラ
図と実験のあるメインページでこのカードを開く →
チャット・パーティ・オークションのように、ゲームサーバーとは別に動くサーバーで障害が起きると、その機能だけが動かなくなります。
なぜ 機能専用サーバーが遅くなるか落ちる → すると その機能のリクエストだけ応答なし → 画面では チャットができない、パーティ招待に反応なし、取引所が無限ロード(戦闘は正常)
- 症状
- 不発・ロールバック, 接続不可・無限ロード
- 要因
- ストール, パケットロス
- 誰に起きるか
- 特定の機能だけ
- いつ
- ときどきランダムに, 人が集中したとき
- 担当
- 主担当 ゲーム開発チーム・サーバー開発 · 副担当 インフラチーム・サーバーインフラ
- ゲーム開発チームの対応
- 失敗してもゲームは続けられる設計、機能ごとの状態表示、複数の機能を中央サーバー1台に集めない。
- インフラチームの対応
- 補助サーバーごとのヘルスチェック・アラート、冗長化と自動再起動。
- グラフでは
- 接続が一斉に切れる · 機能ごとのリクエスト成功率、補助サーバーの接続数・ヘルスチェック
- 確認箇所
- チャット・パーティ・オークションなど補助サーバーごとのヘルスチェック・プロセス状態と接続数、機能ごとのリクエスト成功率・応答時間。ロードバランサーの後ろならターゲットグループのUnHealthyHostCount
- 該当する場合
- 報告された機能を担当するサーバーだけがヘルスチェック失敗や接続数の急落を示し、ゲームサーバーのティックと戦闘は正常
- 該当しない場合
- 複数の機能が一斉に止まったなら、それらの機能をまとめて中継する中央サーバーかカスケード障害側
- 確認手段
- インフラのツールで確認(ゲームコード不要)
- もっと詳しく
- パーティ・ギルド・ささやき(ウィスパー)・サーバー間移動を1台の中央サーバー(ワールドサーバー・マネージャーサーバー)がすべて中継する構成では、そのサーバー1台が遅くなるだけで複数の機能が一斉に止まります。
出典
- Bulkhead Pattern Microsoft Azure
コンポーネントをプールごとに隔離すれば、1つが失敗しても残りは動き続け、障害が広がらない - REL05-BP01 Implement graceful degradation to transform applicable hard dependencies into soft dependencies AWS
AWS Well-Architected。依存先が障害中でも、中核機能は少し古いデータや代替データで動き続けるように設計 - CloudWatch metrics for your Network Load Balancer AWS
UnHealthyHostCount:ヘルスチェックで異常と判定されたターゲットの数
あわせて読みたい原因
同じ層:L13 サーバー構成と運用
同じ症状(不発・ロールバック)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る