MRSとMUNを用いたリアルタイムゲームサーバのインフラコスト予測 中嶋...
-
Upload
monobitengine-honjo -
Category
Engineering
-
view
1.580 -
download
0
Transcript of MRSとMUNを用いたリアルタイムゲームサーバのインフラコスト予測 中嶋...
MRSとMUNを用いたリアルタイムゲームサーバの
インフラコスト予測
2017年4月27日(株)モノビット 取締役CTO 中嶋謙互
https://github.com/kengonakajima
• MRS (Monobit Realtime Server)とは
• TCP/UDPソケットを用いた高速軽量なリアルタイムゲーム通信を実装するための、サーバおよびクライアント用のライブラリ
• MUN (Monobit Unity Network)とは
• MRSを用いて実装された、Unity用の、プログラミング作業をしなくてもマッチングやゲームオブジェクトの同期が簡単にできるアセット
MRS と MUN
• MUNを用いてリアルタイムゲームサーバを実装するときのインフラコスト予測(マシンと通信帯域)の方法
• HTTPサーバ側は含みません
本日の内容
自動計算ツール (完成版はMUNに添付予定)
自動計算ツールの使い方
• リアルタイム通信部分の設計作業をする時、条件をいろいろ変えながら最適な設計を探る
• IDCFクラウド様の実環境 (HighCPU L8)環境での測定値にもとづいて必要台数などを導出
計算する対象となるサーバー
Webサーバー
インターネット
リアルタイムサーバー
クライアント クライアント クライアント
ここのコスト
DBサーバー
・・・・・・
クライアント
master
resolver proxy
クライアント クライアント
proxyroomroom
MUNの1つのワールド(shard)
インターネット
1. アドレス解決
2. 部屋を検索
全参加者の入室状態を管理
全てのサーバのアドレスとポートを管理
masterの負荷分散
3. ゲームデータ同期
常時接続
一時的な接続
部屋
マシン構成の例
master
resolver
CPU/RAM小さめ
CPU/RAM多め
CPU多め RAM少なめ を複数
外部LAN
proxy proxy
CPU多め RAM少なめ を複数
room room
内部LAN 10.x.x.x
インターネット
• master, resolver は常に1プロセス
• 新規クライアントが参加するときだけ負荷がかかる
• proxy, room のみ複数化される
• roomはゲームのパケットの量に比例して負荷が上がる
• すべてシングルスレッドサーバで、負荷が上がるとCPU使用率が上がっていって、100%近くなるとタイムアウトが発生する
• 通信帯域は1プロセスあたり数百Mbps以上対応可能(ボトルネックにならないので無視できる)
• CPUに余力を残す設計をするのがポイント
MUNサーバ構成のポイント
• 同時プレイ人数
• 部屋あたり人数
• パケット送信頻度
• 平均データサイズ
• ボイスチャット使用者率
• ボイスチャット無音率
• ピーク負荷のならし率
ゲーム内容から仮定する条件を考えていく
• マシン1台あたりの
• vCPUまたはコアまたはスレッドの数
• RAM容量
• 月額費用
• 通信1GBあたりの
• 送信費用
• 受信費用
• 無料枠
利用するハードウェアの条件を明確にする
• 負荷テストの自動化
• プロセス数の自動増減機能
• マシン数の自動増減機能
MRS/MUN開発の次のステップ
MRS/MUN Webサイト
• MRS http://www.monobitengine.com/mrs/
• MUN http://www.monobitengine.com/mun/