Node.js最多在1000个并发连接

我们使用AWS(EC2)上的一个简单的Hello World节点服务器对节点性能进行基准testing。

无论我们使用什么大小的实例,节点总是最多显示1000个并发连接(这不是每秒1000个,而是1000个可以一次处理)。 不久之后,CPU峰值和节点基本冻结。

节点v0.10.5

var http = require('http'); var server = http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('loaderio-dec86f35bc8ba1b9b604db6c328864c1'); }); server.maxHeadersCount = 0; server.listen(4000); 

节点应该能够处理比这更正确的? 任何想法将不胜感激。

此外,文件描述符(软,硬,系统)设置为65096)

使用posix模块提高您的进程可以使用的文件描述符的数量限制。

安装posix

 npm install posix 

然后在启动应用程序时运行的代码中

 var posix = require('posix'); // raise maximum number of open file descriptors to 10k, // hard limit is left unchanged posix.setrlimit('nofile', { soft: 10000 }); 

您已达到进程可以使用的文件描述符的默认限制(1024)。 您可以通过运行“ulimit -n”来检查命令行上的限制。 要更改限制,您需要编辑/etc/security/limits.conf。 添加跟随块:

 * soft nofile 65535 * hard nofile 65535 root soft nofile 65535 root hard nofile 65535 

“*”适用于除root之外的所有用户。 根的限制必须单独添加。 有软硬限制。 用户可以将自己的限制改变为软限制但不超过硬限制。

文件编辑完成后,注销并重新login。 通过运行ulimit -nvalidation更改。 重新启动你的Node进程,你应该很好。

还有一个系统范围的文件描述符限制可以通过以下命令来增加:

 sysctl -w fs.file-max=65535