Nodejs: сервер не закрывает соединения TCP

Направление с проблемой в рабочем сервере, работающем debian (7.0) с nodejs (v0.10.x) кластер, где это не закрывает некоторые соединения TCP клиентам.

Это приводит к отбрасываниям соединения, когда ограничение соединения достигнуто.

Используя ss -s инструмент я могу контролировать это некоторые соединения, закрывается через некоторое время, но некоторые не.

Вот sysctrl сконфигурируйте изменения, которые я использую для увеличения максимальных соединений как временного обходного решения:

net.ipv4.ip_local_port_range = 1024 65500
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.ipv4.tcp_rmem = 4096 16384 33554432
net.ipv4.tcp_wmem = 4096 16384 33554432
net.ipv4.tcp_mem = 786432 1048576 26777216
net.core.netdev_max_backlog = 2000

Как найти узкое место и решить проблему?

0
задан 17 October 2015 в 15:36
1 ответ

Проблема в том, что https сервер не наследует логику тайм-аута сокетов от http сервера.

С апреля 2013 года существует патч , но он все еще не слит со стабильным 0. 10 ветка.

Решения:

  • избежать использования https, использовать какой-нибудь прокси-сервер (nginx);
  • пользовательский хэндл таймаута;
  • использовать версию узла выше 0.10.
1
ответ дан 4 December 2019 в 17:04

Теги

Похожие вопросы