我正在编程服务器,似乎我的连接数量有限,因为我的带宽没有饱和,即使我已经将连接数设置为"无限制".
如何增加或消除我的Ubuntu Linux盒一次可以打开的最大连接数?操作系统是否限制了这个,还是路由器或ISP?或者是别的什么?
有谁知道在现代标准根服务器上可以有多少个tcp-socket连接?(每个连接的流量通常较少,但所有连接都必须一直在运行.)
编辑:我们将使用Linux服务器.
所以,我正在尝试优化我的节点应用程序,我的应用程序发出HTTP和HTTPS请求.
从LinkedIn的这篇文章中获取节点的速度,它建议禁用套接字池来删除5个套接字的限制:
// Disable socket pooling
var http = require('http');
var options = {.....};
options.agent = false;
var req = http.request(options)
Run Code Online (Sandbox Code Playgroud)
现在来自GitHub的Mikeal(Request的开发者),他建议:
require('http').globalAgent.maxSockets = Infinity
Run Code Online (Sandbox Code Playgroud)
公平地说,他并不暗示无限,但你可以在那里提出任何合理的价值.
现在,我的应用程序使用http和https,所以我使用了这段代码:
var http = require('http');
http.globalAgent.maxSockets = 30;
var https = require('https');
https.globalAgent.maxSockets = 30;
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到此错误:
TypeError:无法设置未定义的属性'maxSockets'
最后,在查看HTTP文档时,它不显示"globalAgent",而是仅显示agent.maxSockets.
所以,我首先想知道,覆盖此参数的最佳语法是什么?
第二,什么是最优值?它是基于我的服务器有多少内存?它的带宽?