【问题标题】:How much hosting RAM does a webRTC app require?webRTC 应用程序需要多少托管 RAM?
【发布时间】:2015-06-27 22:57:35
【问题描述】:

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

服务器几乎只是传递文本。没有注册,没有数据库,一切都在内存中。它跟踪在线用户列表(有多少在线用户)和已占用房间列表。 所以一些数字列表,它在用户之间传递文本,以便他们可以通过 webrtc 连接。

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

以及所有传递的东西,比如断开连接和连接。我需要一台可以快速完成这些工作的服务器,最好是免费服务器。我的意思是,这只是文本,所以应该没什么大不了的,对吧?但是我的应用程序是围绕将一个人与下一个连接的人联系起来的。所以,如果一大群人在同一秒左右连接,那么我需要一个可以处理到毫秒的快速托管服务器......这甚至会成为问题吗?

如果我只是将内存用于数字列表(没有数据库)并传递文本内容,我应该在服务器中寻找什么。

【问题讨论】:

  • 您可能更喜欢云解决方案,以便在需要时进行升级。一般来说,我不会担心。对我来说,这听起来不是问题。

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


【解决方案1】:

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

现在,让我们看看你需要什么。您可以通过将几个clients 连接到server 来进行非常粗略的估计,并查看它使用了多少RAM。如果这些clients 开始互相呼叫,检查RAM 的数量是否增加以及增加了多少。现在,对于 x clients,您的最小和最大数量为 RAM。我会用大约 10 个clients 来做这个测试。

现在您可以进行估算,计算RAM 对于您的预期用户群的最小值和最大值。从现在开始,它将变得越来越受欢迎,但我至少会将该数量翻倍,然后四舍五入到“有意义”的最接近的 RAM 数量(14.7GB 变为 16GB,28.32GB 变为 32GB 等...)

根据我自己对大约 1000-1500 个并发用户的 webrtc 的经验,我将补充一点,8GB 就足够了。但这实际上取决于您期望的用户数量。

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

【讨论】:

  • 我已经用node.js写了一个服务器,但我只是好奇如何在网络上部署它。
猜你喜欢
  • 2016-03-22
  • 1970-01-01
  • 2016-12-25
  • 2018-08-21
  • 2012-05-28
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多