私はPHP/MySQLでajax tic tac toeゲームを構築しています。 ゲームの前提は、あなたの友人とmygame.com/123のようなURLを共有でき、複数の同時ゲームをプレイできることです。PHP、MySQL、Memcache/Ajaxスケーリング問題
私が設定したのは、ユーザーがゲームボードのスペースを見ている間に、ファイル(reload.php)が3秒ごとに呼び出されているということです。このreload.phpはゲームボードを構築し、出力(html)は現在のゲームボードを置き換えます(つまり、自分のターンのゲームを表示します)。
最初はPHP/MySQLで完全に構築してキャッシュをゼロにしました。ある友人が私にmemcache(移動とIDマッチアップの保存)を介してすべての一時的な/クイックリード情報を試してから、この情報からゲームボードを構築するよう提案しました。
私の問題は、おおよそ30-40人のアクティブユーザーが約40-50のゲームを実行しているときに、両方のソリューションが壁に遭遇することです。
2ノードでVPS.netからVPSで実行されています。 (専用CPU:1.2GHz、RAM:752MB)
reload.phpの各呼び出しは、3つのselectクエリと2つのinsertクエリを呼び出します。引っ張られるデータのサイズはごくわずかです。最初の訪問のために、同じアクションがindex.php上でボードを構築するために起こります。
今裏話が行われていることを、私の質問は:
各ユーザーが自分のgameboardsを再構築するために3秒ごとに同じファイルをポーリングで、すべてのユーザーがインデックスの上に座っているということを、ボトルネックであるだろう。 PHPのAJAX呼び出しはHTML内で行われます。
もしそうなら、ゲームボードを構築するために指定されたファイルセット(reload1.php 2,3など)にユーザーの呼び出しを広め、適切なファイルにユーザーを誘導することが可能ですか?これは圧力を和らげますか?
長い説明があります。しかし、私は他に質問する必要はありませんでした。
ありがとうございました。
これはなぜデータベースに格納されているのですか?なぜmemcachedを使用しないのですか? –