Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N nginx-forum на forum.nginx.org
Пн Май 30 12:17:41 UTC 2016


> Если сокет "простаивает без трафика", то железо отнюдь не простаивает,
> а выполняет работу по тем сокетам, которые не простаивают.
> 
> К тому же при однородной нагрузке количество требуемых содинений с
> бэкэндами должно быть стабильно во времени

Если 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