30.05.2016, 15:17, "S.A.N" <nginx-fo...@forum.nginx.org>: >> Если сокет "простаивает без трафика", то железо отнюдь не простаивает, >> а выполняет работу по тем сокетам, которые не простаивают. >> >> К тому же при однородной нагрузке количество требуемых содинений с >> бэкэндами должно быть стабильно во времени > > Если 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
Любое мультиплексирование в принципе создает оверхед, так как данные из разных ответов приходится разгребать из одного соединения Возможно, эффективным решением для соединения бэкэндов было бы фиксированное количество соединений, бесконечный keepalive и pipelining >, но я > так понял что проблема не в протоколах, проблема в том что логика 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 -- Regards, Konstantin _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru