значение отставания в системном вызове listen - PullRequest
9 голосов
/ 28 октября 2009

У меня есть сомнения относительно значения backlog в системном вызове listen. С man-страницы системного вызова listen.

Если аргумент backlog больше значения в / proc / sys / net / core / somaxconn, то он молча усекается до этого значения; значение по умолчанию в этом файле - 128.

Это означает, что мой сервер может принимать только <128 подключений одновременно. Что делать, если я хочу принять больше соединения> 128 ?? Могу ли я просто установить значение на максимально возможное число, чтобы получить доступ к большему количеству соединений ??

Ответы [ 3 ]

8 голосов
/ 28 октября 2009

Это число - только размер очереди соединений , где новые соединения ждут, чтобы кто-то их принял. Как только ваше приложение вызывает accept(), ожидающее соединение удаляется из этой очереди. Таким образом, вы можете определенно обрабатывать более 128 одновременных подключений, поскольку они обычно проводят в очереди только короткое время.

4 голосов
/ 28 октября 2009

Да. Используйте команду, такую ​​как

$ echo 1000 >/proc/sys/net/core/somaxconn

Чтобы установить предел выше. См., Например, эту страницу для получения дополнительных советов по настройке.

1 голос
/ 28 октября 2009

Значение backlog - это не количество максимальных соединений, а количество ожидающих соединений, то есть соединений, которые вы не приняли (): ред.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...