webRTC应用程序需要多少托管RAM?

时间:2015-04-21 01:02:07

标签: node.js deployment socket.io hosting webrtc

我将主持一个webrtc应用程序。所有服务器需要做的只是传递诸如房间号,候选冰,断开连接等消息,只是传递信令的所有消息。我正在使用socket.io和node.js.

服务器几乎只传递文本。没有注册,没有数据库,它都在内存中。它会跟踪在线用户列表(在线用户数量)以及所拍摄的房间列表。 所以有几个数字列表,它在用户之间传递文本,以便他们可以通过webrtc连接。

现在,显然当(如果)我收到大量流量时,列表可能会变得很大,例如每个列表中可能有10k-20k的5位数字(只有几个大的列表)。

所有这些传递,如断开和连接。我需要一台可以快速完成这项工作的服务器,最好是免费的服务器。我的意思是,它只是文字,所以它不应该是那么大的交易,对吧?但我的应用程序的结构是将一个人连接到下一个连接的人。所以,如果一大群人在同一秒内连接,那么我需要一个可以处理到毫秒级的快速托管服务器......这甚至会成为一个问题吗?

如果我只是在数字列表中使用内存(没有数据库),并且传递文本内容,那么我应该在服务器中查找到底是什么?

1 个答案:

答案 0 :(得分:1)

首先,这与webrtc本身没有任何关系。你基本上想要的是一个chat-server,一个从一个client向另一个发送数据的服务器 其次,server的类型与运行它所需的RAM数量无关。重要的是你将同时拥有多少clients。 (在某种程度上,即使没有game serversRAM显然会消耗更多clients 第三,更多RAM并不意味着更快的处理。也就是说,如果你没有完全使用可用的RAM,那么添加更多的胜利对你有好处。显然,当你超过可用的RAM时,事情开始变慢。 Read more about it here

现在,有了这些,让我们看看你需要什么。您可以将一些clientsserver相关联,然后查看它使用了多少RAM,从而做出非常粗略的估算。如果这些RAM开始相互呼叫以及它增加了多少,请检查clients的数量是否会增加。现在,x RAM的最小和最大金额为clients。我会用大约10 clients做这个测试。

现在您可以进行估算,计算预期用户群的最小值和最大值RAM。从现在开始,它将变得越来越偏好,但我至少会将这个数量加倍,然后向上舍入到最接近RAM的那个"有意义的" (14.7GB变为16GB,28.32GB变为32GB等......)

我将根据自己的webrtc经验添加大约1000-1500个并发用户,8GB就足够了。但它真的取决于您期望的用户数量。

在侧节点上,我非常推荐nodejs作为服务器。它非常易于使用,任何知道javascript的程序员(基本上任何程序员)都可以在一两天内在chat-server中创建nodejs。看看this open-source webrtc server in nodejs