因此,我正在尝试优化我的节点应用程序,并且我的应用程序发出 HTTP 和 HTTPS 请求。
从LinkedIn的这篇文章中,它建议禁用套接字池以消除5个套接字的限制:
// Disable socket pooling
var http = require('http');
var options = {.....};
options.agent = false;
var req = http.request(options)
现在来自 GitHub 上的 Mikeal(Request 的开发者),他建议:
require('http').globalAgent.maxSockets = Infinity
公平地说,他并不建议无限,但你可以在那里设置任何合理的值。
现在,我的应用程序使用 http 和 https,所以我使用了以下代码:
var http = require('http');
http.globalAgent.maxSockets = 30;
var https = require('https');
https.globalAgent.maxSockets = 30;
当我这样做时,我得到这个错误:
TypeError:无法设置未定义的属性“maxSockets”
最后,在查看 HTTP 文档时,它没有显示“globalAgent”,而是只显示了agent.maxSockets。
所以,我首先想知道,覆盖这个参数的最佳语法是什么?
第二,什么是最优值?它是基于我的服务器拥有的内存量吗?它的带宽?