Какое максимальное количество TCP-соединений разрешено при наличии большого количества TCP-сокетов? - PullRequest
2 голосов
/ 04 мая 2019

У меня есть мощный сервер, на котором я слушаю 24K уникальных TCP-сокетов для одного процесса.Я увеличил FD в системе и все необходимые параметры (somaxconn, backlog и т. Д.), Чтобы увеличить число соединений TCP, которые могут быть приняты.Однако, похоже, оно не выходит за пределы определенного значения (94K).Но если я уменьшу количество уникальных сокетов TCP, скажем, до 5-10, я смогу легко достичь около 250 тыс. Соединений.

Кстати, я вижу, что ядро ​​приняло соединение, как из tcpdump. Я вижу трехстороннее рукопожатие.быть завершенным.Только приложение не может его принять.У меня есть выделенная нить на серверном приложении, чтобы постоянно опрашивать входящие соединения на всех 24K-сокетах (поэтому ЦП не проблема)

Приложение принимает его, но после большой задержки (около 90 секунд или около того)

Итак, вопрос в том.Существует ли ограничение количества соединений, которое может быть принято приложением, когда имеется так много сокетов прослушивания?

...