パラメーターの決定¶
Strix Cloudには、ゲームに応じて値を調整するパラメーターがいくつかあります。これらはアプリケーションダッシュボードから値を設定できます。
ゲーム開発の初期には、Type 0インスタンス1台でマスターサーバーとルームサーバーを兼用する構成で十分なことが多いでしょう。また、各サーバーには値を設定できるパラメーターがありますが、これらのパラメーターは全てデフォルト値のままにしておくことをお勧めします。大抵のゲームでは、デフォルト値でうまく動作するはずです。
ゲーム開発がある程度進み中核となるオンライン機能が動作するようになった時点で、負荷テストを行ってサーバーで発生する負荷を把握することをお勧めします。サーバー側の負荷はアプリケーションダッシュボードのサーバー数画面と統計画面で確認できます。
負荷テストで使用したCCU(同時接続数)と実際のサービスで想定するCCUから、実際のサービス運用に必要なサーバー数やインスタンスタイプを見積もります。
ルームサーバーの負荷については、ルームサーバーのインスタンス数を増減するか、インスタンスタイプを変更することで対応します。この際、[最大ルーム数] や [最大ルーム参加可能人数] を調整して、各ルームサーバーの負荷が適切になるようにします。
なお、1つのクラスターを構成するルームサーバーの台数には上限を設けていません。
ルームサーバーの構成 (インスタンスタイプや台数) を変えずにゲームクライアント側の対応でサーバーの負荷を下げるためには、クライアント1台当たりの秒間メッセージ数を求めると便利です。この値は統計画面で、[期間] を [直近3時間]、[間隔] を [1分] として [送信メッセージ数] のグラフを表示し、そのピーク値を用いて以下の式で求めることができます。
クライアント1台当たりの秒間メッセージ数 = (送信メッセージ数 ÷ 60) ÷ (CCU × CCU)
この値を参考にしながら、SDKのStrixReplicatorコンポーネントのプロパティの調整や、同期に用いる機能の見直しを行ってメッセージ数を減らします。
注釈
大抵のゲームでは、負荷が問題になるのは同期と複製のためのメッセージです。これらのメッセージに関する動作は通常、 ルームサーバーが1台のクライアントからのメッセージを受信すると、それを全クライアントに向けて再送信することになります。そのため、上の式では、CCU で割るのではなく (CCU × CCU) で割って、クライアント1台が送信するメッセージ数を求めています。
もしもマスターサーバーの負荷が高すぎる場合には、1つのクラスター内ではマスターサーバーの台数を増やすことはできないため、以下を試してください。
マスターサーバーがルームサーバーを兼ねている場合には、ルームサーバーを兼ねるのをやめる。
インスタンスタイプをより大きいものに変更する。
それでもマスターサーバーの負荷が高すぎる場合には、クラスターの分割を検討してください。