2009-09-18 34 views
2

您是否曾经遇到过如此容易开发的事情,但停下来想一想您项目的服务器需求?这是我的情况。

我想与一个游戏网站竞争,他们有多人Flash游戏,如扑克,拉米,步步高和其他纸牌游戏,总共8场比赛。对于每场比赛他们有房间和桌子。

我将使用Silverlight和套接字。我已经设法开发策略服务器,即使用WinForms(Silverlight中的客户端套接字应用程序)的套接字服务器应用程序。我自己的测试车辆定位系统,所以在开发我想要的东西没有问题,问题是如何计算服务器的要求,内存,带宽,基于以下要求网速根据编程规范计算服务器要求

  1. 服务器应支持24.000用户/天或1000用户/小时
  2. 每个游戏房间应该有它自己的表,用户可以在玩
  3. 用户不应该失去的分数和游戏速度要快于一般

我只是不知道如何到h还有以下情况:如果1000个用户通过Socket连接连接到一个满是表格的房间,一个用户离开一个表格,则所有1000个用户都必须更新并且UI应该反映这些更改。假设我将通过向每个用户发送一个100字节的小消息来更新客户端,这将消耗100个字节* 1000个用户= 100 kb,并且这仅用于1个UI更改,1个游戏和1个房间,而不是计算我所有的其他游戏和房间。向客户端发送字节的1000次迭代也应该非常耗时。

我是一名开发人员,但在这些情况下没有经验。请指教。数字会很好。

+0

为什么你需要1个用户离开的100个字节的消息?你可以1)分配所有消息的端口,所以如果你收到端口5552上的任何消息,你就会知道它的一个用户离开。 msg只会是离开用户的id/ip.address。 2)使用压缩或加密技术使消息10-25字节? – 2009-09-18 20:00:17

+0

先生。点击upvote,这是关于游戏和桌子,如雅虎网络游戏,有房间和桌子,你可以在网站上玩。 imgine你可以在一页中看到所有的表格。现在如果有人离开了一张桌子,你需要通过从服务器向所有客户端发送字节来更新所有客户端。 – 2009-09-18 20:05:49

回答

2

我可以为您提供的最佳答案是运行压力测试并查看单个服务器可支持多少负载。在运行这些测试时,监视内存,IO,CPU和磁盘活动(如果相关),以便首先了解哪些资源将耗尽。

我们在亚马逊的EC2云基础架构上部署我们的应用程序。这可以让我们轻松(在几分钟内)根据需要添加或删除容量。也许值得考虑一下你的情况。

4

在您构建并优化实际应用程序之前,您无法预测某些性能级别所需的硬件。

您必须先完成应用程序。然后你可以衡量他们在负载下的表现。然后,您可以决定在多大程度的表现上花费多少钱。

+0

完全同意......并且说实话,这些问题通常比解决人们真正想玩的有趣游戏的问题更容易解决! – dicroce 2009-09-18 20:02:57

1

总是遵循这两个规则

“程序优化的第一条规则:不要这样做。程序优化的第二条规则(仅针​​对专家!):不要这样做。“ - Michael A. Jackson

0

首先,您应该更多地考虑如何以及何时向哪些客户端发送什么信息。并非每个客户都需要了解每个表格的变化。

只有客户需要的信息太多,您需要决定何时/如何传输。你也应该把信息打包成有意义的数据包。桌子上发生的事情只对那张桌子很有意思。

此外,您还需要对应用程序进行配置,以确保知道它消耗的资源。卡牌游戏不应该吃掉这么多资源。但重要的一点是先建立它,当你遇到瓶颈时,试着修复它。

0

在这一点上很难猜到这些事情。

从实用的角度来看,您可能最终希望研究a)云托管类型的服务,以便为您带来更好的带宽价格调整,或者b)经验丰富的全方位服务托管公司,可以帮助您计算您的需要根据以前的经验。

免责声明:我为Rackspace Hosting工作,它提供了上述两者。