TIME_WAIT удерживает состояние закрытого TCP-соединения для корректного завершения и защиты от старых сегментов. Частое создание исходящих соединений к одному адресу может исчерпать доступные пары портов.
Что такое проблема TIME_WAIT-сокетов в Linux и как бэкенд под высокой нагрузкой может полностью исчерпать эфемерные порты?
TIME_WAIT удерживает состояние закрытого TCP-соединения для корректного завершения и защиты от старых сегментов. Частое создание исходящих соединений к одному адресу может исчерпать доступные пары портов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
TIME_WAIT удерживает состояние закрытого TCP-соединения для корректного завершения и защиты от старых сегментов. Частое создание исходящих соединений к одному адресу может исчерпать доступные пары портов.
Проверьте число соединений по состояниям, диапазон локальных портов, направления и ограничения NAT. Основное исправление — переиспользовать соединения, применять ограниченный pool и уменьшить churn. Большой TIME_WAIT сам по себе не является утечкой файловых дескрипторов. Не отключайте защитные механизмы вслепую: доступность портов зависит от полного набора адресов/портов и поведения сети.
Источник: man7.org.