> Если сокет "простаивает без трафика", то железо отнюдь не простаивает, > а выполняет работу по тем сокетам, которые не простаивают. > > К тому же при однородной нагрузке количество требуемых содинений с > бэкэндами должно быть стабильно во времени
Если 30 запросов отправить в 30 разных соединениях, тогда конечно EventLoop будет все 30 обрабатывать, но тратить на один запрос целое соединения это слишком расточительно, попробую объяснить на цифрах. 1 запрос выполняется за 100ms Если послать 30 последовательных запросов в 1 соединение мы получим 30 ответов за 3000ms Если послать 30 запросов в 30 разных соединениях мы получим 30 ответов за 100ms Если послать 30 асинхронных запросов в 1 соединение мы получим 30 ответов за 100ms В первом варианте, 1 сокет находится в режиме busy ~3000ms В втором варианте, 30 сокетов находится в режиме busy ~100ms В третьем варианте, 1 сокет находится в режиме busy ~100ms Вопрос какой из трех вариантов более эффективно использует ресурсы? Если HTPP/2 создает оверхед, ок, есть мультиплексирование в FastCGI, но я так понял что проблема не в протоколах, проблема в том что логика upstrem в Nginx ничего не знает про мультиплексирование запросов и заточена на новые соединения. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266693,267225#msg-267225 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru