• ベストアンサー

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と同様のものとします。 以上です。お読みいただきありがとうございました。

  • PHP
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

やってみないと分からないと言いたいところですが。 > いくつかのファイルに分けて書き込むことで、サーバーの処理的に何かメリットはあるのでしょうか? 全員が同時に同じファイルに書き込むよりは、ロック中にぶつかる確率が低くなりますね。 ただ、同じディレクトリにやたら大量のファイルを置く場合は、 アクセス時間が長くなるので、頭文字で別ディレクトリに分けるなど気をつける必要があります。

tenketu
質問者

お礼

協力してくださってありがとうございます。 最後のディレクトリのことは全く知りませんでした。というか、現にそうしていたので危ないところでした・・・

その他の回答 (1)

noname#39970
noname#39970
回答No.2

>どのくらいの集中アクセスまで耐えれるか 一般に負荷試験と呼ばれるものだと思う。 そこら辺のオンラインゲームを見れば判るけど「オープンβテスト」っていうのをやっているよね? なんでだと思う? その答えが負荷試験のやりかた。 タスクをスプール式にしてスプーラの量によって「混雑」として弾く、とかの方が適切かも?

tenketu
質問者

お礼

あーβテストってそういう目的だったんですか!?知らなかった ってことはβテストの実施もこの質問の解決策のひとつになりそうです。 協力ありがとうございました。

関連するQ&A

  • Windows2003サーバー内のMySQLを開くと遅い?

    はじめまして。 Windows2003サーバーにMySQLをインストールしてクライアントPCからOPENをかけると MySQLサーバーのオープニングメッセージやDNSの認証等で4秒間返ってきません 同じようにXPにMySQLサーバーをインストールして確認しましたが1秒もかかりませんでした。 (1)MySQLの設定に問題 (2)Windows2003サーバー設定に問題 切り分けや当りをつけられずに困っています。

  • ファイルサーバーに書き込めません

    全てWindows XP Pro SP3 PC1~PC4:クライアント、PC5:ファイルサーバー Excel2003でタイムスタンプを前日にしてPC1のファイルを作成したあと、すぐに元に 戻したのですが、その後ファイルサーバーのファイルを上書き保存できなくなりました。  ●エラー内容:読み込み専用です。ファイル名を変えて保存してください。  ファイル名を新しくしてもファイルサーバーには書き込めませんでした。 いろいろファイルサーバー機、クライアント機を調べましたが、どこをチェックすれば よいのか分からなくなりました。 非常に困っています。教えてください。

  • MySQLやPorstgresなどのサーバー型DB

    MySQLやPorstgresなどのサーバー型DBMS こんにちは。Accessを使っているのですが、今後C/Sでサーバー側にMySQLなどをインストールしようと考えています。 そこで1点わからないので教えてください。 Accessはファイルなので、使いたいときはそのファイルを開けばいいのはわかります。 ネットワーク内のサーバーにMYSQLをインストールしてクライアントから接続する場合。 何をもとに、どうやってサーバーにクライアントは接続しにいくのでしょうか? IPアドレスでサーバーを特定すると思うので、クライアントではサーバーのIPが必要なのはわかります。 それ以外にmysqlのユーザーIDとパスワードは必要なのはわかりますが、MYSQL自体に接続するにはどうしたらいいのでしょうか? できれば、VBで接続しようと考えています。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • Mysql+PHP+Apache/サーバークライアント環境での

    Mysql+PHP+ApacheでWebからデータベースを扱う勉強をはじめました。この3つを1台のPCにインストールして、Webサーバーをローカルに立てて動作確認をしてきました。これをサーバー/クライアント環境で行う場合のことでお尋ねします。 ★行いたいこと Webサーバーにデータ(HTML、PHP、データベース)を保存しておいて、クライアントからそのデータを操作して、Webページの開発を行いたい。 質問(1) Webサーバーにインストールするのは、Mysql+PHP+Apache、クライアントにインストールするのは、Mysqlでよろしいのか。 質問(2)クライアントのMysqlを起動して、サーバーのMysqlのデータを扱うという考え方でよいのか 質問(3)クライアントのMysql内のデータとサーバーのMysqlのデータの関係はどのようになるのか。 とてもお恥ずかしいですが、宜しくお願いします。

  • クライアントからサーバのDBに接続できない

    いつも参考にさせていただいております。 【質問内容】 サーバにMySQLをインストールして、そのDBにクライアントからAccessなどをフロントエンドとして使いたいと思っています。 しかしODBCの接続テストでエラーになってしまいます。 知識不足は否めませんが、何か指摘がございましたらお願いします。 【環境】 ■サーバ側 OS:Windows2000Server DBMS:MySQL4.0.21 ■クライアント OS:WindowsXPSP2 ODBC:MySQL ODBC 3.51.04

    • ベストアンサー
    • MySQL
  • 集中アクセス時のサーバーの動作速度はユーザーの数によっても異なるの?

    集中アクセス時におけるサーバーの動作速度はユーザーの数によっても異なってくるものでしょうか? 仮に100KBの書き込みを10秒間の間行うとして、1000人のユーザがそれぞれ別のファイルに0.1KBずつ書き込む(別々のファイルなので同時書き込みによる破壊は生じないものとします)のと、一人のユーザが1つのファイルに100KB書き込むのとでは速度が異なってくるものでしょうか? もし異なるのであれば、どの程度の差があって、その原因はなんなのでしょうか? また、読み込みについても同様の疑問があります。 読み込むデータの合計容量が同じでも、何人のユーザが読み込むかで動作速度や負荷は変わってくるのでしょうか?

  • サーバを再起動→サーバへのショートカットが開けない

    パソコンのショートカットについて質問です。 サーバー上のフォルダやファイルのショートカットを、クライアントPCのデスクトップに貼りつけています。 当然ですが、デスクトップのショートカットを開けば、目的のフォルダやファイルが直接開きます。 ここでサーバーを再起動すると、ショートカットで開こうとしても、フォルダやファイルが見つからず、数十分経過しても開けません。 サーバーが完全に起動し、クライアントPCから[\\IP]等でサーバーの適当なディレクトリが開ける状態でもです。 ただ、前記のように一旦サーバーにアクセスしたり、クライアントPCを再起動すると、ショートカットからファイルが開けるようになります。 これは、ネットワークやコンピュータのどういった仕組みからでしょうか。 ■環境 サーバーはWindows Server 2003で、ファイルサーバーとして使用しています。 クライアントPCはWindows 7 Professionalです。 ネットワークドライブは割り当てていません。 サーバーへのアクセスにユーザー認証等はしていません。 サーバーとクライアントPCともに固定IPです。 ネットワークの配線図だけでいえば、サーバーとクライアントPCの間には非管理型のL2スイッチがあるだけです。 他のサーバやスイッチ類は、クライアントPCから見てL2スイッチの先にあります。

  • サーブレットか、phpか?

    ご質問させて頂きます。 現在、サーブレットでhtmlからテキストファイルに落として、ACCESS2000にデータを吸い上げて、ACCESS上で集計などのデータ管理を行うというシステムがあります。 このたび、データ管理など全てサーバ上で構築することになりました。 ACCESSの部分をmysqlに移行しようと思ったのですが、その場合、mysql+サーブレットになります。しかし調べたところ、mysql+phpというのが多いのです。 mysql+phpで構築した方が良いのでしょうか?

    • ベストアンサー
    • Java
  • Windows Server2003でMicrosoft Accessを使えなくて困ってます

    サーバー管理は初心者です。よろしくお願いいたします。 今までWindowsw NTserverを使っていたでのすが、最近Windows Server2003を導入しました。 そこで、Microsoft Accessを使えなくて困ってますので、アドバイスをいただけると助かります。 Accessのデータファイルをサーバーに置き、クライアント端末にあるシステムファイルでアクセスのデータを操作したいのですが、「読み取り専用です」というようなメッセージが出てしまい、データの編集が出来ない状態になってます。 ちなみに、サーバーにはAccessはインストールされてません。これが原因でしょうか? エクセルやテキストのデータを試しにサーバーに保存し、クライアント端末側から操作をすることは出来てます。 何から確認していけば良いか、アドバイスをいただけると助かります。 よろしくお願いいたします。

  • 海外サーバを試したいので、pingを打って調べたのですが。

    海外の専用サーバを使ってみようと思い pingを打ってTTLとtimeを調べたのですが、 海外のサーバは概してtime100を超えてしまいます。 fc2.comでも100を超えるので海外サーバであればこのような値が通常なのかと理解しました。 そこで質問なんですが、pingを打ってtimeが100を超えるような状況というのは具体的にどれぐらい遅くなるのでしょうか。 ちなみに国内のサーバを調べたところ さくら 20秒台 ハッスル 20秒台 ということで20秒以内が国内の平均のようでした。 ざっとみつもって5倍遅いことのになるのでしょうか。 体感できる方法があればよいのですが、皆様のお知恵を貸してください。 どうぞよろしくお願いいたします。

専門家に質問してみよう