Gena Makhomed Wrote: ------------------------------------------------------- > Каким образом скорость соединения с клиентом > влияет на время *блокировки* воркера nginx ? > > nginx работает с сетью в неблокирующем режиме.
Да, вы правы, медленный клиент не блокирует воркер, но компрессия ответа в Nginx, практически не влияет на скорость его работы, проверил в ab, разница на уровне погрешности. > > 2. Да, в php-fpm обычно параллельно работают много воркеров, но эти > воркеры > > держат коннекты к MySQL, Redis и другим ресурсам, по этому > освободить воркер > > РНР, означает освободить коннекты, к которым может выстроится > очередь других > > РНР воркеров. > > Тогда уже придется делать больше воркеров nginx, чтобы они могли > часть своего времени потратить на компрессию ответов от бекенда. > > > Скорость компрессии ответа в РНР будет медленней, потому что РНР > должен > > получить весь буфер вывода сжать его, очистить весь буфер и записать > в него > > сжатые данные, из-за этого в РНР это работает медленней, плюс > небольшой > > оверхед на вызове функций врапера zlib. > > А в nginx компрессия gzip разве работает каким-то другим способом? > > В ответе будет заголовок Transfer-Encoding: chunked > > и не будет заголовка Content-Length: - потому что в момент начала > отправки сжатого ответа его полный размер неизвествен воркеру nginx. Одно из немногих преимуществ компрессии на бекенде, это возможность отдать правильный Content-Length, для нас это довольно важно чтобы мобил клиенты могли правильно показывать прогресс бар загрузки, но думаю модуль кеширования Nginx, может самостоятельно вычислить размер тела ответа и сохранить в кеше правильный Content-Length. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,256725,256736#msg-256736 _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
