Настройка highload

Performance Configuration

При построении систем массового обслуживания необходимо уделять внимание настройкам систем и сервером для работы под высокой нагрузкой

Настройка OS для большого количества соединений

  • Увеличение лимита доступных файловых дескрипторов

  • Увеличение количества доступных портов. Ephemeral ports

  • Настройка conntrack table (linux)

  • Настройка sysctl (сетевой стек linux)

Выбор брокера сообщений для массового обслуживания

  • RabbitMQ максимум 100K клиентов

  • Redis (эффективнее RabbitMQ) больше подключений, меньше затраты памяти. Sentinel для high availability. Однопоточный, но есть многопоточные сборки

  • Aerospike

  • Nats, Nats Streaming (reliable pub/sub)

  • Tarantool

  • Apache Pulsar

Эффективное переподключение после падения сервера. Обеспечьте механизм восстановления подключений при массовом обслуживании. Помните, что одновременное подключение всех клиентов может вывести сервера из строя, его нужно планировать в момент разработки архитектуры.

  • Используйте экспоненциальный реконнект. Клиенты подключаются через экспоненциальные промежутки времени при невозможности установить связь.

  • Используете Rate limiter на сервере

  • Используете Smart batching - группируйте подобные запросы и выполняйте их за один раз, чтобы снять нагрузку массовой системы.

  • Настройте кеш сообщений

Last updated