如何在游戏发布前检查游戏服务器是否可以处理客户端?


13

我们正在开发具有多人支持的基于iOS的游戏。到目前为止,一切似乎都很好,但是现在我们要确定服务器是否可以处理10000个客户端。知道如何确保服务器能够承受这么多的流量吗?

Answers:


15

对于流量负载测试,有很多工具,但是您还需要测试游戏服务器特有的其他功能,因为网络流量只是等式的一部分-处理器利用率和持续数据库查询是立刻想到了另外两个,它们是您要衡量的重要因素(毫无疑问,还有其他因素,您必须根据对游戏服务器工作方式的了解来确定这些因素)。

做到这一点的一种非常好的方法可能是编写一个“ 游戏玩家模拟 ”客户端程序,并在多台计算机上运行它的多个实例。不利的一面是,这可能需要使用大量的计算机,但是一些本地大学可能拥有大型计算机实验室,您可以在这些实验室上运行这些计算机(教授可能会对您的测试结果感兴趣,因为大学教授往往对这些结果非常好奇好的研究)。

您的客户可能不需要像播放器那样复杂,但是您可能需要确保它能够完成以下工作(它不一定要非常聪明,只要它可以比醉酒的软件开发人员的功能稍微强一点,确实不应该自己开车回家,所以您可能还想以一种特殊的方式标记角色,以便他们可以做一些愚蠢的事情,例如穿墙穿墙,预算有限,可以从游戏中的商人那里随机购买商品,无休止的弹药的供应,等等:

  • 随机发送随机聊天文本
  • 世界各地随机导航(但往往会靠近主要城市)
  • 当其他玩家在附近时,随机选择向随机方向发射武器
  • 从商人那里购买/出售随机商品,偶尔在世界各地倾销商品
  • 随意点燃物体(或引起其他形式的局部破坏)
  • 使成群的野生动物心烦意乱,追赶他们进入繁忙的城镇,然后随机决定是否注销(如果选择注销,也许那些野生动物将开始攻击镇上的其他动物?)
  • 治疗受伤的球员
  • 在拥挤的地方引发随机选择的魔法咒语
  • 烹饪未加工的食物,加工未加工的木材和其他材料(例如来自采矿的材料)等。
  • ...玩家可能会定期执行的其他简单任务

如果您估计一次将有9,000个玩家,请尝试使用至少3倍的数字进行测试,以便您知道服务器如何处理27,000个模拟忙碌玩家的负载(很多玩家倾向于闲置,尤其是社交类型)。

另外(这非常重要),如果您要这样做,请以常规角色登录,并记录所有这些玩弄愚蠢事情的电脑玩家的视频,并在此处与我们分享该视频,这样我们就可以笑(我想如果您能找到合适的游戏场景,那么“ 醉酒的谷仓舞 ”可能是这部电影的好标题)!;-D


2
非常感谢您的回答,我想我们必须使用这些模拟播放器进行测试,并认为最终我们将使用一种云服务来运行客户端。只是作为一个旁注,它是一个多人游戏,但玩家只能在世界中导航并互相狩猎,因此您提到的这些任务几乎都不会在示例客户端中实现!我希望有同样问题的下一个人即将发布生活模拟游戏来测试所有这些东西!
Ali1S232 2011年

好吧,只需测试适用于您游戏的内容(不客气!)。我对您的游戏功能一无所知,因此我尝试包含许多可能性,希望能将其涵盖在内。
兰道夫·理查森2011年

有些游戏也从Beta的早期发布开始,但这可能是一个艰难的决定,因为有一个令人讨厌的因素,玩家可能会在Beta阶段发现自己不喜欢该游戏,然后再也没有尝试过再次(即使他们遇到的问题得到解决)。
兰道夫·理查森2011年

2
-1,不切实际的答案。女性游戏开发商不存在。(Jks,+ 1,同意在视觉上共享测试结果)。
deceleratedcaviar

3
我还要补充一点,我对手持式控制台上的MMO做到了这一点。对于测试服务器在压力下的应对方式,模拟播放器是有史以来最好的。我们还举行了封闭的Beta测试(最多可容纳500人),我使用生成的关于Beta测试人员行为的统计信息来调整模拟玩家的行为,使其尽我所能地像真实玩家一样。测试版结束后,我放宽了40,000个模拟播放器,以对服务器造成破坏。很多混乱!
Trevor Powell

0

这是一个古老问题的答案,希望对那些被搜索引擎赶到这里的人有用。 Netgend的性能测试平台可以仿真50,000个VUser,并且可以进行所有灵活的客户端仿真。

查看博客,特别是

  • 联网变得容易
  • 从服务器响应中提取字段
  • 使用二进制数据进行性能测试

请注意,消息处理不限于http消息,它适用于所有消息。

希望对您有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.