所以,我試圖優化我的節點應用程序,並且我的應用程序發出HTTP和HTTPS請求。Nodejs最大套接字池設置
從這篇文章從LinkedIn製作節點之快,建議禁用套接字池,除去5個插座的極限:
// Disable socket pooling
var http = require('http');
var options = {.....};
options.agent = false;
var req = http.request(options)
現在從GitHub上Mikeal(請求的開發者),他建議:
require('http').globalAgent.maxSockets = Infinity
公平地說,他並不是建議無窮大,但是你可以在那裏提出任何合理的價值。現在
,我的應用程序使用HTTP和HTTPS,所以我用這個代碼:
var http = require('http');
http.globalAgent.maxSockets = 30;
var https = require('https');
https.globalAgent.maxSockets = 30;
當我這樣做,我得到這個錯誤:
TypeError: Cannot set property 'maxSockets' of undefined
最後,在查看HTTP記錄它不顯示「globalAgent」,而只顯示agent.maxSockets。
所以,我想知道第一,重寫此參數的最佳語法是什麼?
二,什麼是最優值?它是基於我的服務器的內存量嗎?它的帶寬?
當我升級到Node.js v0.10.24時,我不再看到以下錯誤:TypeError:無法設置未定義的屬性'maxSockets' – 2014-03-17 18:01:21
請注意,Node 0.12將默認的'maxSockets'值更改爲'Infinity':http://stackoverflow.com/a/12061013/504930 – devius 2015-10-06 14:59:25