Привет, это хороший вопрос.
Во-первых, если один поток обрабатывает одно соединение, то ограничение компьютера x86 будет очень низким. Это будет примерно 1000 для каждого процесса, поскольку виртуальная память ограничена 4 ГБ. Для x64 будет относительно выше. Но мы не хотим видеть переключение между потоками.
Итак, мы используем поток для обработки большого количества соединений, то есть мультиплексирования ввода-вывода. ограничение, мы называем это C10K и C10M , и мы решаем эти проблемы с помощью неблокирующего мультиплексирования ввода-вывода, такого как epoll или IOCP, а DPDK полезен для решения C10M.
Если вы хотите достичь большего числа подключений, тогда мы используем распределенные системы вместо одного сервера.
Это долгая история ограничений сервера, и я думаю, вы можете многому у них научиться.