很多同时连接

时间:2011-11-22 17:03:20

标签: javascript node.js scalability websocket

我正在开发聊天应用程序。底层服务器使用Node.js,客户端/服务器通信通过WebSockets。

所以问题是:这样的服务器可以处理多少个同时连接(没有可见的滞后)?当然大约和假设服务器是非常强大的机器。我知道这不是一个容易回答的问题,但我只想要一些想法,一些近似值......或者至少是上限和下限。当然我会做一些实际测试,但理论可能对我有所帮助。

此外,我还有另一个与第一个相关的问题:是否可以将Node.js应用程序拆分为多台计算机?请记住,大多数数据都保存在机器内存而不是数据库中。

等待回复。 :)

2 个答案:

答案 0 :(得分:1)

您需要确保在epoll / kqueue之上运行node.js并调整操作系统以获得高TCP连接数。

以下是基于Autobahn WebSockets的发布/订阅系统的几个测量数字:

  • 180k并发,活动的WebSocket连接
  • 12k / s调度pubsub消息
  • 4k / s WebSocket开启握手
  • < 8kB / WebSocket连接

这是在配置有2个内核和2GB RAM的FreeBSD i386虚拟机上。

Autobahn WebSockets基于Python / Twisted并在kqueue反应器上运行。

答案 1 :(得分:0)

我做了simple benchmark of a multiroom chat application。只记得在运行它时监控CPU%,基准测试应用程序可能会比服务器更快耗尽CPU!