最有效的方式来设置游戏服务器

我正在运行一个基于PHP的游戏,预计今年年底有超过四千五百万名会员(2011年)。目前我们有750万,这个游戏正在Facebook上运行,我迫切需要帮助这个游戏服务器高效和尽可能强大。

它是一个专用的服务器

处理器制造商Intel型号i7 920频率4x 2x 2.66 GHz NIC千兆以太网RAM 12 GB硬盘4 x 1 TB

眼镜。

它安装了apache,cPanel,phpMyAdmin,几个apache mods和MySQL。

游戏每个用户每秒运行47次mysql调用。

有没有其他办法可以更快,更有效率等?

我不介意重新编码游戏,以适应它,只要它最大化我们的游戏成员的上限。

谢谢

另外,有没有办法告诉我们对玩家,数据库调用等的最大限制是什么?

再次感谢你,希望你们能帮助:)

加载testing你的软件和环境的最好方法就是把它或者一个相同的系统放在人造的地方。 如果游戏可以脚本化,并且有许多脚本玩家从邻居机器login和玩,慢慢地增加人工玩家的数量,直到响应时间开始朝着不可接受的水平前进。 这将显示您可以在任何时候提供良好性能的最大用户数。

一旦您的环境处于高负载状态,请观察相关的系统度量标准,以查看瓶颈的位置(通常是其中一个组件受到影响) – 如果有办法优化这一点并重复testing。 首先要检查的是,主要的限制因素是磁盘I / O,RAM还是CPU,然后将发生的事情配对,看看罪魁祸首是否可以轻松优化(可能某些部分代码效率低下,咀嚼大量的CPU时间(在这种情况下,对代码进行分析可能意味着可以优化的紧密循环),也许在IO或CPU成为主要问题之前,您可能会耗尽内存并开始交换(因此添加更多RAM或减less每个进程所需的数量可能会有所帮助),也许数据库活动正在饱和IO带宽,等等。

有可能没有办法来优化单个机器上的主要瓶颈是值得的 – 那么你需要开始考虑使用多台机器(无论如何,你应该为此做出计划,以防万一你的受欢迎程度比预期的更快,或者为了故障切换的目的(如果一台物理服务器发生严重故障,则使您的应用程序保持活动状态)。

如果没有进行分析,就很难给出比这更具体的答案,因为一个应用程序的性能指标可能与下一个应用程序有很大的不同。

该硬件上每用户每秒47个电话不会工作。 点。 这是一个太高的数字开始。 看起来像低效的编码/效率低下的循环/太细粒度的SQL。 我会在一个有限的程度上看到一个实时的游戏,但不是一个浏览器游戏。 我build议你确定那些SQL语句来自哪里并find一个替代scheme。

其次,如果是这样的话,那么你们都有一些小的内存和可怜的慢盘,这两者都是可扩展性的限制因素。