Информация об изменениях

Сообщение Re: WA: 3 млн tcp соединений на одном сервере от 29.07.2020 8:13

Изменено 29.07.2020 9:45 Reset

Re: WA: 3 млн tcp соединений на одном сервере
S>Вот тут человек не может понять как это возможно на одном сервере -- https://youtu.be/vQ5o4wPvUXg

Т.е. это ты не для себя спрашиваешь, а для друга. Ясно-понятно.

Ну, про количество IP:port с одной и другой стороны тебе уже рассказали (у пользователей могут быть разные IP и у сервера тоже много IP на одном интерфейсе, с портами аналогично), про int вместимостью в 31 бит тоже.

Однако, про IPv6 чё-та совсем и не упомянули, а там каждому клиенту полагается сеть /64 (в стандарте так написано, но правда, даже хостеры стандарты не читают и умудряются на клиента выдавать IPv6 адреса в штуках, откусывая их от своей сети /48 или сколько там дают провайдеру по умолчанию). Впрочем, с таким провайдером я бы не пытался держать 10M сокетов на одной машине.

Также от себя добавлю, что для таких масштабов вполне могут использовать какой-нибудь DPDK, где между приложением и сетевушкой никакого ядра и нет вовсе (драйвер сетевухи со всем сетевым стеком находится прямо в userspace). Там и трафик (количество пакетов) можно сделать больше, и количество соединений держи сколько в память влезет.

Еще полезно отключить, все что мешается, огнестенку, например, с conntrack, да и просто фильтр там будет тормозить. Впрочем, с DPDK, это, наверняка, не актуально, а если сокеты держит ядро, то файрвол, однозначно, будет мешать, даже без conntrack. Фильтровать придется через eBPF (каждый школьник уже может осилить).
Re: WA: 3 млн tcp соединений на одном сервере
S>Вот тут человек не может понять как это возможно на одном сервере -- https://youtu.be/vQ5o4wPvUXg

Т.е. это ты не для себя спрашиваешь, а для друга. Ясно-понятно.

Ну, про количество IP:port с одной и другой стороны тебе уже рассказали (у пользователей могут быть разные IP и у сервера тоже много IP на одном интерфейсе, с портами аналогично), про int вместимостью в 31 бит тоже.

Однако, про IPv6 чё-та совсем и не упомянули, а там каждому клиенту полагается сеть /64 (в стандарте так написано, но правда, даже хостеры стандарты не читают и умудряются на клиента выдавать IPv6 адреса в штуках, откусывая их от своей сети /48 или сколько там дают провайдеру по умолчанию). Впрочем, с таким провайдером я бы не пытался держать 10M сокетов на одной машине.

Также от себя добавлю, что для таких масштабов вполне могут использовать какой-нибудь DPDK, где между приложением и сетевушкой никакого ядра и нет вовсе (драйвер сетевухи со всем сетевым стеком находится прямо в userspace). Там и трафик (количество пакетов) можно сделать больше, и количество соединений держи сколько в память влезет.

Еще полезно отключить, все что мешается — огнестенку, например, с conntrack, да и просто фильтр там будет тормозить. Впрочем, с DPDK, это, наверняка, не актуально, а если сокеты держит ядро, то файрвол, однозначно, будет мешать, даже без conntrack. Фильтровать придется через eBPF (каждый школьник уже может осилить).