Как масштабируется производительность Nodejs при использовании http.request? - PullRequest
4 голосов
/ 15 февраля 2012

Я пишу приложение, которое интенсивно использует метод http.request.

В частности, я обнаружил, что одновременная отправка 16+ ~ 30 КБ запросов на самом деле блокирует экземпляр Nodejs на машине с 512 МБ ОЗУ.

Мне интересно, следует ли ожидать этого, или же Nodejs - просто неправильная платформа для исходящих запросов.

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Одна вещь, о которой вы должны знать, это то, что http.request не создает новый сокет для каждого вызова.Каждый запрос происходит к объекту, называемому «агентом», который содержит пул до 5 сокетов.Если вы используете ветку v0.6, то вы можете увеличить этот лимит с помощью.

http.globalAgent.maxSockets = Infinity

Попробуйте и посмотрите, поможет ли это

1 голос
/ 15 февраля 2012

Да, это поведение кажется вполне разумным.

Я был бы более обеспокоен, если бы он выполнял описанную вами работу без какой-либо заметной нагрузки на систему (в этом случае это заняло бы очень много времени).Помните, что узел - это всего лишь выровненная среда выполнения ввода / вывода, поэтому вы можете быть уверены, что он планирует ваши запросы ввода / вывода (примерно) так быстро, как это может сделать базовая система, следовательно, он использует систему для своего (почти) максимального потенциала,следовательно, система "действительно застряла".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...