TURN-сервер обрабатывает нагрузку от большого количества пользователей с помощью нескольких механизмов:
- Асинхронная модель работы. github.com TURN-сервер использует асинхронный ввод-вывод в сочетании с моделью потоков, что позволяет одновременно обрабатывать множество клиентских соединений. github.com
- Использование отдельных потоков. github.com Для длительных действий (взаимодействие с базой данных, обработка CLI) TURN-сервер использует отдельные потоки, чтобы обработка трафика не зависела от более длительных операций. github.com
- Оптимизация использования ресурсов. github.com Каждая сессия TURN потребляет относительно немного ресурсов: у неё нет собственного потока или процесса, она обычно остаётся в одном потоке, что снижает переключение контекста и блокировку. github.com
- Масштабирование. dev.to habr.com Для обработки большого объёма данных в масштабных развертываниях может потребоваться несколько TURN-серверов за балансировщиком нагрузки. dev.to
Также для защиты от перегрузки TURN-сервер использует throttling — технологию регулирования нагрузки на систему. vc.ru Она ограничивает количество запросов к серверу за определённый промежуток времени. vc.ru Когда система достигает установленного лимита запросов, новые подключения либо ставятся в очередь, либо отклоняются. vc.ru