在Windows 10中哪里设置nodejs的最大连接(用于表达'get
)?它与linux中的max files(descriptors)设置有关吗?是否有该设置的Windows版本?最好是nodejs中的设置,以便在迁移到unix时能够兼容吗?
我怀疑loadtest模块因为这个设置而产生错误,当超过2000个并发连接攻击我使用express的服务器程序并保持队列中的连接以便稍后处理时。 Loadtest通常完成200个并发连接(命令行中为-c 200)。此外,当我不保持队列中的连接并且get
中的操作很简单("response.end('hello world')"
)时,它不会给-c 2000带来错误,也许它会在其他启动之前完成工作所以它的真的不是2000并发,只有排队版有2000并发吗?
我没有使用http模块,但我正在处理来自服务器端express module
的{{1}}函数的客户端发送的xlmhttprequest。
也许桌面版windows os不是用服务器应用程序开发的,所以它没有最大连接设置,最大文件访问和相关变量已经硬编码了吗?
答案 0 :(得分:1)
要回答问题的一部分,对于最大打开文件,有_setmaxstdio
,请参阅:
也许你可以写一个改变它的包装器并启动你的Node程序。
关于max open connections的一般问题,这是我发现的一些旧版Windows:
它谈到改变配置:
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
TcpNumConnections = 0x00fffffe(默认值= 16,777,214)
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxUserPort = 5000(默认值= 5000,最大值= 65534)
另请参阅上述链接中的其他相关参数。我不知道配置值的名称是否在更新版本的Windows中发生了变化,但如果增加打开文件限制是不够的话,我会搜索HKEY_LOCAL_MACHINE System CurrentControlSet Services Tcpip Parameters
。
进行比较,here is how I increase the number of concurrent Node/Express connection in Linux。