许多同时连接
我正在聊天应用程序。 底层服务器使用Node.js,客户端/服务器通信通过WebSocket进行。
所以问题是:有多less同时连接可以这样的服务器处理(没有明显的滞后)? 当然大概假设服务器是非常强大的机器。 我知道这不是一个简单的问题来回答,但我只是想想点,一些近似…或至less上下限。 当然我会去做一些实际的testing,但这个理论可能会帮助我一点。
另外我还有一个问题涉及到第一个问题:是否可以将Node.js应用程序拆分为多个机器? 请记住,大部分数据都保存在机器内存中,而不是数据库中。
等待答复。 🙂
您需要确保在epoll / kqueue之上运行node.js,并调整您的操作系统以获得较高的TCP连接数。
以下是基于Autobahn WebSockets的发布/订阅系统的一些测量数字:
- 180k并发,活动的WebSocket连接
- 12k / s发送pubsub消息
- 4k / s的WebSocket开启握手
- 每个WebSocket连接<8kB
这是在configuration有2个内核和2GB RAM的FreeBSD i386虚拟机上。
Autobahn WebSockets是基于Python / Twisted的,在kqueue reactor上运行。
我已经做了一个多房间聊天应用程序的简单基准 。 只要记住在运行时监视CPU%,基准程序可能会比服务器更快地耗尽CPU。