Мы запускаем службу с большим количеством встроенных устройств в полевых условиях, их стек TCP немного глючит и иногда не закрывает соединения должным образом, в результате чего некоторые соединения застревают в FIN-WAIT-2 на сервере.
Обычно время ожидания этих подключений истекает в соответствии с /proc/sys/net/ipv4/tcp_fin_timeout
, но наши связи по-прежнему видны спустя минуту в ss
. Даже перезапуск процесса от них не избавится, единственный выход вроде перезагрузки.
Долгосрочное решение, конечно, состоит в том, чтобы исправить клиентов, чтобы правильно закрыть соединение, но меня беспокоит, что соединения не истекают по таймауту, хотя они должны быть. Что могло вызвать это? Как избавиться от бесполезных подключений?