node.js - NodeJS Express Windows 最大连接数设置

标签 node.js windows express limit connection

在 Windows 10 中,在哪里设置 NodeJS 的最大连接数(用于使用express'get)?与linux中的最大文件(描述符)设置有关吗?有该设置的 Windows 版本吗?最好是在nodejs中进行设置,以便迁移到unix时兼容?

我怀疑当超过 2000 个并发连接攻击我的服务器程序时,由于此设置,负载测试模块会出现错误,该服务器程序使用 Express 并将连接保留在队列中以供稍后处理。对于 200 个并发连接(命令行中的 -c 200),负载测试正常完成。另外,当我不在队列中保留连接并且如果 get 中的操作很简单("response.end('hello world')")时,它不会给出 -c 2000 的错误,也许它在其他启动之前完成工作,所以它实际上不是 2000 个并发,只有排队版本有 2000 个并发?

我没有使用http模块,但我正在服务器端express模块​​get函数上处理从客户端发送的xlmhttprequest。

也许桌面版 Windows 操作系统在开发时并未考虑到服务器应用程序,因此它没有最大连接数、最大文件访问数的设置,并且相关变量已硬编码在其中?

最佳答案

要回答您问题的一部分,对于最大打开文件,有_setmaxstdio,请参阅:

也许您可以编写一个包装器来更改此设置并启动您的 Node 程序。

至于最大打开连接数的一般问题,这是我在一些较旧的 Windows 上发现的:

它讨论了更改以下配置:

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]

TcpNumConnections = 0x00fffffe(默认 = 16,777,214)

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]

最大用户端口 = 5000(默认 = 5000,最大 = 65534)

另请参阅上述链接中的其他相关参数。我不知道配置值的名称在较新版本的 Windows 中是否发生了变化,但如果增加打开文件限制还不够,我会搜索 HKEY_LOCAL_MACHINE System CurrentControlSet Services TcpipParameters

为了进行比较,here is how I increase the number of concurrent Node/Express connection in Linux .

关于node.js - NodeJS Express Windows 最大连接数设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40832376/

相关文章:

javascript - 函数旁边的函数?

javascript - 合并具有相同 id 的数组

c++ - OpenCV : undefined reference to imread()

mysql - 通过express从MySql获取数据

javascript - Node.js 逐行异步操作

Python (pip) throw [SSL : CERTIFICATE_VERIFY_FAILED] even if certificate chain updated

c++ - 可以禁用使用 SetWindowsHookEx 运行时创建的 Hook 吗?

javascript - 如何处理快速发送到服务器的数据?

javascript - 将 POST 请求数据 JSON 路由到 View / Controller (node.js)

node.js - Angular 服务器端渲染问题 [区域已加载]