Общий вопрос о сетевом подключении в Linux: если сетевое подключение переходит в time_wait, оно все еще привязано к процессу? Он по-прежнему использует такие ресурсы, как, скажем, дескриптор файла?
Причина, по которой я спрашиваю, заключается в том, что как только он переходит в time_wait, lsof больше не сообщает об этом. Я предполагаю, что это означает, что сетевое соединение больше не привязано к процессу и, следовательно, не учитывается в ограничении количества дескрипторов файлов. Хотел бы подтвердить.
Ваше предположение верное. Если соединение входит в TIME_WAIT
состояние, это означает, что локальная сторона закрыла сокет, поэтому он уже прекратил использовать файловый дескриптор.
Однако он потребляет записи в таблице состояний TCP ядра. Есть несколько настроек, которые вы можете найти в tcp(7)
справочная страница. Однако, если вас беспокоит ограничение количества файловых дескрипторов для одного процесса, это не имеет значения.
Обратите внимание, что есть повторяющийся вопрос здесь, но я считаю, что ответ неверен.