我正在运行一个基于 PHP 的游戏,预计今年年底(2011 年)将有超过 4500 万会员,目前我们有 750 万,这个游戏正在 facebook 上运行,我迫切需要帮助获得这个游戏服务器尽可能高效和强大。
它是一个专用服务器
处理器制造商 Intel Model i7 920 频率 4x 2x 2.66 GHz NIC GigaEthernet RAM 12 GB 硬盘 4 x 1 TB
眼镜。
它安装了 apache、cPanel、phpMyAdmin、几个 apache mods 和 MySQL。
该游戏还为每位用户每秒运行 47 次 mysql 调用。
是否有任何替代上述方法可以更快,更有效等?
我不介意重新编码游戏以适应它,只要它最大化我们的游戏成员上限即可。
谢谢
另外,有没有办法告诉我们对玩家、数据库调用等的最大限制是多少?
再次感谢,希望大家帮帮忙:)
对您的软件和环境进行负载测试的最佳方法是将其或相同的系统置于人工负载之下。如果游戏可以编写脚本并让许多编写脚本的玩家从相邻的机器登录并玩游戏,慢慢增加人工玩家的数量,直到响应时间开始达到不可接受的水平。这将指示您可以在任何时候提供良好性能的最大用户数。
一旦环境处于高负载状态,请查看相关系统指标以查看瓶颈在哪里(通常一个组件在其他组件之前受到影响) - 如果有一种方法可以优化它并重复测试。首先要检查主要限制因素是磁盘 I/O、RAM 还是 CPU,然后配对正在发生的事情,看看罪魁祸首是否是您可以轻松优化的东西(也许您的代码的某些部分效率低下并且占用大量 CPU 时间(在这种情况下,对代码进行分析可能会提示可以优化的紧密循环),也许您会用完 RAM 并在 IO 或 CPU 本身成为主要问题之前开始交换(因此添加更多RAM 或减少每个进程所需的数量可能会有所帮助),也许数据库活动正在使 IO 带宽饱和,等等。
可能没有办法在值得付出努力的单台机器上优化主要瓶颈 - 那么您需要开始考虑使用多台机器(无论如何您应该为此制定计划,以防您的受欢迎程度增长速度超过预期或故障转移的目的(在一台物理服务器出现重大故障时让您的应用程序保持活动状态)。
如果没有一些分析,就很难给出比这更具体的答案,因为一个应用程序的性能指标可能与下一个有很大不同。
| 归档时间: |
|
| 查看次数: |
1179 次 |
| 最近记录: |