Я запускаю приложение для работы с узлами / экспрессами, и оно продолжает умирать случайным образом через несколько часов.
Процесс все еще работает, нет журналов, скачков ЦП / памяти или даже большого использования, но процесс не выполняется.больше не обслуживаю запросы.
Я подозреваю, что у этого процесса слишком много активных соединений UDP: lsof -i -a -p X | wc -l
насчитал 9k + сетевых подключений, когда я ssh'd в докер-контейнер, выполняющий процесс узла, 98%UDP вот так:
node 6 root 223u IPv4 614173 0t0 UDP *:63025
node 6 root 224u IPv4 324249 0t0 UDP *:34622
node 6 root 225u IPv4 415898 0t0 UDP *:44176
Число соединений увеличивается со скоростью ровно 10 новых соединений в минуту.
Единственная функция, связанная с UDP, в моем приложении - https://github.com/sazze/winston-logstash-udp
Подробности:
- Узел v6.12.3 в Docker на AWS ec2 t2.medium
- Такое поведение началось после перехода с базового образа
debian:wheezy
Docker на node:6.14.2-alpine
.
Вопросы:
- Как дополнительно отладить каждое UDP-соединение?Например, цель, длительность, ... Это помогло бы найти основную проблему.
- Каков предел для ограничения соединения узла?Я прочитал 4096.
- Эта проблема не возникала в Debian, какие различия могут быть связаны?