- ベストアンサー
PHPでオンラインゲーム サーバーの限界について質問
今PHPによってオンラインゲームを作ろうとしていますが、ハード的にどのくらいの集中アクセスまで耐えれるかを知りたくて質問しました。長文ですがご協力お願いします。 動作は以下のような、60秒を1周期とする流れの繰り返しを想定しています。(ちなみにゲームのジャンルはやや動的なオンライン対戦シミュレーションです)。またこの周期は全プレイヤーが同期するものとします。 (1):0秒 書き込み専用タイム開始 ↓ (2):40秒 書込み専用タイム終了、読み込み専用タイム開始 ↓ (3):60秒 書き込み専用タイム開始 (1)から(2)の間では、クライアントからサーバーへの書き込みのみが行われます。クライアントが書き込むタイミングはおよそ均等に分散するものとします。100人の参加者がいれば、40秒÷100人で、0.4秒毎に1回の書き込みとなります。1回の書き込みで書き込む容量は100~400バイトくらい。また、全員が1つのファイルに書き込むわけではなく、いくつかファイルがあり、自分が担当しているファイルにのみ書き込みます。 まず1つ目の質問ですが、このように、いくつかのファイルに分けて書き込むことで、サーバーの処理的に何かメリットはあるのでしょうか?( 込み合いが解消され早く書き込めたりするのでしょうか?) 2つ目の質問として、1回の書き込み量が100~400バイトだったとして、1秒間にどのくらいの数のアクセス(書き込み)に耐えることができるのでしょうか?(実際に書き込む先はmySQLでもいい) 使用するサーバーはレンタルサーバーで、一ヶ月18000円以下程度の能力のものとします。 3つ目の質問は読み込みの集中アクセスについてです。1回の読み込み量が100~400バイトだったとして、1秒間にどのくらいの数のアクセス(読み込み)に耐えることができるのでしょうか?(mySQLを使用するかもしれない) 使用するサーバーは質問2と同様のものとします。 以上です。お読みいただきありがとうございました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
やってみないと分からないと言いたいところですが。 > いくつかのファイルに分けて書き込むことで、サーバーの処理的に何かメリットはあるのでしょうか? 全員が同時に同じファイルに書き込むよりは、ロック中にぶつかる確率が低くなりますね。 ただ、同じディレクトリにやたら大量のファイルを置く場合は、 アクセス時間が長くなるので、頭文字で別ディレクトリに分けるなど気をつける必要があります。
その他の回答 (1)
>どのくらいの集中アクセスまで耐えれるか 一般に負荷試験と呼ばれるものだと思う。 そこら辺のオンラインゲームを見れば判るけど「オープンβテスト」っていうのをやっているよね? なんでだと思う? その答えが負荷試験のやりかた。 タスクをスプール式にしてスプーラの量によって「混雑」として弾く、とかの方が適切かも?
お礼
あーβテストってそういう目的だったんですか!?知らなかった ってことはβテストの実施もこの質問の解決策のひとつになりそうです。 協力ありがとうございました。
お礼
協力してくださってありがとうございます。 最後のディレクトリのことは全く知りませんでした。というか、現にそうしていたので危ないところでした・・・