你有没有遇到过这么容易开发的东西,但是停下来想一想你项目的服务器需求?这是我的情况。
我想与一个游戏网站竞争,他们有多人Flash游戏,如扑克,拉米,步步高和其他纸牌游戏,总共8场比赛。每场比赛他们都有房间和桌子。
我将使用带有套接字的Silverlight。我已经设法使用WinForms(Silverlight中的Client Socket应用程序)开发策略服务器,Socket Server应用程序。我拥有一个VPS用于测试,因此开发我想要的东西没有问题,问题是如何根据以下要求计算服务器要求,RAM,带宽,互联网速度:
我只是想知道如何处理以下情况:如果1000个用户通过Socket连接连接到一个满桌子的房间而一个用户离开一个桌子,则必须更新所有1000个用户并且UI应该反映这些变化。假设我将通过向每个用户发送一个100字节的小消息来更新客户端,这将占用100个字节* 1000个用户= 100 kb,这仅用于1个UI更改,1个游戏和1个房间,而不是计算我所有的其他游戏和房间。此外,向客户端发送字节的1000次迭代应该非常耗时。
我是开发人员,但在这些情况下没有经验。请指教。数字会很棒。
答案 0 :(得分:4)
在您构建并优化实际应用程序之前,您无法预测某些性能级别所需的硬件。
您必须先完成应用程序。然后,您可以在负载下测量它们的性能。然后你可以决定在什么级别的表现上花多少钱。
答案 1 :(得分:2)
我能为您提供的最佳答案是运行压力测试并查看单个服务器可以支持多少负载。在运行这些测试时,监视内存,IO,CPU和磁盘活动(如果相关)以了解哪个资源首先耗尽。
我们在亚马逊的EC2云基础架构上部署我们的应用程序。这让我们可以轻松(在几分钟内)根据需要添加或删除容量。也许值得考虑你的情况。
答案 2 :(得分:1)
始终遵循这两条规则
“程序优化的第一条规则:不要这样做。程序优化的第二条规则(仅限专家!):不要这样做。“ - Michael A. Jackson
答案 3 :(得分:0)
首先,您应该多考虑如何以及何时向哪些客户发送哪些信息。并非每个客户都需要了解每个表格的变化。
客户需要的信息非常多,您需要决定何时/如何传输。您还应该将信息打包成有意义的数据包。在桌子上发生的事情只对那张桌子很有意思。
此外,您需要对应用程序进行概要分析,以确保您知道它所消耗的资源。卡片游戏不应该吃掉这么多的资源。但重要的是FIRST构建它,当你遇到瓶颈时,请尝试修复它。
答案 4 :(得分:0)
此时很难猜测这些事情。
从务实的角度来看,您最终可能希望研究a)云托管类型的服务,为您提供更好的带宽价格扩展,或者b)一个非常有经验的全方位服务托管公司,可以帮助您计算您的需求根据以往的经验。
免责声明:我为Rackspace Hosting工作,提供上述两种方法。