Как обрабатывать 1 млн подключений к веб-сокетам (Nginx / HAProxy / Amazon / Google) [дубликат]

На этот вопрос уже есть ответ здесь:

Что nginx или haproxy ] предлагается настроить для целевых 100K одновременных подключений к веб-сокетам? Как я думаю, один nginx не сможет принимать такой трафик, а также одновременные подключения. Как следует разделить трафик на nginx / haproxy (DNS lvl или любой доступный вариант Amazon / Google)? Сколько одновременных веб-сокетов сможет обработать один nginx?

Пытался собрать релевантную информацию из поиска Google и сообщений SO.

3
задан 28 September 2015 в 12:00
1 ответ

Есть люди, которые запускают серверы чата за балансировщиками нагрузки haproxy при еще более высоких нагрузках. Наибольшая нагрузка, о которой мне сообщили в частной электронной почте (с копией страницы статистики), составляла около 300 тыс. Соединений на процесс (отсюда 600 тыс. Сокетов). Обратите внимание, что в Linux по умолчанию процесс ограничен 1 млн файловых дескрипторов (следовательно, 500 тыс. Сквозных соединений), но это можно настроить в /proc.

. Самое важное, что следует учитывать при таких нагрузках, - это количество RAM вам нужна. Буферы сокетов на стороне ядра всегда будут требовать не менее 4 Кбайт на направление на каждую сторону, следовательно, минимум 16 Кбайт на сквозное соединение. HAProxy 1.5 и ниже будет иметь два буфера на каждое соединение (например: для веб-сокета достаточно буфера размером 4 КБ). 1.6 может работать без этих буферов и выделять их только для редких соединений с данными. По крайней мере, это 16 ГБ ОЗУ на миллион подключений, или около 24 ГБ в старых версиях. Возможно, стоит распределить это по нескольким процессам на SMP-машинах, чтобы уменьшить задержку. Имейте в виду, что для простого установления 1M соединений может потребоваться 10 секунд при 100 000 соединений в секунду. Все эти соединения требуют некоторой работы для каждого байта, и работа с 1M активных соединений определенно вызовет важную работу и высокую нагрузку на систему.

8
ответ дан 3 December 2019 в 05:03

Теги

Похожие вопросы