Node.js время ответа> = 200 мс?
-
28-10-2019 - |
Вопрос
Я работаю над тестированием рабочей нагрузки Node.js, и я только что столкнулся с интересным поведением. Минимальное время отклика сервера HTTP составляет 200 мс, даже для самой простой логики:
var http = require("http");
http.createServer(function(request, response) {
response.write("Hello World");
response.end();
}).listen(8080);
Запускается на Windows Server 2003:
> node main.js
Я искал в Интернете, но не нашел никакой информации об этом. Тест проводится в локальной сети, кроме того, с использованием других веб -серверов (а именно IIS) я могу достичь мгновенного времени отклика. Не поймите меня неправильно, я вижу рациональное объяснение такого поведения, так что это мой вопрос:
Это поведение по умолчанию Приходите с node.js, или это может быть результатом чего -то другого?
Разъяснение по требованию:
- Узел JS Версия: 0.6.11
- ОС: Windows Server 2003 R2 SP2
- Серверная среда: vmware Workstation 8.0.0
- Утилита рабочей нагрузки: Jmeter 2.6 (1 рабочая нагрузка по потоке)
Обновлять
Поведение задержки появляется только во время удаленных запросов. Если проведен локальный тест на рабочую нагрузку, задержка будет близка к нулю. Тем не менее, это не может быть проблемой задержки сети, потому что удаленный запрос против IIS на одном и том же сервере не дает задержки. Я собираюсь попробовать это на других OSES.
Решение
Это алгоритм NAGLE, установленный по умолчанию в Windows (воспроизводимый также в Windows 2008 R2 на Azure).
Обходной путь - отключите его в розетке, например,:
response.connection.setNoDelay(true);
Другие советы
Получение задержки 5 мс, 3 мс загрузите в общей сложности 8 мс здесь. Это варьируется, но самое высокое, что я видел, составляет около 14 мс.
Пробежал на OS X 10.7.3, хотя. Мне придется попробовать в окнах и посмотреть.
Я запускаю Ubuntu 64bit и Node версию 0.6.10, и больше всего я получаю задержку на 20 мс. Я полагаю, что это проблема Windows, так как узел все еще не идеален в Windows, должен ждать еще большей стабильности. Я предлагаю вам опубликовать ваши проблемы в списке рассылки.